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 |
|
Irmen de Jong
|
2478c73bc0
|
more asm float calculations
|
2018-12-16 03:38:17 +01:00 |
|
Irmen de Jong
|
8597ea2ec7
|
correct printing of numbers
|
2018-12-14 23:15:44 +01:00 |
|
Irmen de Jong
|
7cb42de60e
|
more float asm operations, fix some % operator problems
|
2018-12-13 01:19:43 +01:00 |
|
Irmen de Jong
|
ef2ae60868
|
byte/word asm comparisons
|
2018-12-08 17:21:34 +01:00 |
|
Irmen de Jong
|
711d6f4ee5
|
fix memory pointer variables in the StackVm
|
2018-12-02 23:53:09 +01:00 |
|
Irmen de Jong
|
89ac374db9
|
float stuff
|
2018-12-02 17:59:36 +01:00 |
|
Irmen de Jong
|
8a2584c7df
|
added JZ/JNZ/etc opcodes for conditional jumps based on stack value
fix function parameter replacement of auto-heaped strings
|
2018-11-27 00:35:37 +01:00 |
|
Irmen de Jong
|
d6432df90d
|
got rid of 16-bit register pair variables (AX, AY, XY) they were complicating things too much
|
2018-11-02 22:06:57 +01:00 |
|
Irmen de Jong
|
4ef680f6fd
|
assignments
|
2018-11-01 23:42:10 +01:00 |
|
Irmen de Jong
|
5bf2c4a798
|
got rid of matrix type
|
2018-10-30 20:29:03 +01:00 |
|
Irmen de Jong
|
7c4846700b
|
simplified opcodes (removed COPY_XXX and MEM signed/unsigned distinction)
|
2018-10-27 22:08:46 +02:00 |
|
Irmen de Jong
|
5203dad7c1
|
more asm output
|
2018-10-26 01:44:01 +02:00 |
|
Irmen de Jong
|
f42a036fc5
|
more asm output, added COPY_MEM_XXX optimized opcodes
|
2018-10-25 00:28:50 +02:00 |
|
Irmen de Jong
|
b8f3f942d4
|
implemented all bit rotate and shift operations
|
2018-10-22 01:02:24 +02:00 |
|
Irmen de Jong
|
067426016d
|
more asm
|
2018-10-17 01:01:01 +02:00 |
|
Irmen de Jong
|
b7d8f026f4
|
refactor
|
2018-10-13 18:17:06 +02:00 |
|
Irmen de Jong
|
dff4518608
|
intermediate program written in blocks
|
2018-10-13 16:55:01 +02:00 |
|
Irmen de Jong
|
7aec14524e
|
fix datatype conversion issues
|
2018-10-12 15:50:32 +02:00 |
|
Irmen de Jong
|
1fe5c943fd
|
adding singed integer datatypes
|
2018-10-11 21:50:10 +02:00 |
|
Irmen de Jong
|
2f7d03b6ab
|
adding singed integer datatypes
|
2018-10-10 09:21:20 +02:00 |
|
Irmen de Jong
|
f5261a3425
|
added %zpreserved
|
2018-10-09 00:01:53 +02:00 |
|
Irmen de Jong
|
9d10210466
|
optimized var copying
|
2018-10-08 02:24:35 +02:00 |
|
Irmen de Jong
|
52e1661c8e
|
even more opcodes type-specific
|
2018-10-05 16:57:13 +02:00 |
|
Irmen de Jong
|
e8ba21d3ba
|
made a lot more opcodes type-specific
|
2018-10-05 13:58:37 +02:00 |
|
Irmen de Jong
|
42e4891fcf
|
allowing vardecl with non-const initial value assignment
|
2018-10-05 00:29:46 +02:00 |
|
Irmen de Jong
|
7d77504335
|
types
|
2018-10-04 02:30:23 +02:00 |
|
Irmen de Jong
|
d2ffb1063b
|
made more opcodes type-specific (will be needed for assembly generation later)
|
2018-10-04 02:17:18 +02:00 |
|
Irmen de Jong
|
38e7d48492
|
implemented floating-point arrays
|
2018-10-02 02:20:42 +02:00 |
|
Irmen de Jong
|
505de87f27
|
builtin funcs
|
2018-09-30 16:25:00 +02:00 |
|
Irmen de Jong
|
6b89bb7be5
|
strings and arrays are now stored in a 'heap' instead of in the value itself, to reflect how the target platform will store them
|
2018-09-29 17:33:59 +02:00 |
|
Irmen de Jong
|
814b7ce6aa
|
track vars per block for later 6502 generation
|
2018-09-28 23:04:36 +02:00 |
|
Irmen de Jong
|
c5d251073f
|
removed broken unused symbol clean up for now
streamlined irq routine handling and compilation
|
2018-09-28 21:28:16 +02:00 |
|
Irmen de Jong
|
4d7279b004
|
fix lsb, msb result data type
|
2018-09-28 19:35:34 +02:00 |
|
Irmen de Jong
|
7f28f8be11
|
60hz irq implemented in stackvm
|
2018-09-27 22:45:57 +02:00 |
|
Irmen de Jong
|
53cd50ad48
|
changed float handling and appropriate compiler messages
|
2018-09-25 19:52:59 +02:00 |
|
Irmen de Jong
|
d990b05998
|
compilation of prefix operators, added NOT opcode
|
2018-09-25 01:02:01 +02:00 |
|
Irmen de Jong
|
70e5a38aa2
|
changed set/clear carry and irqd somewhat
|
2018-09-24 23:38:33 +02:00 |
|
Irmen de Jong
|
cef0aae927
|
compilation of builtin functions to opcode
untit tests for stackvm opcodes, value and parser literalvalue
|
2018-09-24 22:34:12 +02:00 |
|
Irmen de Jong
|
cfd63dc42a
|
more opcodes unit tested
|
2018-09-22 14:16:48 +02:00 |
|
Irmen de Jong
|
f84e06bdeb
|
tweak branches
|
2018-09-22 00:33:25 +02:00 |
|
Irmen de Jong
|
0137478ad4
|
tweaks
|
2018-09-21 22:43:29 +02:00 |
|
Irmen de Jong
|
2f48406aad
|
unit tests for most of the StackVM opcodes. Fixed some opcode behaviors.
|
2018-09-21 02:20:37 +02:00 |
|
Irmen de Jong
|
455f60fb84
|
for loop and comparison expression fixes
|
2018-09-20 01:13:21 +02:00 |
|
Irmen de Jong
|
326e5cd81a
|
restructure compiler
|
2018-09-16 20:36:02 +02:00 |
|
Irmen de Jong
|
8ff72167a4
|
renamed project to Prog8
|
2018-09-15 16:21:05 +02:00 |
|