Damien George
87e380b7ea
Merge pull request #461 from lurch/patch-1
...
Update mkrules.mk
2014-04-11 09:55:50 +01:00
Damien George
686afc5c0a
py: Check that sequence has 2 elements for dict iterable constructor.
2014-04-11 09:13:30 +01:00
Paul Sokolovsky
be019ce063
objdict: Implement construction from iterable of pairs.
...
Pairs are limited to tuples so far.
2014-04-11 07:01:15 +03:00
Paul Sokolovsky
12a04392b9
objdict: Implement __getitem__ method.
2014-04-11 05:24:44 +03:00
Paul Sokolovsky
0c43cf9154
modstruct: Basic implementation of native struct alignment and types.
2014-04-11 03:59:16 +03:00
Paul Sokolovsky
ef9124f5ff
binary: Rename array accessors for clarity.
2014-04-11 03:58:49 +03:00
Paul Sokolovsky
2da81fa80c
mpconfig.h: Add basic support for target endianness configuration.
...
A specific target can define either MP_ENDIANNESS_LITTLE or MP_ENDIANNESS_BIG
to 1. Default is MP_ENDIANNESS_LITTLE.
TODO: Autodetect based on compiler predefined macros?
2014-04-11 03:58:49 +03:00
Paul Sokolovsky
6582d64d01
modstruct: Refactor to support both LE and BE packed structs.
2014-04-11 03:58:49 +03:00
Andrew Scheller
83346749da
Update mkrules.mk
...
make 'make clean' cleaner ;-)
2014-04-11 00:41:59 +01:00
Damien George
57e99ebc86
py: Add simple way of looking up constants in compiler.
...
Working towards trying to support compile-time constants (see discussion
in issue #227 ), this patch allows the compiler to look inside arbitrary
uPy objects at compile time. The objects to search are given by the
macro MICROPY_EXTRA_CONSTANTS (so they must be constant/ROM objects),
and the constant folding occures on forms base.attr (both base and attr
must be id's).
It works, but it breaks strict CPython compatibility, since the lookup
will succeed even without importing the namespace.
2014-04-10 22:42:11 +01:00
Damien George
ae491055fa
py: Fix float/complex binop returning NULL; implement complex power.
2014-04-10 20:08:11 +01:00
Damien George
d66ae18640
py: Simplify stack get/set to become stack adjust in emitters.
...
Can do this now that the stack size calculation is improved.
2014-04-10 17:28:54 +00:00
Damien George
069a35e3a5
py, compiler: Improve stack depth counting.
...
Much less of a hack now. Hopefully it's correct!
2014-04-10 17:22:19 +00:00
Damien George
190d1ba297
py: Make sure state/stack of byte code function has at least 1 slot.
2014-04-10 16:59:56 +00:00
Damien George
a1ef441d18
py: Fix VM stack overflow detection.
2014-04-10 16:59:44 +00:00
Damien George
e90be0ddf5
py: Add option to VM to detect stack overflow.
2014-04-10 16:21:34 +00:00
Damien George
c90717a3e4
py: Add missing dummy functions to pass 1 emitter.
2014-04-10 15:40:38 +00:00
Damien George
58ba4c3b4c
py: Check explicitly for memory allocation failure in parser.
...
Previously, a failed malloc/realloc would throw an exception, which was
not caught. I think it's better to keep the parser free from NLR
(exception throwing), hence this patch.
2014-04-10 14:27:31 +00:00
Damien George
ffa9bddfc4
Make lexerunix not allocate RAM for the entire script.
...
Now reads in small chunks at a time.
2014-04-10 15:00:58 +01:00
Damien George
f0954e3fac
py: Add emergency exception object for when heap allocation fails.
2014-04-10 14:38:25 +01:00
Damien George
6f355fd3b9
py: Make labels unsigned ints (converted from int).
...
Labels should never be negative, and this modified type signature
reflects that.
2014-04-10 14:11:31 +01:00
Damien George
bf8ae4d96e
py: Fix modstruct to compile on 64-bit machine.
2014-04-10 13:53:31 +01:00
Damien George
3a8b1607fc
Merge branch 'master' of github.com:micropython/micropython
2014-04-10 12:58:31 +01:00
Damien George
635543c72c
py, compiler: Implement compiling of relative imports.
2014-04-10 12:56:52 +01:00
Damien George
2e9eb2d207
py: Fix lexer so it doesn't allow ! and ..
2014-04-10 12:19:33 +01:00