Commit Graph

1620 Commits

Author SHA1 Message Date
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
Damien George 97543c5285 Merge pull request #447 from dhylands/str-format-mpz
Add string formatting support for longlong and mpz.
2014-04-07 21:50:22 +01:00
Dave Hylands 23dc6d0ace Fix truncation problem when using longlong implementation. 2014-04-07 13:47:04 -07:00
Paul Sokolovsky 98dd6d7712 README: Be specific that ARMv7 Linux is supported. 2014-04-07 23:46:08 +03:00
Dave Hylands c4029e5079 Add string formatting support for longlong and mpz. 2014-04-07 11:38:45 -07:00
Damien George 6827f9fc55 Add uPy welcome message to UNIX and Windows ports; update Teensy port.
Partly addresses issue #154.
2014-04-07 13:27:50 +01:00
Damien George 6c6f9d6782 windows: Make it compile with latest changes to py core. 2014-04-07 13:20:06 +01:00
Damien George 10072b72a5 Merge pull request #439 from lurch/makefile-tweaks
Makefile tweaks
2014-04-07 13:17:31 +01:00
Damien George 1422865c99 Merge pull request #445 from lurch/test-sorted-sets
Modify set tests to print sorted sets directly
2014-04-07 13:15:33 +01:00
Damien George a28507ab2b py: Detect unmatched tripple quote in repl helper. 2014-04-07 13:01:30 +01:00
Damien George 34ba06b076 Merge pull request #444 from lurch/test-sorted
Add tests for sorted() function
2014-04-07 12:52:28 +01:00
Andrew Scheller 1ff6011abc Modify set tests to print sorted sets directly
instead of creating temporary lists and sorting those in-place
2014-04-07 05:00:03 +01:00
Andrew Scheller a1a9ab2b2c Add tests for sorted() function
and check that sorted(list) produces same output as list.sort()
2014-04-07 04:41:54 +01:00
Andrew Scheller 5e443f4b70 Merge remote-tracking branch 'upstream/master' into makefile-tweaks 2014-04-07 01:41:24 +01:00
Andrew Scheller 902d9552c5 Replace some Makefile commands with variables in py/mkenv.mk 2014-04-07 01:35:45 +01:00
Damien George 2bfd2dc770 py: Revert revert for allocation policy of set hash table. 2014-04-07 01:16:17 +01:00
Paul Sokolovsky 46bd12d57e objset: Fix incorrect workaround against mp_set_init() munging alloc size.
No longer needed after recent change which guarantees that mp_set_init()
will allocate exact number of slots requested.
2014-04-07 03:08:46 +03:00
Paul Sokolovsky 4d2238d2ce tests: Fix more tests which depend on order of elements in set. 2014-04-07 03:08:46 +03:00
Damien George 3bb8663282 Merge branch 'master' of github.com:micropython/micropython 2014-04-07 00:54:53 +01:00
Paul Sokolovsky bd6f3d31d2 tests: Fix few tests which depend on order of elements in set. 2014-04-07 02:54:16 +03:00
Damien George c75427baaa py: Revert change to allocation policy for mp_set_t.
Seems that this fixes all set tests.
2014-04-07 00:54:04 +01:00
Paul Sokolovsky 9f043da5c3 pip-micropython: Require command verb, but restrict to "install" only.
So, pip-micropython can/should be run as normal pip:

    pip-micropython install micropython-unittest
2014-04-07 02:53:41 +03:00
Damien George 07e24a6294 tests: Fix tests with sets to print sorted set. 2014-04-07 00:42:09 +01:00
Damien George ff715429ea py: Fix str.replace for case when arg 0 or 1 is empty string. 2014-04-07 00:39:13 +01:00
Damien George 36e75aef38 unix-cpy: Pass emit opt to mp_compile. 2014-04-06 19:48:43 +01:00
Paul Sokolovsky b4dea46d8b tests: Fix few tests which depend on order of elements in dict.
With dict being unordered of course.
2014-04-06 21:31:42 +03:00
Paul Sokolovsky e2adff3608 tests/dict2.py: Add combined test for dict(dict) and dict equality. 2014-04-06 21:31:42 +03:00
Paul Sokolovsky 7cf057aeeb objdict: Implement equality operator.
Sure, it's O(n^2).
2014-04-06 21:31:42 +03:00
Paul Sokolovsky 5fedd0c3b7 py: Fix dict.copy() and low-level map/set allocation.
Two things: 1) set flags in copy properly; make mp_map_init() not be too
smart and do something with requested alloc size. Policy of using prime
numbers for alloc size is high-level policy which should be applied at
corresponding high levels. Low-level functions should just do what they're
asked to, because they don't have enough context to be smarter than that.
For example, munging with alloc size of course breaks dict copying (as
changing sizes requires rehashing).
2014-04-06 21:31:42 +03:00
Paul Sokolovsky ea85a121f2 objdict: Support creating dict from another dict. 2014-04-06 20:08:56 +03:00
Damien George cdd96dff2c py: Implement more features in native emitter.
On x64, native emitter now passes 70 of the tests.
2014-04-06 12:58:40 +01:00
Damien George 65cad12d38 py: Add option to compiler to specify default code emitter.
Also add command line option to unix port to select emitter.
2014-04-06 11:48:15 +01:00