Commit graph

61 commits

Author SHA1 Message Date
48163e9251
Update README to note that this is a compiler now, and not an interpreter 2024-08-24 01:42:26 +01:00
66502cac69
Implement enough of function call support to make "factorial" function 2024-08-24 00:28:29 +01:00
8f6ebf2d0e
Make function-declaration example compile and work 2024-08-23 22:21:00 +01:00
7a36787bd8
Initial support for compiling named functions 2024-08-23 22:08:02 +01:00
ecbdc17f2b
Compile comparison operations 2024-08-23 21:30:05 +01:00
5948bfa973
First working implementation of closures 2024-08-22 17:21:05 +01:00
6fcd231694
Implement VM opcode for closure capture 2024-08-21 23:45:19 +01:00
edc0a89ed9
Implement closure compilation (no running yet) 2024-08-20 23:18:48 +01:00
fdf38c71bf
Read and compile full toplevel multiline program 2024-08-18 22:08:47 +01:00
4bd21e0e17
Clean up the code around isatty() a bit 2024-08-18 20:14:35 +01:00
dbf52344ae
Implement reading of code from files in the entry point 2024-08-18 20:01:40 +01:00
7d88d483df
Fix callstack bug with returning to previous function 2024-08-18 12:56:54 +01:00
a11b2bfa7e
Remove unnecessary creation of Reader object 2024-08-17 23:48:24 +01:00
fce8b84276
Implement compiling lambda functions and function calls 2024-08-17 23:22:21 +01:00
9a0f6d2264
Initial implementation of lambda compilation 2024-08-17 12:33:45 +01:00
81eb5e43ce
Implement simple conditionals 2024-08-15 01:18:05 +01:00
3a117c9b1f
Enable execution of primitive arithmetic bytecode 2024-08-13 01:11:23 +01:00
040eb540b1
Implement reading and writing from stack 2024-08-12 23:05:40 +01:00
fd507f6fcd
Improve the code in vli.cpp to be more readable 2024-08-11 23:04:46 +01:00
c63af0057f
Stop printing debug output from the compiler 2024-08-11 21:40:32 +01:00
f305901121
Return compiled function from the compile() 2024-08-11 21:37:37 +01:00
d3471ed1af
Make primitive arithmetic operations compile to bytecode 2024-08-11 19:25:37 +01:00
8a50f99340
Reduce number of opcodes required for addition 2024-08-11 12:37:00 +01:00
74bff1a4c4
Implement writing of opcodes 2024-08-11 02:25:44 +01:00
3cb4869ed5
First proper code generation for addition 2024-08-10 21:47:07 +01:00
a195b8d0e3
More const qualifiers added 2024-08-10 18:56:42 +01:00
f1fd15171c
Add const qualifiers where necessary 2024-08-10 18:46:20 +01:00
db6ff8deba
Add "Opcode" type 2024-08-10 18:24:16 +01:00
935c629460
Add error location reporting 2024-08-10 11:17:20 +01:00
4c7b44ff01
Stop passing arena explicitly 2024-08-09 23:45:06 +01:00
b40f835bfb
Simplify the handling of OffPtr 2024-08-06 20:32:55 +01:00
92f546107e
Add compiler context 2024-08-04 20:38:56 +01:00
0924692d4b
Fix the name of symbol test 2024-08-04 01:03:34 +01:00
ae6f86e4f7
Add symbol comparison and test for it 2024-08-04 01:03:01 +01:00
7bcd6afeb2
Add simple array test 2024-08-04 00:33:17 +01:00
91280bc5aa
Add README.md 2024-08-04 00:01:46 +01:00
b0166cc7da
Add test for dictionary "get()" 2024-08-03 18:53:14 +01:00
a52e4d278c
Add empty dict test 2024-08-03 16:02:09 +01:00
07e2b44657
Reading back dicts 2024-08-03 13:43:59 +01:00
1f14624664
Garbage-collect dictionaries properly 2024-08-03 02:54:53 +01:00
737dc03054
Cleaner test setup 2024-08-02 23:27:36 +01:00
216fb486cd
Dictionary writing + insert 2024-08-01 22:45:16 +01:00
a3724e1c78
Add dicts and super primitive test suite 2024-08-01 18:56:38 +01:00
42a5b7da2b
Add arrays and boilerplate for the compiler 2024-07-30 23:52:23 +01:00
6e662ad6c4
Remove some of the commented out code 2024-07-30 22:57:03 +01:00
f87822933a
Make garbage collection work 2024-07-30 00:14:09 +01:00
426d3d7029
Add ASAN poisoning to the arena 2024-07-29 20:34:00 +01:00
2f59b0ba12
First successful read and write 2024-07-29 00:14:30 +01:00
4718780d9d
Make writer actually print something
This also fixes some of the GcRoot bugs
2024-07-28 23:37:43 +01:00
ba433dafe9
Implement basic writer 2024-07-28 17:54:04 +01:00