stijn
3baf6b5319
windows/py: Support 64bit mingw-w64 builds
...
- add mp_int_t/mp_uint_t typedefs in mpconfigport.h
- fix integer suffixes/formatting in mpconfig.h and mpz.h
- use MICROPY_NLR_SETJMP=1 in Makefile since the current nlrx64.S
implementation causes segfaults in gc_free()
- update README
2015-11-24 17:34:14 +02:00
stijn
bf1570cb25
nlr: Use single preprocessor symbol to check if building on Windows
2015-11-24 17:34:14 +02:00
Damien George
9a56912ad1
py/compile: Do proper checking of * and ** in function definition.
...
This patch checks that there is only one *, and that ** is last in the
arg list.
2015-11-23 16:50:42 +00:00
Damien George
0e3f29cc99
py: Check that second argument to hasattr is actually a string.
...
Fixes issue #1623 .
2015-11-23 15:57:00 +00:00
Damien George
44e6e348d6
py/emitglue: Implement persistent saving and loading of const objects.
2015-11-23 11:54:12 +00:00
Damien George
39a8deb95f
py/emitglue: Add feature-flag header to .mpy to detect bytecode compat.
...
Loading .mpy files will now check to make sure that the target VM can
support the bytecode.
2015-11-23 10:58:16 +00:00
Paul Sokolovsky
b3be4710aa
py/mpz: Normalize (remove leading zeros) xor operation result.
2015-11-22 22:03:18 +02:00
Paul Sokolovsky
3d6240ba1b
py/formatfloat: Handle calculation of integer digit for %f format properly.
...
%f prints true integer digit, so its calculation should happen before any
exponential scaling.
2015-11-22 20:05:08 +02:00
Paul Sokolovsky
3c4c069802
py/formatfloat: Workaround (fix?) incorrect rounding for %f format.
2015-11-22 18:09:28 +02:00
Paul Sokolovsky
9aaccd4735
py/formatfloat: Convert to fully portable implementation.
...
This takes previous IEEE-754 single precision float implementation, and
converts it to fully portable parametrizable implementation using C99
functions like signbit(), isnan(), isinf(). As long as those functions
are available (they can be defined in adhoc manner of course), and
compiler can perform standard arithmetic and comparison operations on a
float type, this implementation will work with any underlying float type
(including types whose mantissa is larger than available intergral integer
type).
2015-11-22 17:54:05 +02:00
Paul Sokolovsky
295ea12411
py/emitglue: Host definition of mp_verbose_flag.
...
This may not seem like the ideal place, but is actually the only place
in py/ where it gets referenced, so is just right.
2015-11-21 16:54:15 +02:00
Paul Sokolovsky
72bd172b30
py/modsys: Consistently use indented #if's.
2015-11-21 16:03:37 +02:00
Damien George
83229d3ffe
py: Use MP_OBJ_NULL instead of NULL when appropriate.
2015-11-20 14:09:20 +00:00
Damien George
b5b1f2c527
py/emitglue: Add mp_raw_code_load_mem to load raw-code from memory.
2015-11-20 12:44:20 +00:00
Damien George
f148727b78
py/emitglue: Only compile raw-code fatfs loader when on thumb2 platform.
...
Here we are assuming that a thumb2 port will have fatfs, which is only
roughly true. We need a better way of enabling specific raw-code file
readers.
2015-11-20 12:42:26 +00:00
Damien George
d4dba88236
py/compile: Add mp_compile_to_raw_code() to return raw code object.
...
This can then be passed to mp_raw_code_save_file to save a .mpy file.
2015-11-20 12:30:37 +00:00
Igor Gatis
f5c554dfe3
py: Added Cygwin support to py/nlrx86.S.
2015-11-19 20:23:43 +02:00
Damien George
593faf14c4
py/map: Store key/value in earliest possible slot in hash table.
...
This change makes the code behave how it was supposed to work when first
written. The avail_slot variable is set to the first free slot when
looking for a key (which would come from deleting an entry). So it's
more efficient (for subsequent lookups) to insert a new key into such a
slot, rather than the very last slot that was searched.
2015-11-19 01:27:28 +00:00
Damien George
994ff738c8
py/mpstate: Make mp_pending_exception volatile.
...
It can change asynchronously.
2015-11-17 14:27:21 +00:00
Damien George
a24eafacc9
py/modmath: Make log2, log10 and hyperbolic funcs be SPECIAL_FUNCTIONS.
...
Will be included only when MICROPY_PY_MATH_SPECIAL_FUNCTIONS is enabled.
Also covers cmath module (but only log10 is there at the moment).
2015-11-17 14:10:13 +00:00
Damien George
2c83894257
py: Implement default and star args for lambdas.
2015-11-17 14:00:14 +00:00
Damien George
cbd9ae5256
py/compile: Don't unnecessarily save state when compiling param list.
...
Parameter lists can't be nested so there is no need to save the global
state when compiling them.
2015-11-17 12:37:02 +00:00
Paul Sokolovsky
863d4cd862
py/modmath: Don't create symbol entry for expm1() if not needed.
2015-11-14 00:55:54 +02:00
Paul Sokolovsky
0d6116d86b
py/modmath: Make expm1() be in MICROPY_PY_MATH_SPECIAL_FUNCTIONS.
2015-11-14 00:46:52 +02:00
Paul Sokolovsky
6d1eabfeaa
unix/mpconfigport: Move log2() definition to modmath.c.
...
It's safer to define it where it's used, defining it for all source files
may lead to hard to diagnose conflicts in corner cases.
2015-11-13 15:24:48 +02:00