Commit Graph

499 Commits

Author SHA1 Message Date
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
K. Lange
854a12f68b Fix up some threading gc stuff before diving into real debugging 2021-02-09 21:34:02 +09:00
K. Lange
fe9af7c274 cmd.exe actually does work with the Windows build 2021-02-09 19:11:35 +09:00
K. Lange
6f95124bcd Threading
Don't be deceived by its size: this commit is mostly a bunch of
sed replacements to move thread state out of "vm" and introduce
a thread-local "KrkThreadState" object to hold stack pointers and
call frames for individual threads.

Threading support is incomplete and there's almost definitely a
bunch of really easy ways to break everything just by allocating
objects, but really simple stuff like carefully modifying a
a list of ints should work okay.

The README has been rewritten to remove code samples, which have
moved to the Wiki (as has the section on integrating with C).

Some other stuff has also moved around because the threading changes
necessitated a major API break anyway, so I also took the time to
fix some ABI issues.
2021-02-09 18:51:09 +09:00
K. Lange
f2747a07e4 Add more things to os module 2021-02-09 11:14:11 +09:00
K. Lange
a51619cb0d Cleanup os module 2021-02-09 11:00:45 +09:00
K. Lange
57b810db69 Add some (dumb) character classification methods for strings 2021-02-09 09:41:13 +09:00
K. Lange
20676f790e bump libc for deb to 2.29
math module built on Ubuntu 20.04 has a symbol dep for 2.29 for
log, pow, exp
2021-02-09 09:16:02 +09:00
K. Lange
af9a4622f8 That seems correct? 2021-02-08 18:28:51 +09:00