Damien George
0ff883904a
py: Fix generator where state array was incorrectly indexed.
...
Generator objects now allocate the object and the state in one malloc.
This improvement fixes Issue #38 .
2014-01-02 20:57:05 +00:00
Damien George
ebd2e8702d
py: __MACH__ also uses MAP_ANON.
2014-01-02 20:28:12 +00:00
Damien George
66327006fc
py: change negative array indices with array - 1.
2014-01-02 18:20:41 +00:00
Damien George
27bf5b829b
py: Add more bytecodes to showbc.c.
2014-01-02 18:15:33 +00:00
Paul Sokolovsky
bdf822b3d8
Add quick impl for MP_BC_LOAD_CONST_BYTES which just creates qstr so far.
...
This is based on the fact that qstr so far behaves more like byte string
than like Unicode string (for example, "012"[0] returns 48 (int)).
2014-01-02 18:51:19 +02:00
Damien George
fe8fb9165c
py: remove depedence on strcat and stpcpy.
...
This fixes Issue #29 , and means the core is no longer dependent on
string functions, except strlen.
2014-01-02 16:36:09 +00:00
Damien George
40563d56bd
py: Add framework for built-in "type()" function.
2014-01-02 16:01:17 +00:00
Edd Barrett
67ab5ee779
On OpenBSD MAP_ANONYMOUS is called MAP_ANON.
2014-01-01 23:16:27 +00:00
Damien George
df884fe4cc
py: change declaration of mp_map_t in obj.h (for issue #24 ).
2014-01-01 21:27:43 +00:00
Damien George
209d1b1835
py: add int() and float() built-ins, partially implemented.
2014-01-01 17:03:35 +00:00
Damien George
83c437cb0d
Merge pull request #12 from pfalcon/minor-fixes
...
Minor fixes
2013-12-30 14:43:21 -08:00
Damien George
6baf76e28b
py: make closures work.
2013-12-30 22:32:17 +00:00
Paul Sokolovsky
2efbc622cb
Typo fix in comment.
2013-12-30 21:03:41 +02:00
Damien George
8cc96a35e5
Put unicode functions in unicode.c, and tidy their names.
2013-12-30 18:23:50 +00:00
Damien George
212c296c0b
Make unix-cpy cross platform; remove dependency of asmx64 on mpconfig.
2013-12-30 12:52:32 +00:00
Damien George
cd340c44c2
Merge branch 'cross-plat' of https://github.com/pfalcon/micropython into pfalcon-cross-plat
2013-12-30 12:08:18 +00:00
Paul Sokolovsky
e85c38992d
Make "unix" target be crossplatform and support x86, x64, ARM hosts.
2013-12-30 03:38:32 +02:00
Damien
dae7eb7226
py: add dict length function, and fix rt_store_set.
2013-12-29 22:32:51 +00:00
Damien
732407f1bf
Change memory allocation API to require size for free and realloc.
2013-12-29 19:33:23 +00:00
Damien
02a7c41e76
py: implement POP_BLOCK in VM.
2013-12-29 18:48:37 +00:00
Paul Sokolovsky
44d0f3cfa2
Handle return value of read() call.
2013-12-29 20:11:05 +02:00
Damien
de690d128b
Add unix-cpy, used to test Micro Python byte code against CPython.
2013-12-29 18:01:01 +00:00
Damien
b86e3f9293
py: implement some basic exception matching.
2013-12-29 17:17:43 +00:00
Damien
8f9e2ee157
Add code in VM to handle nested exceptions correctly.
2013-12-29 16:54:59 +00:00
Damien
dd12d1378f
Parse upper-case hex numbers correctly.
2013-12-29 13:03:49 +00:00
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