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