Commit Graph

1501 Commits

Author SHA1 Message Date
Damien George
a157e4caba py: str.join can now take arbitrary iterable as argument. 2014-04-09 19:17:53 +01:00
Damien George
13d6739cc7 py: Generators can have their locals closed over. 2014-04-09 19:01:45 +01:00
Damien George
2bf7c09222 py: Properly implement deletion of locals and derefs, and detect errors.
Needed to reinstate 2 delete opcodes, to specifically check that a local
is not deleted twice.
2014-04-09 15:26:46 +01:00
Damien George
11d8cd54c9 py, compiler: Turn id_info_t.param into a set of flags.
So we can add more flags.
2014-04-09 14:42:51 +01:00
Damien George
b140bff877 py, compile: Simplify initialisation of compiler structure. 2014-04-09 12:54:21 +01:00
Damien George
02a4c05c5f py, compile: Reduce size of compiler structure. 2014-04-09 12:50:58 +01:00
Damien George
922ddd6415 py, compile: Combine have_star_arg, have_dbl_star_arg into star_flags.
Small reduction in ROM, heap and stack usage.
2014-04-09 12:43:17 +01:00
Damien George
78035b995f py, compiler: Clean up and compress scope/compile structures.
Convert int types to uint where sensible, and then to uint8_t or
uint16_t where possible to reduce RAM usage.
2014-04-09 12:27:39 +01:00
Damien George
fc18c8e834 Merge branch 'master' of github.com:micropython/micropython 2014-04-09 02:32:00 +01:00
Damien George
a5c18f3285 stmhal: Update windows driver; \r\n newlines and addition USB id. 2014-04-09 02:23:24 +01:00
Paul Sokolovsky
03b9ad7b01 gc.c: Remove superfluous typedef (bute defined in misc.h). 2014-04-09 04:13:21 +03:00
Damien George
b99ca2cdde stmhal: Add windows cdc .inf driver to flash filesystem. 2014-04-09 01:16:49 +01:00
Damien George
8e6f98b166 stmhal: Improve help() function. 2014-04-09 01:16:29 +01:00
Damien George
229347139b stmhal: Add functionality to Servo object.
Can now calibrate, set pulse width, angle and speed.
2014-04-09 00:45:45 +01:00
Damien George
d9ec625d9a Merge pull request #454 from dhylands/make-pins-multiple-named-pins
Fix make-pins.py to support having multiple names for a pin.
2014-04-09 00:34:41 +01:00
Dave Hylands
3bbceeaaf7 Fix make-pins.py to support having multiple names for a pin.
SW and X17 now both map to PB3
2014-04-08 15:45:47 -07:00
Paul Sokolovsky
2ee7304cb8 README: Python is required during build process unconditionally.
Fixes #449.
2014-04-09 01:39:50 +03:00
Damien George
88d7bba961 py: Make it so that printing a small int does not allocate heap memory.
With the implementation of proper string formatting, code to print a
small int was delegated to mpz_as_str_inpl (after first converting the
small int to an mpz using stack memory).  But mpz_as_str_inpl allocates
heap memory to do the conversion, so small ints needed heap memory just
to be printed.

This fix has a separate function to print small ints, which does not
allocate heap, and allocates less stack.

String formatting, printf and pfenv are now large beasts, with some
semi-duplicated code.
2014-04-08 23:30:46 +01:00
Damien George
803b9263ab Merge branch 'master' of github.com:micropython/micropython 2014-04-08 23:11:51 +01:00
Damien George
eec91057b8 py: Add comment mpz function, and free memory used for string printing. 2014-04-08 23:11:00 +01:00
Paul Sokolovsky
a985b4593d objint: Implement int.from_bytes() class method and .to_bytes() method.
These two are apprerently the most concise and efficient way to convert
int to/from bytes in Python. The alternatives are struct and array modules,
but methods using them are more verbose in Python code and less efficient
in memory/cycles.
2014-04-09 01:07:37 +03:00
Paul Sokolovsky
3aa8ee7c9e py: Add mp_get_buffer(), mp_get_buffer_raise() convenience functions to API. 2014-04-09 01:07:37 +03:00
Damien George
2b0091983f tests: Oops: fix del-attr. 2014-04-08 23:02:24 +01:00
Damien George
b04488151e stmhal: Make USRSW re-register the EXTI callback each time it's set. 2014-04-08 22:35:42 +01:00
Damien George
348435d279 py: Reinstate old pfenv_print_int function for stmhal's printf. 2014-04-08 22:10:37 +01:00
Damien George
a9837bbf8b py: Remove obsolete mp_delete_subscr declaration. 2014-04-08 22:06:31 +01:00
Damien George
f4c9b33abf py: Remove DELETE_SUBSCR opcode, combine with STORE_SUBSCR.
This makes the runtime and object APIs more consistent.  mp_store_subscr
functionality now moved into objects (ie list and dict store_item).
2014-04-08 21:32:29 +01:00
Damien George
4671392d90 Merge branch 'master' of github.com:micropython/micropython 2014-04-08 21:13:04 +01:00
Damien George
1d24ea5207 py: Finish implementation of all del opcodes.
At this point, all opcodes are now implemented!

