Commit Graph

407 Commits

Author SHA1 Message Date
K. Lange
52427a5147 Add a basic 'with' statement
This is incomplete; it's missing the necessary plumbing to ensure __exit__
still gets called if the inner block returns or raises an exception. TODO
2021-01-09 12:46:59 +09:00
K. Lange
bb6b4d09f5 Move file pointer to File->_internal 2021-01-09 10:40:52 +09:00
K. Lange
13620e4d6d Add File.readlines() 2021-01-09 10:27:36 +09:00
K. Lange
656942f612 Cleanup and useful builtins 2021-01-09 10:12:50 +09:00
K. Lange
a8f95c22a8 The red text is a bit poor 2021-01-09 07:32:43 +09:00
K. Lange
2b6840b07d Add logo? 2021-01-08 23:12:16 +09:00
K. Lange
0149f7cfee Add missing free() after calling repl 2021-01-08 22:18:56 +09:00
K. Lange
c405bc1bfa Reserve stack space before directly passing stack to krk_dict_of in callValue 2021-01-08 22:18:04 +09:00
K. Lange
0599ad0775 Replace Makefile.static with a complicated combination of config options 2021-01-08 20:26:29 +09:00
K Lange
2bd0d93596 Add kuroko.argv 2021-01-08 19:05:11 +09:00
K Lange
2f7503cd0d Switch to a more sensible default for module_paths 2021-01-08 18:29:29 +09:00
K. Lange
070b4bc356 Add tuple unpacking and 'if' conditions to list comprehensions 2021-01-08 18:00:49 +09:00
K. Lange
fc05327c42 Support unpacking tuples in for ... in ... loops. 2021-01-08 17:42:57 +09:00
K. Lange
8f9c1a4c1d Switch C-style loops to semicolons before I regret having used commas 2021-01-08 17:14:42 +09:00
K. Lange
0f44617825 shorten builtin collection reprs; still want to rewrite these in C 2021-01-08 17:13:27 +09:00
K. Lange
ace8357c9a List comprehensions should not set their subfunctions to methods; ensures 'self' is an upvalue 2021-01-08 16:53:46 +09:00
K. Lange
0d2e115c93 Make sure we rebuild everything on a header file change... 2021-01-08 16:53:17 +09:00
K. Lange
3735b9c16b Raise KeyboardInterrupt on ^C 2021-01-08 16:40:43 +09:00
K. Lange
3f66b85757 Add os.environ (missing set: TODO) 2021-01-08 16:36:24 +09:00
K. Lange
0a9276863c Move module_paths to 'kuroko' insted of __builtins__ 2021-01-08 15:59:43 +09:00
K. Lange
596b552219 Add str.[l,r]strip() suite 2021-01-08 15:53:39 +09:00
K. Lange
80c307e12a Remove src/*.o on 'make clean' 2021-01-08 12:15:53 +09:00
K. Lange
f21a959b14 Add instructions for static builds 2021-01-08 12:12:44 +09:00
K. Lange
0658d2f4dd Flags and Makefile for static building 2021-01-08 10:59:03 +09:00
K. Lange
bd644026b0 Try to enable a Github Actions workflow 2021-01-08 08:49:08 +09:00
K. Lange
cdd3272d0e Accept tabs as being equivalent to eight spaces, but no mixing on a single line 2021-01-08 07:05:33 +09:00
K. Lange
ee518f9643 Fix two symbols missing namespacing prefixes 2021-01-08 06:49:27 +09:00
K Lange
44f69a78c2 Fix leak in _string_split 2021-01-07 23:18:14 +09:00
K Lange
3823270a8b Set interpreter rpath to $ORIGIN 2021-01-07 22:52:38 +09:00
K Lange
a1fbaecabd Readme and doc updates 2021-01-07 22:45:52 +09:00
K Lange
f9832be57c Typos and such 2021-01-07 20:42:25 +09:00
K Lange
5e93d9c3aa Cleanup interpreter flags 2021-01-07 20:22:49 +09:00
K Lange
4d31f5dc0e Pretend a tab is one space, just to begrudgingly allow them. 2021-01-07 20:22:34 +09:00
K Lange
2d012e4126 Add more help information and some startup text to the repl 2021-01-07 20:00:57 +09:00
K Lange
330f697800 Embed version information in a 'kuroko' module (~= Python's 'sys', but I want to keep that name available for Python compatibility) 2021-01-07 20:00:31 +09:00
K Lange
99cb7c592f closure.__doc__ should be a dynamic field, not a method... 2021-01-07 19:59:47 +09:00
K. Lange
5df14689bf Tab completion for basic fields/methods in the repl 2021-01-07 18:47:36 +09:00
K. Lange
9eb5fb1cad Add ternary (a) if (cond) else (b) 2021-01-07 14:04:42 +09:00
K. Lange
03ead15eaf Fix segfault on compile failure 2021-01-07 12:34:44 +09:00
K. Lange
21760c1f2d traceback ordering is in fact most-recent-last just like cpython... 2021-01-07 12:20:53 +09:00
K. Lange
0c4c4c95f9 Add module class with nice repr 2021-01-07 12:13:47 +09:00
K. Lange
ecb5f1e4ec Attach __doc__ to modules, default to None (but still set) if missing 2021-01-07 11:30:10 +09:00
K. Lange
11e6b79e49 Remove 'export' keyword 2021-01-07 11:15:57 +09:00
K. Lange
8a1de6c4d2 Assign __main__ as name of executed scripts 2021-01-07 10:58:04 +09:00
K. Lange
4266bf60e7 Attach globals to callframes and get rid of vm.globals 2021-01-07 10:52:29 +09:00
K. Lange
fbf4dda818 Fix tracking what should be 'global' through function calls? 2021-01-07 10:39:09 +09:00
K. Lange
902d2222b5 Make modules work like in Python. TODO: module class for better repring 2021-01-07 09:50:58 +09:00
K. Lange
e19e45c59b Simplify builtins.c generation 2021-01-07 08:39:46 +09:00
K. Lange
d6525a1f32 Add tuple.__iter__, internalize list.__iter__ 2021-01-07 08:27:40 +09:00
K. Lange
5d01aae45b Show local variable names, when available, in stack dumps 2021-01-06 22:09:27 +09:00