K. Lange
|
6164c3ebf4
|
General code cleanup.
|
2021-01-02 12:21:11 +09:00 |
|
K. Lange
|
6e4ff9f791
|
.. and fix uname()
|
2021-01-01 21:07:42 +09:00 |
|
K. Lange
|
b42844f842
|
Fully internalize list+dict core methods and implement invokes for getters/setters
|
2021-01-01 20:52:18 +09:00 |
|
K. Lange
|
ae2e2be15d
|
do something more straightforward and useful for methods on non-objects
|
2021-01-01 16:02:16 +09:00 |
|
K. Lange
|
8e5ace5112
|
Make classes for base types and exceptions
|
2021-01-01 12:04:58 +09:00 |
|
K. Lange
|
2b3a5cec60
|
String slicing, and general syntax support
|
2020-12-31 18:32:37 +09:00 |
|
K. Lange
|
aa3674dd32
|
implement shared object module support
|
2020-12-31 15:48:39 +09:00 |
|
K. Lange
|
c2e5eeceb7
|
Internal binding functions should look at the stack from the top, not the bottom; they may run with stuff on the stack...
|
2020-12-31 14:46:02 +09:00 |
|
K. Lange
|
764f9144f8
|
Add __base__, isinstance(), and track superclass in the VM and not just implicitly by super() calls.
|
2020-12-31 09:15:53 +09:00 |
|
K. Lange
|
0b2c9df58f
|
shove list comprehensions into their own fake call frames because everything is terrible
|
2020-12-30 22:30:09 +09:00 |
|
K. Lange
|
f7e1c0da0d
|
Add docstrings, __doc__, and help()
|
2020-12-30 16:59:21 +09:00 |
|
K. Lange
|
a5928b18c9
|
bite the bullet and rename length() to __len__()
|
2020-12-30 15:50:26 +09:00 |
|
K. Lange
|
430f20566e
|
allow native functions to be bound as methods with a little work
|
2020-12-29 20:31:35 +09:00 |
|
K. Lange
|
7dfd853217
|
More stuff for embedding
|
2020-12-29 18:51:03 +09:00 |
|
K. Lange
|
b0c2772937
|
switch some type conversions to bound methods
|
2020-12-29 16:40:42 +09:00 |
|
K. Lange
|
c6e5c8c120
|
once again, completely redo the parsing for indentation so that we can have pretty syntax errors
|
2020-12-29 15:26:45 +09:00 |
|
K. Lange
|
54c3779938
|
fix up handling of exceptions in module imports
|
2020-12-29 13:19:22 +09:00 |
|
K. Lange
|
a0d52a61f2
|
add an exception mechanism
|
2020-12-29 11:00:12 +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
|
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
|
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
|
f62f6f84e2
|
fix up some bad garbage collections with modules
|
2020-12-28 13:51:14 +09:00 |
|
K. Lange
|
8f42695f36
|
Fix up repl
|
2020-12-28 10:54:25 +09:00 |
|
K. Lange
|
3bcc5d5530
|
Synthesized properties and methods for strings
|
2020-12-28 09:08:35 +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
|
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
|
81e3e133c8
|
finish up chapter 24 (functions, calls, native bindings)
|
2020-12-27 09:33:28 +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 |
|