- Sep 19, 2016
-
-
Damien George authored
The vstr.had_error flag was a relic from the very early days which assumed that the malloc functions (eg m_new, m_renew) returned NULL if they failed to allocate. But that's no longer the case: these functions will raise an exception if they fail. Since it was impossible for had_error to be set, this patch introduces no change in behaviour. An alternative option would be to change the malloc calls to the _maybe variants, which return NULL instead of raising, but then a lot of code will need to explicitly check if the vstr had an error and raise if it did. The code-size savings for this patch are, in bytes: bare-arm:188, minimal:456, unix(NDEBUG,x86-64):368, stmhal:228, esp8266:360.
-
- May 20, 2016
-
-
Damien George authored
Otherwise some compilers (eg without optimisation) will put this read-only data in RAM instead of ROM.
-
- Apr 13, 2016
-
-
pohmelie authored
They are sugar for marking function as generator, "yield from" and pep492 python "semantically equivalents" respectively. @dpgeorge was the original author of this patch, but @pohmelie made changes to implement `async for` and `async with`.
-
- Feb 25, 2016
-
-
Damien George authored
This new compile-time option allows to make the bytecode compiler configurable at runtime by setting the fields in the mp_dynamic_compiler structure. By using this feature, the compiler can generate bytecode that targets any MicroPython runtime/VM, regardless of the host and target compile-time settings. Options so far that fall under this dynamic setting are: - maximum number of bits that a small int can hold; - whether caching of lookups is used in the bytecode; - whether to use unicode strings or not (lexer behaviour differs, and therefore generated string constants differ).
-
- Dec 18, 2015
-
-
Damien George authored
MICROPY_ENABLE_COMPILER can be used to enable/disable the entire compiler, which is useful when only loading of pre-compiled bytecode is supported. It is enabled by default. MICROPY_PY_BUILTINS_EVAL_EXEC controls support of eval and exec builtin functions. By default they are only included if MICROPY_ENABLE_COMPILER is enabled. Disabling both options saves about 40k of code size on 32-bit x86.
-
- Sep 07, 2015
-
-
Damien George authored
Eg 0e0 almost looks like a hex number but in fact is a float.
-
Damien George authored
-
Damien George authored
-
- Jul 23, 2015
-
-
Damien George authored
Addresses issue #1390.
-
- Jun 22, 2015
-
-
Damien George authored
This allows stmhal to be compiled with MICROPY_DEBUG_PRINTERS.
-
- Jun 09, 2015
-
-
Damien George authored
Enabled simply by making the identifier lexing code 8-bit clean.
-
- May 20, 2015
-
-
Dave Hylands authored
This also pulls out hex_digit from py/lexer.c and makes unichar_hex_digit
-
- Mar 19, 2015
-
-
Damien George authored
-
- Feb 08, 2015
-
-
Damien George authored
Previous to this patch, a big-int, float or imag constant was interned (made into a qstr) and then parsed at runtime to create an object each time it was needed. This is wasteful in RAM and not efficient. Now, these constants are parsed straight away in the parser and turned into objects. This allows constants with large numbers of digits (so addresses issue #1103) and takes us a step closer to #722.
-
- Jan 30, 2015
-
-
Damien George authored
Only noticeable difference is how newlines are encoded in triple-quoted strings. The behaviour now matches CPython3.
-
- Jan 28, 2015
-
-
Damien George authored
-
- Jan 16, 2015
-
-
Damien George authored
See issue #699.
-
- Jan 07, 2015
-
-
Damien George authored
This patch consolidates all global variables in py/ core into one place, in a global structure. Root pointers are all located together to make GC tracing easier and more efficient.
-
- Jan 01, 2015
-
-
Damien George authored
Addresses issue #1022.
-
- Dec 05, 2014
-
-
Damien George authored
-
Damien George authored
mp_lexer_t type is exposed, mp_token_t type is removed, and simple lexer functions (like checking current token kind) are now inlined. This saves 784 bytes ROM on 32-bit unix, 348 bytes on stmhal, and 460 bytes on bare-arm. It also saves a tiny bit of RAM since mp_lexer_t is a bit smaller. Also will run a bit more efficiently.
-
- Oct 09, 2014
-
-
Damien George authored
-
- Jul 30, 2014
-
-
Damien George authored
Lexer is now 8-bit clean inside strings.
-
- Jul 03, 2014
-
-
Damien George authored
-
- Jun 26, 2014
-
-
Chris Angelico authored
-
- Jun 21, 2014
-
-
Paul Sokolovsky authored
It defines types used by all other headers. Fixes #691.
-
- Jun 19, 2014
-
-
Emmanuel Blot authored
-
- Jun 14, 2014
-
-
Paul Sokolovsky authored
We still have that char vs byte dichotomy, but majority of string operations now use byte.
-
- Jun 03, 2014
-
-
Paul Sokolovsky authored
This allows to have multiple "optimization" levels (CPython has two (-OO removes docstrings), we can have more).
-
- Jun 02, 2014
-
-
Paul Sokolovsky authored
-
- May 21, 2014
-
-
Damien George authored
MP_ALLOC_* -> MICROPY_ALLOC_* MICROPY_PATH_MAX -> MICROPY_ALLOC_PATH_MAX MICROPY_ENABLE_REPL_HELPERS -> MICROPY_HELPER_REPL MICROPY_ENABLE_LEXER_UNIX -> MICROPY_HELPER_LEXER_UNIX MICROPY_EXTRA_* -> MICROPY_PORT_* See issue #35.
-
- May 12, 2014
-
-
Damien George authored
__debug__ now resolves to True or False. Its value needs to be set by mp_set_debug(). TODO: call mp_set_debug in unix/ port. TODO: optimise away "if False:" statements in compiler.
-
- May 10, 2014
-
-
Damien George authored
-
- May 03, 2014
-
-
Damien George authored
Blanket wide to all .c and .h files. Some files originating from ST are difficult to deal with (license wise) so it was left out of those. Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
-
- Apr 10, 2014
-
-
Damien George authored
-
Damien George authored
-
- Mar 17, 2014
-
-
xbe authored
Remove unnecessary includes. Add includes that improve portability.
-
- Mar 15, 2014
-
-
Damien George authored
-
- Feb 15, 2014
-
-
Damien George authored
Each built-in exception is now a type, with base type BaseException. C exceptions are created by passing a pointer to the exception type to make an instance of. When raising an exception from the VM, an instance is created automatically if an exception type is raised (as opposed to an exception instance). Exception matching (RT_BINARY_OP_EXCEPTION_MATCH) is now proper. Handling of parse error changed to match new exceptions. mp_const_type renamed to mp_type_type for consistency.
-
- Feb 12, 2014
-
-
Paul Sokolovsky authored
-