meisl
|
cd295228ef
|
+ TestCompilerOnImportsAndIncludes.kt: 2 tests, both passing (but see FIXME in asmIncludeFromSameFolder.p8)
|
2021-07-11 15:33:44 +02:00 |
|
meisl
|
39d5b7edb0
|
+ test examples for both platforms, cx16 and c64; test two more: tehtriz and textelite (the largest ones, 20KB / 36KB)
|
2021-07-10 21:41:51 +02:00 |
|
meisl
|
ddaef3e5d5
|
+ add tests for SourceCode.fromResources; refactor tests
|
2021-07-10 20:55:23 +02:00 |
|
meisl
|
19bb56df47
|
* no more scattering magic "@embedded@" all over the place: add SourceCode.isFromResources, *change Module.source from type Path to type SourceCode*
|
2021-07-09 17:32:33 +02:00 |
|
meisl
|
d3e026d82a
|
+/* non-unique module names: provide more info, add TODO
|
2021-07-09 13:44:44 +02:00 |
|
meisl
|
7b89228fa7
|
+ add TODOs re ICompilationTarget
|
2021-07-09 13:14:02 +02:00 |
|
meisl
|
81abf29bec
|
Merge branch 'irmen:v7.1' into v7.1
|
2021-07-09 11:03:31 +02:00 |
|
Irmen de Jong
|
85897ef8cd
|
launch box16 emulator with the vice monlist file that contains symbols+breakpoints
|
2021-07-06 22:27:47 +02:00 |
|
Irmen de Jong
|
6367c6d116
|
add support for second alternative emulator (box16 in case of cx16 target)
|
2021-07-05 22:47:51 +02:00 |
|
Irmen de Jong
|
a7736d88a9
|
got rid of Module.isLibraryModule variable, is now function that derives it from source path
|
2021-07-04 15:44:25 +02:00 |
|
Irmen de Jong
|
049dbf5a78
|
improve compiler error when defining duplicate block names
|
2021-07-04 15:14:39 +02:00 |
|
meisl
|
07d8052a57
|
* fix comments: no more problem with exitProcess
|
2021-07-02 13:28:19 +02:00 |
|
meisl
|
db9edb477e
|
* less confusing assertion messages (seemingly contradictory in case of failure)
|
2021-07-02 12:38:24 +02:00 |
|
Irmen de Jong
|
9bd3a6758a
|
improve testability: use error returnvalues instead of using exitProcess()
|
2021-07-02 00:11:21 +02:00 |
|
meisl
|
006059438f
|
+ same warning on the other "TestCompilerXyz" file
|
2021-06-28 18:49:01 +02:00 |
|
meisl
|
84ea3b9788
|
+ compiler/test/TestCompilerOnExamples.kt: *not actually unit tests - just a kludge!* (but better than nothing)
|
2021-06-28 18:42:05 +02:00 |
|
meisl
|
b667abde10
|
+ compiler/test/TestCompilerOnCharLit.kt
|
2021-06-28 18:24:35 +02:00 |
|
Irmen de Jong
|
f53848b4b9
|
wording and version
|
2021-06-24 21:25:35 +02:00 |
|
Irmen de Jong
|
3f58eca1be
|
updated gradle scripts (fixed warnings), updated some library dependencies
|
2021-06-13 18:10:07 +02:00 |
|
Irmen de Jong
|
a2588a178c
|
added some simple unit tests to the ast parser
|
2021-06-13 14:59:57 +02:00 |
|
Irmen de Jong
|
fd2bbd2b59
|
no longer allow subroutine name same as its block name due to asm symbol scoping issues
|
2021-06-12 17:31:09 +02:00 |
|
Irmen de Jong
|
f2844bdf1a
|
fix crash when using labels in pointerexpression lab+index
|
2021-06-10 00:44:12 +02:00 |
|
Irmen de Jong
|
73863acc12
|
version bump
|
2021-06-06 10:50:05 +02:00 |
|
Irmen de Jong
|
19e99204b9
|
fix asm symbol name scoping bug and add unit tests for this
|
2021-06-04 22:42:28 +02:00 |
|
Irmen de Jong
|
3a2498401d
|
working on unit tests for symbol scope bug
|
2021-06-03 21:21:38 +02:00 |
|
Irmen de Jong
|
53b20ba625
|
name
|
2021-06-01 22:22:58 +02:00 |
|
Irmen de Jong
|
e7f6f0950f
|
identified asm symbol name scoping bugs
|
2021-06-01 22:21:50 +02:00 |
|
Irmen de Jong
|
078485134d
|
split up unittests files
|
2021-06-01 22:07:39 +02:00 |
|
Irmen de Jong
|
67b1766e32
|
don't use ./ prefix for %asmbinary paths
|
2021-06-01 19:30:53 +02:00 |
|
Irmen de Jong
|
d4b69ac79c
|
improved repeat counter vars allocation (re-use var if possible)
|
2021-05-30 15:30:34 +02:00 |
|
Irmen de Jong
|
e61a2d7083
|
slightly optimized repeat loop asmgen
|
2021-05-30 13:10:05 +02:00 |
|
Irmen de Jong
|
c03f6604af
|
added free words counting method to zeropage
|
2021-05-30 00:55:11 +02:00 |
|
Irmen de Jong
|
572bb38ddb
|
update to kotlin 1.5.10
|
2021-05-29 15:25:17 +02:00 |
|
Irmen de Jong
|
e145d2255e
|
added palette.set_all_black() and set_all_white()
|
2021-05-26 21:33:18 +02:00 |
|
Irmen de Jong
|
442fa07dd4
|
relax name conflict rule regarding block names vs subroutine params
|
2021-05-26 21:32:54 +02:00 |
|
Irmen de Jong
|
31ae9e1243
|
refactor repeat loop counter var creation into single routine
|
2021-05-22 13:01:51 +02:00 |
|
Irmen de Jong
|
d7f83f8df2
|
version bump
|
2021-05-20 23:38:41 +02:00 |
|
Irmen de Jong
|
29e2d4e0c8
|
give error when passing invalid command line option
|
2021-05-20 23:34:20 +02:00 |
|
Irmen de Jong
|
0e614ad6fc
|
added @shared flag to vardecl to mark variable as shared with assembly code elsewhere, to not have it optimized away
|
2021-05-19 01:19:25 +02:00 |
|
Irmen de Jong
|
ba96a637be
|
remove strdedup compiler argument again
(string deduplication is the default again but only for known-const strings, i.e. string literals)
|
2021-05-18 23:52:43 +02:00 |
|
Irmen de Jong
|
6b7216f4ec
|
todo
|
2021-05-17 19:00:20 +02:00 |
|
Irmen de Jong
|
e4fb5946dd
|
optimize cx16 sys.wait and sys.waitvsync to use WAI instruction
|
2021-05-17 18:44:42 +02:00 |
|
Irmen de Jong
|
ca61248861
|
printing 2-letter strings is now only optimized into direct CHROUT if it's a const string literal
|
2021-05-16 15:00:40 +02:00 |
|
Irmen de Jong
|
68d7b4649e
|
label and directive location docs
|
2021-05-16 12:32:08 +02:00 |
|
Irmen de Jong
|
0416aacbbd
|
fix %asminclude by removing scopelabel argument and improving docs to remove false promise about labels
|
2021-05-16 00:14:57 +02:00 |
|
Irmen de Jong
|
bc731e6f8e
|
fix compiler crash when taking address of label
|
2021-05-16 00:07:48 +02:00 |
|
Irmen de Jong
|
b9bd541532
|
restored optimization of printing short strings into just CHROUT
but added comment about known-constness still to be resolved
|
2021-05-13 01:46:43 +02:00 |
|
Irmen de Jong
|
83639c2535
|
code style
|
2021-05-13 01:00:19 +02:00 |
|
Irmen de Jong
|
25d80f4df1
|
added compiler option to choose string literal deduplication yes/no -- default changed to NO
|
2021-05-13 00:35:22 +02:00 |
|
Irmen de Jong
|
74f918d911
|
fix crashes for string encoding errors: give normal compiler error instead
|
2021-05-11 21:33:11 +02:00 |
|
Irmen de Jong
|
a20efa56eb
|
print unmappable character in escaped form in errormessage
|
2021-05-11 18:09:09 +02:00 |
|
Irmen de Jong
|
dae59238cd
|
fix array type checking crash when attempting to use str literal to initialize a byte array.
Fixes #34
|
2021-05-07 00:04:29 +02:00 |
|
Irmen de Jong
|
8736da1a21
|
strings of 1 and 2 length no longer optimized into one call to CHROUT - also upgrade to kotlin 1.5.0
|
2021-05-06 23:46:18 +02:00 |
|
Irmen de Jong
|
e2f5752d9a
|
add f_open_w, f_write, f_close_w to diskio to be able to save parts of memory sequentially
|
2021-05-01 19:13:56 +02:00 |
|
Irmen de Jong
|
1a59019fc8
|
add generic error in diskio.status() if drive status can't be read
|
2021-05-01 15:39:39 +02:00 |
|
Irmen de Jong
|
19fe58dbac
|
fix regression bug that left variables uninitialized
|
2021-05-01 01:35:03 +02:00 |
|
Irmen de Jong
|
0a5b30e21c
|
added fast code for x*640
|
2021-04-30 22:30:21 +02:00 |
|
Irmen de Jong
|
664818fd29
|
try fixing a weird problem with pointervar[idx] -> memread rewriting
this was introduced in the removal of structs somehow
|
2021-04-30 01:34:03 +02:00 |
|
Irmen de Jong
|
d906fcea0e
|
refactor some type checks
|
2021-04-30 00:09:15 +02:00 |
|
Irmen de Jong
|
71fec4c555
|
added a few more simple special codegen segements for the logic operators on a memmory-read
|
2021-04-29 19:38:42 +02:00 |
|
Irmen de Jong
|
5ee36c897d
|
todo
|
2021-04-29 00:57:32 +02:00 |
|
Irmen de Jong
|
4aba0c7405
|
unused variables are removed more aggressively (no longer checking asm blocks for their names)
|
2021-04-29 00:48:16 +02:00 |
|
Irmen de Jong
|
ed7479c854
|
version 7 due to removal of structs and v39 cx16 support changes
|
2021-04-29 00:15:54 +02:00 |
|
Irmen de Jong
|
8d3d5f726a
|
removed Datatype.STRUCT
|
2021-04-29 00:13:17 +02:00 |
|
Irmen de Jong
|
a9a7068818
|
removed support for structs. It was too much hassle and complexity and subtle bugs.
|
2021-04-29 00:01:20 +02:00 |
|
Irmen de Jong
|
1bde7c7718
|
ver
|
2021-04-28 20:05:56 +02:00 |
|
Irmen de Jong
|
17068130bb
|
removed PROG8_LIBDIR env variables and replaced with -libdirs command line option
|
2021-04-28 20:04:23 +02:00 |
|
Irmen de Jong
|
81a91d62cb
|
improved horizontal_line in highres 4c
|
2021-04-28 02:55:49 +02:00 |
|
Irmen de Jong
|
2575263438
|
optimized gfx2.plot() for hires-4c
|
2021-04-28 02:49:25 +02:00 |
|
Irmen de Jong
|
7f0e25cb50
|
optimized gfx2.plot() for hires-monochrome
|
2021-04-28 02:32:11 +02:00 |
|
Irmen de Jong
|
a1e4e9c50f
|
optimized gfx2.plot() for lores-256c
|
2021-04-28 02:22:21 +02:00 |
|
Irmen de Jong
|
98eff2701b
|
optimized gfx2.plot() for lores-monochrome
|
2021-04-28 02:15:07 +02:00 |
|
Irmen de Jong
|
8b84f87217
|
removed fastrnd8() because it was hilariously bad, just use rnd()
|
2021-04-28 01:53:12 +02:00 |
|
Irmen de Jong
|
306a1b7bc2
|
optimized gfx2.vertical_line for hires monochrome mode
|
2021-04-28 01:19:10 +02:00 |
|
Irmen de Jong
|
481214c46e
|
optimized gfx2.vertical_line for lores monochrome mode
|
2021-04-28 01:02:29 +02:00 |
|
Irmen de Jong
|
a5961cbeab
|
optimized gfx2.vertical_line for highres 4c mode
|
2021-04-28 00:29:21 +02:00 |
|
Irmen de Jong
|
68f696d165
|
added 'callrom' builtin function (for cx16 target) that calls a routine in banked ROM
|
2021-04-25 18:04:56 +02:00 |
|
Irmen de Jong
|
1170aed026
|
added 'callfar' builtin function (for cx16 target) that uses jsrfar to call a routine in banked RAM
|
2021-04-25 17:47:13 +02:00 |
|
Irmen de Jong
|
bf1b2066b6
|
fix crashes in peekw() and pokew()
|
2021-04-22 18:26:46 +02:00 |
|
Irmen de Jong
|
4c080afb76
|
added compiler check against impossible for loop range (unsigned downto exactly 0 with non-const startvalue and step != -1)
|
2021-04-21 23:03:29 +02:00 |
|
Irmen de Jong
|
ee1c43ca91
|
improved scanning for return statement in routines that should return a value.
|
2021-04-21 20:31:29 +02:00 |
|
Irmen de Jong
|
1c2e6f9e4c
|
lower() and upper() now also return the lenght of the processed string.
|
2021-04-21 20:21:58 +02:00 |
|
Irmen de Jong
|
42033ebd35
|
added petscii mappings for ^, _, \, {, } and |
|
2021-04-19 02:18:55 +02:00 |
|
Irmen de Jong
|
c70bbdab26
|
fixed missing type checking in vardecl initializer values. Fixes #29
Also fix wrong assert of 0 const check in assembly gen for if-statement comparisons.
|
2021-04-18 22:46:21 +02:00 |
|
Irmen de Jong
|
3d956ef554
|
fix wrong values for register used in array indexing expressions
added the L/H byte parts of the cx16 virtual registers
|
2021-04-18 13:53:02 +02:00 |
|
Irmen de Jong
|
329f491c30
|
fix compiler crash with scoped const vardecls
|
2021-04-18 01:56:26 +02:00 |
|
Irmen de Jong
|
e93701f50e
|
fix compiler error when initializing var with memory(...) in block scope instead of subroutine
|
2021-04-17 15:49:41 +02:00 |
|
Irmen de Jong
|
e680de05ea
|
workaround for the joystick_get() irq problem
|
2021-04-15 22:56:52 +02:00 |
|
Irmen de Jong
|
56fec674c5
|
actually not simplifying if-code generation, leads to larger code at the moment
|
2021-04-13 00:03:22 +02:00 |
|
Irmen de Jong
|
54d92a027a
|
fix problems with moving vardecls from inner scope to subroutine scope
|
2021-04-12 22:53:25 +02:00 |
|
Irmen de Jong
|
319ac3a641
|
preparing optimizations for if statements
|
2021-04-12 03:34:58 +02:00 |
|
Irmen de Jong
|
0a03c46351
|
preparing optimization plan for if statements
|
2021-04-12 02:37:15 +02:00 |
|
Irmen de Jong
|
ae1b62e147
|
optimized integer comparison expressions some more
|
2021-04-12 01:23:17 +02:00 |
|
Irmen de Jong
|
8d567f6b06
|
added cx16.joystick_get2() for convenience api
|
2021-04-12 01:07:46 +02:00 |
|
Irmen de Jong
|
b1ef09675b
|
fix compiler crash for some struct/array initialization assignment literals containing not just numbers
|
2021-04-10 00:28:32 +02:00 |
|
Irmen de Jong
|
2b7b925090
|
codegen now uses correct machine target's string encoder/decoder. Encoding more robust by checking upper case mapping if lowercase mapping fails.
|
2021-04-09 23:33:32 +02:00 |
|
Irmen de Jong
|
91e421d961
|
optimize x % p where p=power-of-2, into just x & (p-1)
|
2021-04-08 22:21:16 +02:00 |
|
Irmen de Jong
|
c853afe769
|
fix compiler crash due to certain redundant typecast expressions
|
2021-04-08 19:45:44 +02:00 |
|
Irmen de Jong
|
1a64cb38d5
|
fix compiler crash with assigning certain array values as vardecl initializer
|
2021-04-08 19:21:17 +02:00 |
|
Irmen de Jong
|
ccebd22856
|
callgraph: mark start() also in use
|
2021-04-08 02:43:59 +02:00 |
|