Commit Graph

1000 Commits

Author SHA1 Message Date
K. Lange
32d7d6f666 fix scanner issue with EOF after indentation 2020-12-29 12:24:48 +09:00
K. Lange
a0d52a61f2 add an exception mechanism 2020-12-29 11:00:12 +09:00
K. Lange
ba73f5a32a move stray test into test/ 2020-12-29 08:25:36 +09:00
K. Lange
0f7bc84ad3 for loops must open a new scope around their blocks as well or they won't pop locals before the loop finishes 2020-12-29 08:23:18 +09:00
K. Lange
9a580d6720 Add binding to configure debug tracing at runtime 2020-12-29 08:22:54 +09:00
K. Lange
56e7f3aa02 Not actually slower to include the debug branches 2020-12-29 08:22:37 +09:00
K Lange
e9261a2f56 change size of integers to long 2020-12-28 16:32:40 +09:00
K Lange
b32dde0431 add % operator 2020-12-28 16:32:27 +09:00
K Lange
27f888543d let's build things for a faster vm by default 2020-12-28 16:31:53 +09:00
K. Lange
d8d03a2c4c pause gc around bound native calls 2020-12-28 22:18:30 +09:00
K. Lange
067d8cdb65 fix upvalue storage being completely broken when we move the stack 2020-12-28 22:02:39 +09:00
K. Lange
2432135b15 clean up repl highlighter 2020-12-28 21:31:46 +09:00
K. Lange
ae2b00bcfa int32_t is long int on toaru? I should probably fix that 2020-12-28 21:08:55 +09:00
K. Lange
724e44655d Make print statement force args to strings 2020-12-28 20:47:16 +09:00
K. Lange
3ba8025eeb lots of fixups so we can create dicts from the vm 2020-12-28 20:38:26 +09:00
K. Lange
b3ad2e1f22 Second pass at cleaning up built-ins 2020-12-28 19:26:01 +09:00
K. Lange
cdcbf6cf54 First pass at module/builtin cleanup 2020-12-28 19:01:28 +09:00
K Lange
86d2a80a6d make String.length a method 2020-12-28 11:29:58 +09:00
K Lange
5a5c597033 little repl improvements 2020-12-28 11:25:42 +09:00
K Lange
ac15ca117c Clean up some pedantic warning stuff 2020-12-28 11:11:50 +09:00
K. Lange
a1c8844292 Add screenshot of repl to README 2020-12-28 16:08:06 +09:00
K. Lange
3c0bd99a2e ssize_t usually comes from sys/types 2020-12-28 16:07:52 +09:00
K. Lange
bbae30b09b fix history scrollback 2020-12-28 14:00:12 +09:00
K. Lange
db086de155 fix List.__set__ 2020-12-28 13:55:55 +09:00
K. Lange
f62f6f84e2 fix up some bad garbage collections with modules 2020-12-28 13:51:14 +09:00
K. Lange
0f508c38dc Add support for iterators 2020-12-28 13:35:02 +09:00
K. Lange
1d3368861b fix a bunch of compiler stuff 2020-12-28 12:16:44 +09:00
K. Lange
1bae2060eb add fancy repl 2020-12-28 11:37:38 +09:00
K. Lange
8f42695f36 Fix up repl 2020-12-28 10:54:25 +09:00
K. Lange
369e0f84db We can also put them on more basic types 2020-12-28 09:17:00 +09:00
K. Lange
3bcc5d5530 Synthesized properties and methods for strings 2020-12-28 09:08:35 +09:00
K. Lange
c55c806e40 we can extract properties from types other than instances in the vm, like this dynamic length method 2020-12-28 08:17:54 +09:00
K. Lange
01fdf1d86f remove superfluous debug prints 2020-12-27 22:48:22 +09:00
K. Lange
08b4044cfe executable stuff 2020-12-27 22:42:22 +09:00
K. Lange
4982881235 that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00
K. Lange
1f754ebc01 not exactly how modules work in Python, but, uh, good enough for us for now 2020-12-27 18:55:52 +09:00
K. Lange
0ca0564cd0 methods/initializers; haven't done invoke, want to add modules first then come back 2020-12-27 17:53:46 +09:00
K. Lange
f88e8de25d classes and instances (from ch 27) 2020-12-27 16:45:34 +09:00
K. Lange
1d0fac5640 Basic garbage collection; had to fix some stuff for stack preallocation 2020-12-27 16:07:27 +09:00
K. Lange
78022fb701 wrap up closure implementation from chapter 25 2020-12-27 13:02:26 +09:00
K. Lange
076da0bc1e remove temporary 'block' keyword 2020-12-27 10:58:36 +09:00
K. Lange
90bc82e976 add more stuff to demo script 2020-12-27 10:32:23 +09:00
K. Lange
d90778c40c fix totally broken hexadecimal constants 2020-12-27 10:19:44 +09:00
K. Lange
81e3e133c8 finish up chapter 24 (functions, calls, native bindings) 2020-12-27 09:33:28 +09:00
K. Lange
df7ca60bdf and that's chapter 23... 2020-12-26 20:39:47 +09:00
K. Lange
aab01f01f7 Finish up chapter 22, local variables; fix up indentation-based scoping 2020-12-26 18:39:29 +09:00
K. Lange
f5d3cd24e0 meta stuff 2020-12-26 16:59:43 +09:00
K. Lange
928047f1db Completed chapter 21, global variables 2020-12-26 16:53:15 +09:00
K. Lange
417637ef21 hash tables (which should work with any object as keys?) and string interning from ch 20 2020-12-26 14:33:34 +09:00
K. Lange
14aeea5f5b through chapter 19 of Crafting Interpreters 2020-12-26 09:32:21 +09:00