- Jan 15, 2015
-
-
Paul Sokolovsky authored
pyexec_friendly_repl_process_char() and friends, useful for ports which integrate into existing cooperative multitasking system. Unlike readline() refactor before, this was implemented in less formal, trial&error process, minor functionality regressions are still known (like soft&hard reset support). So, original loop-based pyexec_friendly_repl() is left intact, specific implementation selectable by config setting.
-
- Jan 14, 2015
-
-
Paul Sokolovsky authored
We cannot assume that all memory belongs to us - it actually belongs to ESP8266 OS.
-
Damien George authored
This helps compiler produce smaller code. Saves 124 bytes on stmhal and bare-arm.
-
Damien George authored
-
Damien George authored
-
Damien George authored
Previously was allocating at end of PASS_COMPUTE, and this pass was being run twice, so memory was being allocated twice.
-
Damien George authored
-
Damien George authored
Bytecode also needs a pass to compute the stack size. This is because the state size of the bytecode function is encoded as a variable uint, so we must know the value of this uint before we encode it (otherwise the size of the generated code changes from one pass to the next). Having an entire pass for this seems wasteful (in time). Alternative is to allocate fixed space for the state size (would need 3-4 bytes to be general, when 1 byte is usually sufficient) which uses a bit of extra RAM per bytecode function, and makes the code less elegant in places where this uint is encoded/decoded. So, for now, opt for an extra pass.
-
Damien George authored
Native code has GC-heap pointers in it so it must be scanned. But on unix port memory for native functions is mmap'd, and so it must have explicit code to scan it for root pointers.
-
- Jan 13, 2015
-
-
Damien George authored
-
Damien George authored
-
Damien George authored
Previously to this patch all constant string/bytes objects were interned by the compiler, and this lead to crashes when the qstr was too long (noticeable now that qstr length storage defaults to 1 byte). With this patch, long string/bytes objects are never interned, and are referenced directly as constant objects within generated code using load_const_obj.
-
Damien George authored
This allows to directly load a Python object to the Python stack. See issue #722 for background.
-
Damien George authored
-
Damien George authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
This enable libc functions, GC, and line-editing function. Also, UART emulation for POSIX systems is added. Emulation build is set as default.
-
Paul Sokolovsky authored
Unlike bare-arm, which is mostly intended to show raw interpreter size, without library and support code dependencies. This port is intended to be a better base to start new ports, and also will include emulation build to allow debug some aspects of embedded targets on POSIX systems. This initial commit is verbatim copy of bare-arm code.
-
- Jan 12, 2015
-
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
Ref issue #699.
-
Damien George authored
-
Damien George authored
This config option is for the USB OTG pin, pin A10. This is used on some boards but not others. Eg PYBv3 uses PA10 for LED(2), so it shouldn't be used for OTG ID (actually PA10 is multiplexed on this board, but defaults to LED(2)). Partially addresses issue #1059.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Paul Sokolovsky authored
readline_process_char() can be fed character by character, for example, received from external event loop. This will allow to integrate MicroPython into cooperative multitasking systems.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
- Jan 11, 2015
-
-
Damien George authored
-
Damien George authored
This new config option sets how many fixed-number-of-bytes to use to store the length of each qstr. Previously this was hard coded to 2, but, as per issue #1056, this is considered overkill since no-one needs identifiers longer than 255 bytes. With this patch the number of bytes for the length is configurable, and defaults to 1 byte. The configuration option filters through to the makeqstrdata.py script. Code size savings going from 2 to 1 byte: - unix x64 down by 592 bytes - stmhal down by 1148 bytes - bare-arm down by 284 bytes Also has RAM savings, and will be slightly more efficient in execution.
-
Damien George authored
-
Damien George authored
Previous patch c38dc3cc allowed any object to be compared with any other, using pointer comparison for a fallback. As such, existing code which checked for this case is no longer needed.
-
Damien George authored
Return "not equal" for objects that don't implement equality check. This is as per Python specs.
-
Damien George authored
-
Damien George authored
-