Damien George
6baf76e28b
py: make closures work.
2013-12-30 22:32:17 +00:00
Damien
732407f1bf
Change memory allocation API to require size for free and realloc.
2013-12-29 19:33:23 +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
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
d79338969b
py: restrict further when for-range optimisation is done.
2013-11-28 19:12:18 +00:00
Damien
0446a0d76d
Change some debugging/output messages for native code generation.
2013-11-17 13:16:36 +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
27fb45eb1c
Add local_num skeleton framework to deref/closure emit calls.
2013-10-20 15:07:49 +01:00
Damien
5ac1b2efbd
Implement REPL.
2013-10-18 19:58:12 +01:00
Damien
ce89a21ea4
Implement basic exception framework, and simple for loop.
2013-10-15 22:25:17 +01:00
Damien
3ef4abb446
Change ifdef/if defined to simple if's.
2013-10-12 16:53:13 +01:00
Damien
0efb3a1b66
Tidy up SMALL_INT optimisations and CPython compatibility.
2013-10-12 16:16:56 +01:00
Damien
3a205179ea
Option in compile.c to emit compatible or not with CPython.
2013-10-12 15:01:56 +01:00
Damien
c025ebb2dc
Separate out mpy core and unix version.
2013-10-12 14:30:21 +01:00
Damien
91d387de7d
Improve indent/dedent error checking and reporting.
2013-10-09 15:09:52 +01:00
Damien
13ed3a658d
Native Python and Viper support for x64 and thumb all together.
2013-10-08 09:05:10 +01:00
Damien
3410be8035
Merge viper types with standard native emitter.
2013-10-07 23:09:10 +01:00