|
1958cfb285
|
Report syntax errors when reading in the REPL
|
2024-09-08 02:31:54 +01:00 |
|
|
5cb8921c42
|
Add simple and naive string building functionality
|
2024-09-08 00:52:20 +01:00 |
|
|
0b62026d27
|
Implement simple quotation (no unquote yet though)
|
2024-09-07 20:31:39 +01:00 |
|
|
02dce3e11c
|
Add an error class to represent runtime errors
|
2024-09-07 17:37:12 +01:00 |
|
|
fa4b912b88
|
Remove reduntant syntax_first/syntax_rest (use regular first/rest instead)
|
2024-09-07 12:16:55 +01:00 |
|
|
12509f65df
|
Teach the compiler to handle syntax objects as input
|
2024-09-07 10:45:43 +01:00 |
|
|
4b7d845757
|
Allow reading with preserving source location in syntax objects
|
2024-09-06 23:32:05 +01:00 |
|
|
aa1d8d7fa9
|
Expose the source location class to the compiler/vm
|
2024-09-05 23:22:45 +01:00 |
|
|
c194a34efb
|
Add self-evaluating symbols that start with ":"
|
2024-09-04 23:24:12 +01:00 |
|
|
8515d45b1e
|
Use recursion for reading lists
|
2024-09-04 23:18:57 +01:00 |
|
|
8f10ca2b50
|
Improve support of syntax objects
|
2024-09-03 00:24:44 +01:00 |
|
|
908b896d43
|
Implement defining top-level variables including in REPL
|
2024-09-01 23:45:20 +01:00 |
|
|
6a5aad3ae9
|
Fix dict tests
|
2024-09-01 23:11:53 +01:00 |
|
|
09693768f8
|
Implement input of dicts and arrays in REPL
|
2024-09-01 23:02:21 +01:00 |
|
|
94b8f21a82
|
Add support for reading arrays
|
2024-09-01 22:37:56 +01:00 |
|
|
3999ef97ff
|
Register function into globals even if it's a closure
|
2024-09-01 18:04:12 +01:00 |
|
|
8816c62a9e
|
Allow creating arrays from code
|
2024-09-01 16:13:28 +01:00 |
|
|
7d160da5d0
|
Implement access to previously defined functions in REPL
|
2024-09-01 14:31:25 +01:00 |
|
|
5279b44441
|
Load from globals only at the top level, do rest with closures
|
2024-08-31 19:42:27 +01:00 |
|
|
4ab6142ca5
|
Propagate closures across multiple function calls
|
2024-08-31 18:10:17 +01:00 |
|
|
51dfe6ac5a
|
A few simplifications of object conversion
|
2024-08-31 17:30:10 +01:00 |
|
|
82b75e1448
|
Simplify compiler a bit by removing unneeded casts
|
2024-08-29 23:14:33 +01:00 |
|
|
2e62a67490
|
Implement "let" construct in the compiler
|
2024-08-28 23:57:01 +01:00 |
|
|
f78b6e67cd
|
Allow creating dicts with "dict" function
|
2024-08-28 21:51:25 +01:00 |
|
|
b23eb26ffe
|
Add primitive logic operations: "and", "or", "not"
|
2024-08-27 22:31:13 +01:00 |
|
|
781b3865c0
|
Add assert function to stdlib. Useful for tests
|
2024-08-27 20:19:47 +01:00 |
|
|
7ea2c3e193
|
Implement mixed arithmetic with integers and floats
|
2024-08-27 20:15:22 +01:00 |
|
|
f73de2675d
|
Implement proper reading of "nil" in REPL
|
2024-08-26 13:45:13 +01:00 |
|
|
56ccf2b054
|
Handle empty lines in REPL
|
2024-08-26 13:36:01 +01:00 |
|
|
516407f9c2
|
Don't duplicate input line when reading from REPL
|
2024-08-26 13:16:54 +01:00 |
|
|
a3db5aa285
|
Add a simple REPL
|
2024-08-26 13:16:05 +01:00 |
|
|
c7a3e820e0
|
Implement basic stdlib and a simple "println" function callable from lisp
|
2024-08-25 00:55:11 +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 |
|
|
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 |
|
|
b0166cc7da
|
Add test for dictionary "get()"
|
2024-08-03 18:53:14 +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 |
|
|
220adaace9
|
Add utf-8 conversion from string to byte array
|
2024-07-28 16:40:52 +01:00 |
|
|
cdcd111fb2
|
Add byte arrays
|
2024-07-28 15:42:18 +01:00 |
|
|
1c2f272c1d
|
Implement most of the reader
|
2024-07-27 23:13:59 +01:00 |
|
|
110a7c8433
|
Implement reading lists and bools
|
2024-07-27 19:40:13 +01:00 |
|
|
46381cccef
|
Beginnings of a reader
|
2024-07-27 16:25:44 +01:00 |
|
|
ded19f7962
|
Fix a few bugs with GC roots
|
2024-07-27 01:01:38 +01:00 |
|
|
db91d830af
|
Fix some of the Value initializations
|
2024-07-26 20:20:13 +01:00 |
|
|
7a6bdc8aad
|
Use GC roots in primitive types
|
2024-07-26 19:32:27 +01:00 |
|
|
5ca7630c8c
|
Make a simple gc root actually work
|
2024-07-20 22:56:45 +01:00 |
|
|
baa10bb56b
|
Initial implementation of arena with gc roots
|
2024-07-20 22:42:49 +01:00 |
|
|
8ff01726cc
|
Initial commit - add basic boilerplate for POD types
|
2024-07-19 02:29:30 +01:00 |
|