Some del opcodes have been combined with store opcodes, with the value
to store being MP_OBJ_NULL.
2014-04-08 21:11:49 +01:00
Paul Sokolovsky
4dcb605ac4 py: Make bytearray a proper type. 2014-04-08 22:11:40 +03:00
Damien George
134c10e776 Merge branch 'master' of github.com:micropython/micropython 2014-04-08 18:29:50 +01:00
Damien George
47e1b85d9c py: Improve inline assembler; add a few more opcodes. 2014-04-08 18:28:33 +01:00
Damien George
495d781a36 py: implement UNPACK_EX byte code (for: a, *b, c = d) 2014-04-08 17:51:47 +01:00
Paul Sokolovsky
f898a95cba unix modffi: Support any object implementing buffer protocol as a native arg. 2014-04-08 19:08:34 +03:00
Paul Sokolovsky
7a70a3ae9a bytes: Support buffer protocol. 2014-04-08 19:08:34 +03:00
Paul Sokolovsky
b9cf3d3730 bytearray: Support bytearray(int) constructor.
To create bytearray of given length.
2014-04-08 19:08:34 +03:00
Damien George
e753d916c0 py: Raise exception for unimplemented byte codes. 2014-04-08 16:49:28 +01:00
Damien George
b7ffdcc1c7 py: Improve compiler syntax errors; catch more errors. 2014-04-08 16:41:02 +01:00
Damien George
2137bc7124 stmhal: in EXTI interrupt handler wrap uPy calls in gc_lock and nlr_buf. 2014-04-08 15:21:26 +01:00
Damien George
72cfc6ef0a unix: Oops, remove nlr_jump test in main. 2014-04-08 15:10:21 +01:00
Damien George
26cf55ae05 Add a check for NULL nlr_top in nlr_jump.
If no nlr_buf has been pushed, and an nlr_jump is called, then control
is transferred to nlr_jump_fail (which should bail out with a fatal
error).
2014-04-08 14:08:14 +00:00
Damien George
094ebef259 windows: Use most of the source files from unix/ port.
To keep it maintainable, windows port now uses as much as possible from
unix port.  Maybe could even use mpconfigport.h.
2014-04-08 13:25:47 +00:00
Damien George
73c79b9925 py: Continue line if last character is backslash. 2014-04-08 11:33:28 +00:00
Damien George
443e018a3f py: Improve GC locking/unlocking, and make it part of the API. 2014-04-08 11:31:21 +00:00
Damien George
ff5639fd42 Merge pull request #451 from lurch/repr-fixes
Display \r and \t escape codes in string repr
2014-04-08 12:11:40 +01:00
Damien George
97790455fe Improve REPL detecting when input needs to continue.
Full CPython compatibility with this requires actually parsing the
input so far collected, and if it fails parsing due to lack of tokens,
then continue collecting input.  It's not worth doing it this way.  Not
having compatibility at this level does not hurt the goals of Micro
Python.
2014-04-08 11:04:29 +00:00
Andrew Scheller
12968fb6b2 Display \r and \t escape codes in string repr 2014-04-08 02:42:50 +01:00
Paul Sokolovsky
72d70cb045 unix, stmhal: Consistently use "FileIO" as class name for file objects.
They correspond to io.FileIO in io module hierarchy (with small caveat
that io.FileIO is raw file and works with bytes, not strings).
2014-04-08 04:08:16 +03:00
Paul Sokolovsky
b8cf948550 unix, windows: There's no "help" builtin. 2014-04-08 04:07:02 +03:00
Damien George
a12a0f78b0 py: Rename pfenv_print_int to pfenv_print_mp_int, and add back former.
stmhal relies on pfenv_* to implement its printf.  Thus, it needs a
pfenv_print_int which prints a proper 32-bit integer.  With latest
change to pfenv, this function became one that took mp_obj_t, and
extracted the integer value from that object.

To fix temporarily, pfenv_print_int has been renamed to
pfenv_print_mp_int (to indicate it takes a mp_obj_t for the int), and
pfenv_print_int has been added (which takes a normal C int).  Currently,
pfenv_print_int proxies to pfenv_print_mp_int, but this means it looses
the MSB.  Need to find a way to fix this, but the only way I can think
of will duplicate lots of code.
2014-04-08 01:29:53 +01:00