Commit graph

139 commits

Author SHA1 Message Date
02d1d51383
Get rid of more raw pointer passing 2024-11-30 01:39:50 +00:00
4d406a11f7
Make memory allocation safer by avoiding passing raw pointers around 2024-11-29 23:04:04 +00:00
0ce71beb62
Implement tail calls for continuation calling 2024-11-03 18:52:50 +00:00
d017884c5b
Implement tail calls 2024-11-03 18:18:15 +00:00
ab9377fe33
Replace the selfcall opcode with "self" to get ref to current fun 2024-11-03 00:51:48 +00:00
00c874957b
Slightly cleaner returns in stdlib 2024-10-15 00:42:08 +01:00
e2247d9bc8
Add "task?" predicate 2024-10-15 00:28:42 +01:00
9501dea85a
Temporarily revert the support for redefining variables in the body
The current implementation appears to be buggy. Need to investigage
how to do it properly.
2024-10-13 21:58:41 +01:00
5f2636c62f
Implement reraise correctly: don't destroy the parent frame 2024-10-13 20:37:54 +01:00
b9fa84ba0e
Implement exception reraising from the guard handler 2024-10-13 19:13:33 +01:00
ad4f0a43d4
Add support for executing multiline code blocks via comint mode 2024-10-12 18:29:49 +01:00
9e45485053
Implement a dumb line reader for comint mode 2024-10-11 21:44:28 +01:00
353102f8cd
Allow redefining local variables with "fn" 2024-10-10 20:12:23 +01:00
58af636293
Allow defining and redefining local variables with "def" 2024-10-10 18:57:06 +01:00
6b8651145e
Implement "do" form 2024-10-10 18:26:37 +01:00
908df85c63
Add a simple emacs mode for editing valeri code 2024-10-09 00:54:56 +01:00
f4660b6bc1
Allow disassembling continuations and stack frames as well 2024-10-06 20:06:01 +01:00
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
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