meisl
|
82f5a141ed
|
* reintroduce the conversion of CharLiteral to UBYTE literals, but now *during AST preprocessing*, not in the parser
|
2021-07-11 22:03:32 +02:00 |
|
meisl
|
0567168ea9
|
+ add AST node CharLiteral, *without* turning them into ubyte s. This breaks tests, particularly 3 in TestCompilerOnCharLit. I'm comitting this separately since the failure modes might be of interest (compiler says "internal error").
|
2021-07-11 21:32:18 +02:00 |
|
meisl
|
c80a15846d
|
* some more housekeeping re tests: gradle doesn't like .* imports for annotations, added @Disabled comments, made warnings go away
|
2021-07-11 19:04:53 +02:00 |
|
meisl
|
5e194536a8
|
* refactor compiler tests, again prog8test.helpers (TODO: remove duplication)
|
2021-07-11 18:18:27 +02:00 |
|
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
|
81abf29bec
|
Merge branch 'irmen:v7.1' into v7.1
|
2021-07-09 11:03:31 +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 |
|
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
|
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
|
c03f6604af
|
added free words counting method to zeropage
|
2021-05-30 00:55:11 +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
|
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
|
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
|
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
|
b29f04ce01
|
fix unittest
|
2021-03-31 20:49:35 +02:00 |
|
Irmen de Jong
|
3e286dd14c
|
move test
|
2021-03-18 19:34:54 +01:00 |
|
Irmen de Jong
|
11247d52b1
|
fix bugs in word <= and >= comparisons
|
2021-03-18 19:20:48 +01:00 |
|
Irmen de Jong
|
1dbc902513
|
fix bugs in uword <= and >= comparisons
|
2021-03-18 18:41:41 +01:00 |
|
Irmen de Jong
|
b30b8b7368
|
fix bug in float < and > comparisons
|
2021-03-18 01:41:54 +01:00 |
|
Irmen de Jong
|
3df182b8c3
|
created extensive comparison test suite
|
2021-03-18 00:50:13 +01:00 |
|
Irmen de Jong
|
7f21d89fea
|
moved test programs to test folder in compiler module
|
2021-03-17 20:15:16 +01:00 |
|
Irmen de Jong
|
6995ee2d17
|
fix cx16 bresenham line inaccuracy
|
2021-03-09 22:04:19 +01:00 |
|
Irmen de Jong
|
d23c2eed86
|
test
|
2021-02-20 16:58:24 +01:00 |
|
Irmen de Jong
|
2aa39757b4
|
reduce dependencies on global compilationtarget
|
2021-02-19 19:02:29 +01:00 |
|
Irmen de Jong
|
219d17de34
|
reduce dependencies on global compilaiontarget
|
2021-02-19 18:33:54 +01:00 |
|
Irmen de Jong
|
bc37097df2
|
reducing dependencies
|
2021-02-09 18:49:25 +01:00 |
|
Irmen de Jong
|
7d98275763
|
reducing dependencies
|
2021-02-09 02:06:27 +01:00 |
|
Irmen de Jong
|
d6ffb549f6
|
reducing dependencies
|
2021-02-09 01:47:05 +01:00 |
|
Irmen de Jong
|
ccd1516637
|
reducing ast dependencies
|
2021-02-07 18:44:38 +01:00 |
|
Irmen de Jong
|
f1f51a01c6
|
reducing ast dependencies
|
2021-02-07 18:34:55 +01:00 |
|
Irmen de Jong
|
e35b739579
|
reducing ast dependencies
|
2021-02-07 06:39:08 +01:00 |
|
Irmen de Jong
|
170a0183f8
|
added 'inline' keyword to force inlining of trivial subroutines
|
2020-12-26 05:34:14 +01:00 |
|
Irmen de Jong
|
e0c5ccc16b
|
begun with converting builtin functions to new call convention
|
2020-11-02 23:00:20 +01:00 |
|
Irmen de Jong
|
fdd91170dc
|
allow simple binary expressions as array indexing too, but not more
|
2020-10-17 22:43:35 +02:00 |
|
Irmen de Jong
|
439761cb67
|
fixed C64 ZP addresses to allow disk I/O, introduced diskio library module
|
2020-10-14 01:17:18 +02:00 |
|
Irmen de Jong
|
95e9e1b550
|
avoid adding unneeded variable initalization assignments. Improved removal of useless double assignments.
|
2020-10-01 00:39:49 +02:00 |
|
Irmen de Jong
|
1d1fe364d0
|
added %option no_sysinit to avoid having the system re-initialization code executed at the start of the program
|
2020-09-23 23:01:47 +02:00 |
|
Irmen de Jong
|
e8679ae03b
|
fixed print_f on cx16. Some more examples are now multi-platform.
|
2020-09-22 01:45:51 +02:00 |
|
Irmen de Jong
|
de06353194
|
auto select correct library to import based on target, instead of having c64- and cx16- prefix variants
some programs are now 100% source compatible between C64 and Cx16 targets!
import libraries have been rena;med
|
2020-09-21 00:50:09 +02:00 |
|
Irmen de Jong
|
49a0584c54
|
added a %target directive
|
2020-09-09 22:53:34 +02:00 |
|
Irmen de Jong
|
8d8c066447
|
made the ZP and compilation target more generic
|
2020-08-25 19:32:31 +02:00 |
|
Irmen de Jong
|
63c073c93f
|
got rid of the Simulator / AST VM
|
2020-03-22 02:50:34 +01:00 |
|
Irmen de Jong
|
0ee4d420b1
|
slight tweaks on the Ast, Program (the top level) is now a Node as well
|
2020-03-18 22:29:30 +01:00 |
|
Irmen de Jong
|
6bd99d63b4
|
cleanup of error reporting
|
2020-03-14 23:47:26 +01:00 |
|
Irmen de Jong
|
5f1ec80ae0
|
improved array literal datatype handling, fixed some datatype compiler errors related to this
|
2020-03-12 01:10:19 +01:00 |
|
Irmen de Jong
|
ef6c731bb3
|
added '@' alternative string/char encoding
|
2020-03-11 00:32:50 +01:00 |
|
Irmen de Jong
|
11de3db25f
|
simplified heapId for arrayvalues
|
2020-02-08 18:49:48 +01:00 |
|
Irmen de Jong
|
875a71c786
|
removed datatype from StringValue classes (is always STR now)
|
2020-02-08 02:21:18 +01:00 |
|
Irmen de Jong
|
8c2e602cc7
|
preparing for multiple compiler backends/targets
|
2019-10-26 23:41:15 +02:00 |
|
Irmen de Jong
|
aa94300bdd
|
added output directory command line option
improved cli parser by using kotlinx.cli
|
2019-08-23 00:11:08 +02:00 |
|
Irmen de Jong
|
8eff51904e
|
taking down the heapvalue mess further
|
2019-08-21 00:29:31 +02:00 |
|
Irmen de Jong
|
c717f4573d
|
taking down the heapvalue mess further
|
2019-08-20 23:02:13 +02:00 |
|
Irmen de Jong
|
984d251a6d
|
taking down the heapvalue mess, RuntimeValue class separation
|
2019-08-20 00:01:31 +02:00 |
|
Irmen de Jong
|
8c3b43f3ed
|
taking down the heapvalue mess
|
2019-08-19 22:28:41 +02:00 |
|
Irmen de Jong
|
b64d611e02
|
split array and string literal classes
|
2019-08-13 03:00:17 +02:00 |
|
Irmen de Jong
|
2665618fa6
|
zp test added, some cleanups
|
2019-08-11 22:23:18 +02:00 |
|
Irmen de Jong
|
bccfeb2fa2
|
fix some unittests
|
2019-08-05 21:04:15 +02:00 |
|
Irmen de Jong
|
e834924857
|
more ++ and -- code, 'dontuse' zeropage option
|
2019-08-04 22:44:20 +02:00 |
|
Irmen de Jong
|
2c3b8a9819
|
more ++ and -- code, 'dontuse' zeropage option
|
2019-08-04 22:35:27 +02:00 |
|
Irmen de Jong
|
9961a404ae
|
got rid of bytecode based compiler and vm
|
2019-07-23 20:44:11 +02:00 |
|
Irmen de Jong
|
e03c68b632
|
optimize imports
|
2019-07-17 02:11:16 +02:00 |
|
Irmen de Jong
|
31f4e378aa
|
split up Literalvalue into numeric and reference ones
|
2019-07-15 01:11:32 +02:00 |
|
Irmen de Jong
|
87c28cfdbc
|
restructure c64 machinedefinition
|
2019-07-13 03:16:48 +02:00 |
|
Irmen de Jong
|
a59f7c75dc
|
fixed some compile time and vm arithmetic errors
|
2019-07-10 13:33:52 +02:00 |
|
Irmen de Jong
|
1794f704e7
|
restructuring more things
|
2019-07-08 14:38:51 +02:00 |
|
Irmen de Jong
|
ade7a4c398
|
restructuring vm
|
2019-07-08 13:40:52 +02:00 |
|
Irmen de Jong
|
5a27b035b0
|
restructuring of the AST package
|
2019-07-08 13:33:31 +02:00 |
|
Irmen de Jong
|
060e05c868
|
strlen and strings with zeros in them should terminate at the zero
|
2019-06-26 02:34:43 +02:00 |
|
Irmen de Jong
|
268856823a
|
got rid of old Value in favor of new RuntimeValue implementation
|
2019-06-24 22:45:27 +02:00 |
|
Irmen de Jong
|
4bac5043b6
|
fix integer wraparounds for RuntimeValue
|
2019-06-24 22:18:50 +02:00 |
|
Irmen de Jong
|
ebd38f27e6
|
cleaned up some symbol visibilities
|
2019-06-23 13:49:35 +02:00 |
|
Irmen de Jong
|
518c3bfd76
|
actually, get rid of integer pow() because a naive multiplication loop approach is way too slow
|
2019-03-31 18:05:41 +02:00 |
|
Irmen de Jong
|
bf3caaefe1
|
stackvm now uses a proper instruction pointer call stack instead of instruction linking
|
2019-03-13 22:00:41 +01:00 |
|
Irmen de Jong
|
f5ba072294
|
removed str_p and str_ps pascal string types, fixes #10
|
2019-03-10 18:11:26 +01:00 |
|
Irmen de Jong
|
2f1249489b
|
datatype cleanups
|
2019-02-25 01:22:56 +01:00 |
|
Irmen de Jong
|
ee497d2ffb
|
improved zero page address addresses for floating point support mode
|
2019-02-09 17:29:59 +01:00 |
|
Irmen de Jong
|
7459896155
|
finalized zeropage variable allocation
|
2019-01-27 22:59:40 +01:00 |
|
Irmen de Jong
|
3a8f069854
|
zp allocations
|
2019-01-27 17:10:49 +01:00 |
|
Irmen de Jong
|
953cf9a335
|
preparing for vars on zeropage
|
2019-01-26 22:46:01 +01:00 |
|
Irmen de Jong
|
2911e357bd
|
restructured program init code and library imports a bit
|
2019-01-20 17:45:57 +01:00 |
|
Irmen de Jong
|
f1b2bd1cc4
|
got rid of separate '//' floordivision operator
|
2019-01-09 22:01:47 +01:00 |
|
Irmen de Jong
|
b8b531276d
|
fixed some shift opcode issues in stackvm, tweak mandelbrot example
|
2019-01-08 01:31:59 +01:00 |
|
Irmen de Jong
|
d203bfaf25
|
normal division is always float, implemented (u)byte integer division
|
2019-01-06 01:43:47 +01:00 |
|
Irmen de Jong
|
39a8508daa
|
sine table and bit shifting of signed values fixed
|
2019-01-05 02:42:58 +01:00 |
|
Irmen de Jong
|
9ffc68acab
|
casts
|
2018-12-20 16:17:58 +01:00 |
|
Irmen de Jong
|
5870006b2f
|
introduced type cast "... as ..." instead of builtin functions
|
2018-12-20 03:17:41 +01:00 |
|
Irmen de Jong
|
3a7b341f47
|
fixes
|
2018-12-18 18:32:41 +01:00 |
|