Commit Graph

1091 Commits

Author SHA1 Message Date
Damien George dde739d364 py, gc: Further simplify coding-style of gc_realloc.
No logic changes, just coding style to make it easy to read.
2014-04-20 18:16:25 +01:00
Damien George 5f6a25fc50 py: Wrap #if's around emitter functions that are used only by emitcpy.
3 emitter functions are needed only for emitcpy, and so we can #if them
out when compiling with emitcpy support.

Also remove unused SETUP_LOOP bytecode.
2014-04-20 18:02:27 +01:00
Damien George 3558f62fb5 py: Making closures now passes pointer to stack, not a tuple for vars.
Closed over variables are now passed on the stack, instead of creating a
tuple and passing that.  This way memory for the closed over variables
can be allocated within the closure object itself.  See issue #510 for
background.
2014-04-20 17:50:40 +01:00
Paul Sokolovsky bc5f0c1977 objclosure: Store reference to entire closed variables tuple.
Avoids pointer-to-field garbage collection issue. Fixes #510.
2014-04-20 13:08:33 +03:00
Paul Sokolovsky 2758b7d3e2 objcell: Add disabled by default print method for debugging. 2014-04-20 13:08:33 +03:00
Paul Sokolovsky c86889dafb gc: "new" gc_realloc: Rewrite in plain C, fixing bunch of bugs.
There were typos, various rounding errors trying to do concurrent counting
in bytes vs blocks, complex conditional paths, superfluous variables, etc.,
etc., all leading to obscure segfaults.
2014-04-20 13:08:33 +03:00
Paul Sokolovsky ed162b5ef2 gc: Recover simple gc_realloc implementation, make easier to switch between. 2014-04-20 13:08:33 +03:00
Paul Sokolovsky 0f836ef893 modstruct: Add 'O' typecode for passing mp_obj_t.
Useful as callback data, etc.
2014-04-20 13:08:33 +03:00
Paul Sokolovsky 4e4fa94c4c modstruct: Use proper int accessor which checks input value type. 2014-04-20 13:08:33 +03:00
Damien George 53775026e7 Merge branch 'master' of github.com:micropython/micropython 2014-04-20 01:26:25 +01:00
Damien George f87b35e779 py: Fix mp_arg_parse_all. 2014-04-20 01:25:15 +01:00
Damien George a3f94e0030 py: Add arg checking helper functions.
These are to assist in writing native C functions that take positional
and keyword arguments.  mp_arg_check_num is for just checking the
number of arguments is correct.  mp_arg_parse_all is for parsing
positional and keyword arguments with default values.
2014-04-20 00:13:22 +01:00
Paul Sokolovsky d6e12723ed objarray: Implement slice subscription. 2014-04-19 20:06:57 +03:00
Paul Sokolovsky 6204460461 modstruct: Initial implementation of struct.pack(). 2014-04-19 03:22:08 +03:00
Paul Sokolovsky 504e23388c objstr: Init hash in mp_obj_str_builder_start() to 0. 2014-04-19 03:21:06 +03:00
Paul Sokolovsky 4602b9a79f obj.h: Typo fix in comment. 2014-04-19 03:21:06 +03:00
Paul Sokolovsky 1355cf42f2 modstruct: Fix .calcsize() to account for struct type/alignment. 2014-04-19 03:21:06 +03:00
Paul Sokolovsky 5695e07256 modstruct: Support 'q' & 'Q' type codes. 2014-04-19 03:18:14 +03:00
Damien George 561f83c9cf Merge branch 'master' of github.com:micropython/micropython 2014-04-18 23:35:24 +01:00
Damien George 71e9bfa20d py: Add mp_binary_set_val_array_from_int, to store an int directly. 2014-04-18 23:28:12 +01:00
Damien George b11b85adaa py: Allow to pass buffer protocol flags to get_buffer helper funcs. 2014-04-18 22:59:24 +01:00
Damien George 57a4b4f178 py: Add typecode to buffer protocol.
When querying an object that supports the buffer protocol, that object
must now return a typecode (as per binary.[ch]).  This does not have to
be honoured by the caller, but can be useful for determining element
size.
2014-04-18 22:29:21 +01:00
Damien George 3fd2d7fad2 py: Tidy up function argument error messages.
We are not as verbose as CPython, and maybe a bit too cryptic sometimes.
2014-04-18 22:06:55 +01:00
Damien George 32ca164992 py: Tidy up array.array; add more error handling. 2014-04-18 22:04:06 +01:00
Paul Sokolovsky 0fc4775cd6 sequence: Further simplify sequence comparison. 2014-04-18 21:47:58 +03:00