Damien
d9d6201b52
py: simplify __next__ method for generators.
2013-12-21 18:38:03 +00:00
Damien
d99b05282d
Change object representation from 1 big union to individual structs.
...
A big change. Micro Python objects are allocated as individual structs
with the first element being a pointer to the type information (which
is itself an object). This scheme follows CPython. Much more flexible,
not necessarily slower, uses same heap memory, and can allocate objects
statically.
Also change name prefix, from py_ to mp_ (mp for Micro Python).
2013-12-21 18:17:45 +00:00
Damien
e2880aa2fd
Fix a few compiler warnings.
2013-12-20 14:22:59 +00:00
Damien
a3dcd9e80c
py: add more Python built-in functions.
2013-12-17 21:35:38 +00:00
Damien
660365e14c
py: split runtime into map, obj, builtin.
2013-12-17 18:27:24 +00:00
Damien
a1b2693161
py: remove further unnecessary emit_verbatim code.
2013-12-12 15:34:40 +00:00
Damien
e388f1034e
py: fix bug with doc string not recognised after first newline of file.
2013-12-12 15:24:38 +00:00
Damien
02f8941bf6
py: reduce use of emit_verbatim calls to minimum.
2013-12-12 15:13:36 +00:00
Damien
9ecbcfff99
py: work towards working closures.
2013-12-11 00:41:43 +00:00
Damien
318aec6ba9
py: emit correct id for closed over variables.
2013-12-10 18:28:17 +00:00
Damien
6332174ab4
py: compiler supports string juxtaposition=concatenation.
2013-12-10 17:41:49 +00:00
Damien
db4c361f1c
py: add skeletal import functionality.
2013-12-10 17:27:24 +00:00
Damien
033d17a633
py: built-in range now accepts variable number of arguments.
2013-11-28 19:22:56 +00:00
Damien
d79338969b
py: restrict further when for-range optimisation is done.
2013-11-28 19:12:18 +00:00
Damien
86c7fc7dd9
py: add list pop and sort, unpack_sequence, and keywords in method_call.
2013-11-26 15:16:41 +00:00
Damien
6f3e7fc505
py: add UNPACK_SEQUENCE and keyword methods to VM.
2013-11-26 15:15:50 +00:00
Damien
ff099f36d6
py: add more functionality to showbc.
2013-11-26 15:14:50 +00:00
Damien
d47f9d5a4f
py: add call to __init__ when instantiating class object.
2013-11-25 23:40:02 +00:00
Damien
c1075ddc8f
py: add some more opcodes to showbc.
2013-11-25 23:39:36 +00:00
Damien
f03001f8a6
Add function to decode and show byte code.
2013-11-17 13:19:33 +00:00
Damien
0446a0d76d
Change some debugging/output messages for native code generation.
2013-11-17 13:16:36 +00:00
Damien
6d4f3462c4
Viper: function calls now convert constant arguments to objects.
2013-11-16 20:44:39 +00:00
Damien
6b92d451b2
Add len and subscr (a hack) support for strings.
2013-11-09 20:13:55 +00:00
Damien
94658e2e25
Add JUMP_IF_x_OR_POP opcodes to VM.
2013-11-09 20:12:32 +00:00
Damien
f3822fc34c
Fix but with optimised range being 1 over.
2013-11-09 20:12:03 +00:00
Damien
f72fd0e875
Add optimisation for "for x in range".
2013-11-06 20:20:49 +00:00
Damien
5bf32c3b6b
Built-in print function supports variable number of arguments.
2013-11-06 17:16:35 +00:00
Damien
ae0bc08a37
Viper supports inplace add (trivial).
2013-11-06 17:11:07 +00:00
Damien
40fdfe3000
Improve allocation of stack for byte code.
2013-11-05 22:16:22 +00:00
Damien
03c9cfb015
Make byte code jumps relative.
2013-11-05 22:06:08 +00:00
Damien
6addc89e55
Byte code for SMALL_INT uses 3 bytes for integer.
2013-11-04 23:04:50 +00:00
Damien
96a0addb18
Fixup include of stdarg and va_list definition.
2013-11-03 18:30:10 +00:00
Damien
2f06c57f8a
Add simple var-arg functions; add simple string.format.
2013-11-03 18:20:56 +00:00
Damien
33af3bf028
Change Py API names, py_get_* -> py_obj_get_*.
2013-11-03 14:39:47 +00:00
Damien
9b9e996df6
Support for for-loop in native thumb.
2013-11-03 14:25:43 +00:00
Damien
1a6633a74d
Implement more thumb branch instructions.
2013-11-03 13:58:19 +00:00
Damien
d57eba51e5
Add user object to runtime.
2013-11-02 23:58:14 +00:00
Damien
6ba1314265
Fix bug: emit native didn't clear last_was_return in label_assign.
2013-11-02 20:34:54 +00:00
Damien
7410e440ab
Add basic complex number support.
2013-11-02 19:47:57 +00:00
Damien
e0b1864337
Small hack to temporarily fix allocation of unique_code slots.
2013-11-02 16:41:24 +00:00
Damien
ccfc9c51ba
Py runtime: list.append returns None.
2013-11-02 15:10:37 +00:00
Damien
4ebb32fb95
Implement: str.join, more float support, ROT_TWO in VM.
2013-11-02 14:33:10 +00:00
Damien
2839168340
Add py_get_array_fixed_n function.
2013-10-25 00:40:38 +01:00
Damien
6f08f8ce51
Add working MMA support.
2013-10-23 22:17:26 +01:00
Damien
d2c1a732e5
Call gc_free in gc_realloc after allocating new block.
2013-10-23 21:03:27 +01:00
Damien
8b3a7c2237
Fix func decls with no arguments: () -> (void).
2013-10-23 20:20:17 +01:00
Damien
9fc7933ff2
Add py_get_qstr.
2013-10-23 00:01:10 +01:00
Damien
ec63cce470
Add simple support for C modules.
2013-10-22 22:58:17 +01:00
Damien
92c06561a3
Improve REPL compount statement detection.
2013-10-22 22:32:27 +01:00
Damien
bb5316b905
gc: reserve first block; lexer: free vstr.
2013-10-22 21:12:29 +01:00