Commit Graph

166 Commits

Author SHA1 Message Date
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
ba66a8fc57 Small changes to README. 2013-12-20 13:04:40 +00:00
Damien
b4c688e2f0 Add basic instructions to README. 2013-12-20 13:02:05 +00:00
Damien
f0d0940638 Add tools/dfu.py, and use it in stm/Makefile. 2013-12-20 12:07:50 +00:00
Damien
5e6ebd77d2 Add LICENSE and README. 2013-12-20 11:47:41 +00:00
Damien
b73085d288 stm: add pyb.sd_test; flash cache flushed only via MSD. 2013-12-20 11:45:06 +00:00
Damien
a3dcd9e80c py: add more Python built-in functions. 2013-12-17 21:35:38 +00:00
Damien
8c3da5c2c5 stm: flush storage cache immediately; improve user interface. 2013-12-17 18:36:19 +00:00
Damien
0f08267fa4 unix: include obj.h, and build additional py files. 2013-12-17 18:33:53 +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
5285155ef7 stm: add basic Servo class, and stop and standby functions. 2013-12-11 00:40:15 +00:00
Damien
ec643130d0 stm: add timer to storage cache so it can be flushed. 2013-12-11 00:38:40 +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
261dbf8ce5 stm: add __WFI to sys_tick delay. 2013-12-06 00:42:13 +00:00
Damien
d6b4c66565 stm: add Led object; add option to reset filesystem. 2013-12-06 00:41:33 +00:00
Damien
065f8a5e0e stm: initial commit of working CC3000 driver, based on Adafruit. 2013-12-05 20:38:23 +00:00
Damien
8fe8413b56 stm: servos on PA0-3; MMA filtering; timer for Python REPL. 2013-11-30 15:06:24 +00:00
Damien
11809ee5d4 stm: disable audio function in systick. 2013-11-30 15:02:49 +00:00
Damien
81cc0e8f00 stm: add function to LCD module to show text. 2013-11-30 15:02:29 +00:00
Damien
d3e59feb6b stm: reorder things in Makefile. 2013-11-30 15:02:11 +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
1895cf91af Link showbc.o in unix version. 2013-11-17 13:20:13 +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
39c6c59868 STM: add LCD functions for pixel access; add RNG Py bindings. 2013-11-09 20:15:48 +00:00
Damien
5c13dbf6ee STM: add RNG support. 2013-11-09 20:15:17 +00:00
Damien
087d218d95 Unix: add machine-specific sqrt support. 2013-11-09 20:14:30 +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
6d42ab6625 Small improvements to timer module. 2013-11-09 11:29:49 +00:00
Damien
bd8e110207 Add to STM code timer functionality to call Python on interrupt. 2013-11-06 23:04:33 +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