Commit graph

131 commits

Author SHA1 Message Date
a01a4d0574
Implement "disassemble" function in stdlib 2024-10-06 19:27:05 +01:00
be4224a22b
Implement exception guards and serialization/deserialization 2024-10-05 20:55:46 +01:00
2e3032ad26
Implement "set" function for strings 2024-09-30 01:29:35 +01:00
9e8f857836
Implement "get" function for strings 2024-09-29 22:56:46 +01:00
c097273aec
Implement "spit" function to write strings to a file 2024-09-29 21:43:23 +01:00
fb2cc0b1f0
Implement "slurp" function to read files into a string 2024-09-29 20:55:45 +01:00
69e2403c93
Allow to create tasks with symbol name in addition to numeric ID 2024-09-28 20:09:22 +01:00
4945a86c2e
Implement "when" form 2024-09-28 20:03:38 +01:00
52eae6b3e3
Port print and println to use tasks/continuations 2024-09-28 19:43:17 +01:00
cf9aa08aea
Implement the first IO function "print" to work via continuations 2024-09-28 04:24:37 +01:00
d496a95b51
Implement "task" and "task-result" objects for stdlib IO 2024-09-27 02:33:41 +01:00
efef0c57ae
Implement "raise" function 2024-09-24 20:53:26 +01:00
810707b349
Rename props->value in continuation object 2024-09-24 19:18:01 +01:00
9298e5a65b
Add a function for raising errors (first attempt) 2024-09-24 18:47:11 +01:00
4a7afa0626
Add continuation type 2024-09-23 21:23:25 +01:00
a81b54a37a
Implement "set" function for arrays 2024-09-18 20:02:56 +01:00
b967aa6768
Implement "set" function in the stdlib 2024-09-18 19:53:12 +01:00
6ff2084d09
Increment pc register before doing function call, not after return 2024-09-16 22:27:24 +01:00
1733b0e433
Fix stdlib value returns 2024-09-15 20:09:11 +01:00
2e37e4160d
Add a simple test for the map function 2024-09-15 16:23:57 +01:00
049aeef62f
Implement a map function that works on lists 2024-09-15 16:21:58 +01:00
06149c3d61
Make stdlib functions use normal VM stack for parameter passing 2024-09-15 15:39:12 +01:00
bb71669c83
Implement printing backtraces on VM execution errors 2024-09-15 03:32:52 +01:00
6126c7b8eb
Put stdlib calls onto the stack as well as normal function calls 2024-09-15 02:33:47 +01:00
e9b9ef6d61
Extract call() and ret() into the StackFrame from VM 2024-09-15 01:43:25 +01:00
51de7e3547
Switch the stack frame to store current frame PC instead of parent's 2024-09-13 21:15:57 +01:00
f16850d26c
Switch to immutable stack frames from array-based stack 2024-09-13 00:54:32 +01:00
213ce07f34
Turn the stack data structure to hierarchical stack frame 2024-09-12 22:43:38 +01:00
b7d51f647f
Report errors with syntactic context in the compiler 2024-09-11 23:25:17 +01:00
d280c34e66
Make errors in REPL more human-readable 2024-09-11 01:35:38 +01:00
2bad87d0b0
Implement "size" function in stdlib 2024-09-10 03:18:00 +01:00
021f645fbf
Extract a common interface for Value::size() to get object sizes 2024-09-10 02:12:49 +01:00
3c30440d65
Add location-aware error reporting function to the compiler 2024-09-10 01:42:47 +01:00
b63b17ed5a
Compile syntax expressions 2024-09-09 22:56:06 +01:00
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
0a13bbeb6d
Add collections test 2024-09-02 09:29:32 +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