507 Commits

Author SHA1 Message Date
K. Lange
f70cc3619b Cleanup disassembler output even more 2021-02-17 23:12:14 +09:00
K. Lange
d01476d7b7 Finally pull in that opcode re-org...
... where we use the top two bits as a fixed operand size
that we always check on each instruction cycle.
2021-02-17 22:56:41 +09:00
K Lange
d0d144d0e9 Ensure that's handling closure upvalues correctly 2021-02-17 22:41:06 +09:00
K Lange
9b8d77e9b7 Adopt a more Python-esque disassembly output highlighting jump targets 2021-02-17 22:17:14 +09:00
K. Lange
82af7bcbcb Simplify most uses of unpackArray() macros to a single 'unpackIterableFast()' macro; support things other than lists in str.join() 2021-02-17 14:35:48 +09:00
K. Lange
9ef1d2ed66 I'm not really sure why that was failing, but let's copy the binpath just in case... 2021-02-16 08:50:17 +09:00
K Lange
3cef9d05e8 Add simple repl to krk-sandbox 2021-02-15 21:16:23 +09:00
K. Lange
9b3f311688 Directory.__enter__, __exit__ 2021-02-15 18:26:03 +09:00
K. Lange
34e7eb4e57 Embed os, dir, time, fileio modules in core; only 'math' is still a separate shared library 2021-02-15 16:27:50 +09:00
K. Lange
1d8f308b0d Incorrect function signature for compiler.c:lambda() was breaking WASM 2021-02-15 12:57:25 +09:00
K. Lange
8890f62d58 Apparently Python has a very specific meaning for 'words' in .title() 2021-02-14 18:43:33 +09:00
K. Lange
e93ff9c9c3 Add simple str.upper(), lower(), title() 2021-02-14 18:21:11 +09:00
K. Lange
4a9e3981fc Add object.__hash__() 2021-02-14 15:04:09 +09:00
K. Lange
e287b74973 Shift by _eight_ bits and magically everything is fast 2021-02-14 15:03:33 +09:00
K. Lange
419fcbfa45 Retool hashing, specifically for tuples 2021-02-14 13:38:54 +09:00
K. Lange
670eced948 Fix arg check for Exception.__init__ 2021-02-14 11:30:27 +09:00
K. Lange
a961def84a Only realloc once when appending string to stringbuilder 2021-02-14 11:26:22 +09:00
K. Lange
22453f42e6 useful methods for bytes 2021-02-14 11:18:54 +09:00
K. Lange
e0adfcdc80 Remove str-nonstr concatenation / implicit coercion 2021-02-14 08:25:53 +09:00
K. Lange
a7e110cad9 Change how module imports work to support a package importing contained modules 2021-02-14 08:13:53 +09:00
K. Lange
20b4142420 Fix bad nested string allocation lock release 2021-02-14 07:57:05 +09:00
K. Lange
bd1bbc2a32 Fix bundled builds refering wrong state structure 2021-02-13 09:02:37 +09:00
K. Lange
c53b532e9f Fix static build 2021-02-13 09:01:12 +09:00
K. Lange
ce28992c83 Clean exec versions of tools 2021-02-13 08:55:03 +09:00
K. Lange
8b5cfdf4e2 More stuff for os module 2021-02-12 19:50:55 +09:00
K. Lange
798df9cc08 cleanup unused / redundant defs 2021-02-12 16:01:29 +09:00
K. Lange
7d18c9fb1a Fix missing nil terminators in strings read by marshal reader 2021-02-12 15:57:54 +09:00
K. Lange
e6a50d6746 Clean tools on 'make clean' 2021-02-12 15:54:13 +09:00
K. Lange
6b6597d57d Add experimental bytecode marshal tool 2021-02-12 15:53:47 +09:00
K. Lange
13371611e2 Add tools (and tools/kuroko contains symlinks to headers) 2021-02-12 11:48:50 +09:00
K. Lange
eb89495fba krk_currentThread doesn't actually need to be a static in this build mode 2021-02-11 21:02:20 +09:00
K. Lange
a15e936d87 Fixes from building on macOS 2021-02-11 20:52:30 +09:00
K. Lange
90704df989 ignore dSYM directories 2021-02-11 20:14:27 +09:00
K. Lange
e6b6fd1f29 Enforce hasKw argument in function signatures for native bindings (so we can stop cheating in wasm) 2021-02-11 19:31:06 +09:00
K Lange
ee50eda05b Use util.h macros to write tuple methods 2021-02-11 16:37:49 +09:00
K. Lange
a3b577e239 Add one actual and three skipped thread tests to the test suite 2021-02-11 15:31:37 +09:00
K. Lange
6037665eb9 Add a flag to the main binary to compile but not run code 2021-02-11 15:30:51 +09:00
K. Lange
556b0ab465 Make sure upvalues reference their owning thread's stack so we can use them in threads 2021-02-11 14:42:06 +09:00
K. Lange
10aa2de306 Add Lock objects for access to simple mutexes using 'with' 2021-02-11 14:41:44 +09:00
K. Lange
d2b2fe3fb9 Request POSIX-style argument parsing in getopt for interpreter 2021-02-11 14:31:05 +09:00
K. Lange
cf57724952 Escape and truncate strings when printing them in debug functions 2021-02-11 13:50:44 +09:00
K Lange
f09723628e Slapping locks on tables isn't working as expected; drop it for now, revisit later 2021-02-11 05:27:43 +09:00
K Lange
8b53ac09b7 Our tuple packing is pretty slow, but some shifts and ors are pretty good 2021-02-11 05:27:06 +09:00
K. Lange
4233234406 Quick little demo of threads fighting over a dict (and still working) 2021-02-10 19:06:25 +09:00
K. Lange
09ce6c46a9 Wrap table accesses in locks, should be good for dicts, field assignments? 2021-02-10 18:19:10 +09:00
K. Lange
f9cfa4e622 Fix up binpath discovery which was totally broken 2021-02-10 14:44:59 +09:00
K. Lange
dce6c4b79e Reduce the size of KrkThreadState so we can squeeze into static TLS storage on dlopen 2021-02-10 12:41:50 +09:00
K. Lange
43d1e86a2a Wrap some things in readers-writer locks and now more stuff doesn't break 2021-02-10 10:20:56 +09:00
K. Lange
345b021936 Eliminate forced uses of GC pausing and fix up some more thread stuff; still need locks on collections 2021-02-09 23:13:45 +09:00
K. Lange
bd5619b32d Add support for size argument in File.read() 2021-02-09 22:09:12 +09:00