summaryrefslogtreecommitdiffstatshomepage
path: root/tools
Commit message (Collapse)AuthorAge
* tools/mpy-tool.py: Fix missing argument in dump() functionstijn2017-08-16
| | | | | This makes the -d commandline argument usable again. Pass empty string as parent name as listing starts from the root.
* tools/mpy-tool.py: Don't generate const_table if it's empty.Damien George2017-08-12
|
* all: Use the name MicroPython consistently in commentsAlexander Steffen2017-07-31
| | | | | There were several different spellings of MicroPython present in comments, when there should be only one.
* tools/mpy_bin2res: Tools to convert binary resources to Python module.Paul Sokolovsky2017-07-27
| | | | | Afterwards, they can be access using pkg_resource module from micropython-lib.
* tools/pyboard: Add license header.Paul Sokolovsky2017-07-22
|
* all: Remove trailing spaces, per coding conventions.Damien George2017-07-19
|
* tools/gen-cpydiff: Use case description as 3rd-level heading.Paul Sokolovsky2017-07-09
| | | | | This is required to easily giving links to a particular difference case. Also, add RST anchors to allow cases to cross-reference each other.
* various: Spelling fixesVille Skyttä2017-05-29
|
* tools/mpy-tool.py: Fix regression with freezing floats in obj repr C.Damien George2017-05-16
| | | | Regression was introduced by ec534609f665cb791b8fc1eae1a44e514c297659
* tools/mpy_cross_all.py: Helper tool to run mpy-cross on the entire project.Paul Sokolovsky2017-05-14
|
* tools/mpy-tool.py: Use MP_ROM_xxx macros to support nanbox builds.Damien George2017-05-13
|
* tools/upip: Upgrade to 1.2.Paul Sokolovsky2017-05-05
| | | | Memory optimizations and error handling improvements.
* tools/upip: Upgrade to 1.1.6, supports commented lines in requirements.txt.Paul Sokolovsky2017-05-01
|
* tools/mpy-tool: Make work if run from another directory.Paul Sokolovsky2017-05-01
| | | | By making sure we don't add relative paths to sys.path.
* py: Add LOAD_SUPER_METHOD bytecode to allow heap-free super meth calls.Damien George2017-04-22
| | | | | | | | | | | | | | | | | | | | | | This patch allows the following code to run without allocating on the heap: super().foo(...) Before this patch such a call would allocate a super object on the heap and then load the foo method and call it right away. The super object is only needed to perform the lookup of the method and not needed after that. This patch makes an optimisation to allocate the super object on the C stack and discard it right after use. Changes in code size due to this patch are: bare-arm: +128 minimal: +232 unix x64: +416 unix nanbox: +364 stmhal: +184 esp8266: +340 cc3200: +128
* tools/pyboard: Provide more details when expected reply not received.Paul Sokolovsky2017-04-07
| | | | | When trying to execute a command via raw REPL and expected "OK" reply not received, show what was received instead.
* tools/pyboard: ProcessPtyToTerminal: Add workaround for PySerial bug.Paul Sokolovsky2017-04-05
| | | | | When working with a "virtual" port, like PTY. The issue described in http://stackoverflow.com/questions/34831131/pyserial-does-not-play-well-with-virtual-port
* tools/pyboard: execpty: Use shell=False to workaround some curdir issues.Paul Sokolovsky2017-04-05
| | | | Without this, Zephyr's port "make test" doesn't work.
* tools/pyboard: Add "exec" and "execpty" pseudo-devices support.Paul Sokolovsky2017-04-04
| | | | | | | | | | | | | | | | | | | | This allows to execute a command and communicate with its stdin/stdout via pipes ("exec") or with command-created pseudo-terminal ("execpty"), to emulate serial access. Immediate usecase is controlling a QEMU process which emulates board's serial via normal console, but it could be used e.g. with helper binaries to access real board over other hadware protocols, etc. An example of device specification for these cases is: --device exec:../zephyr/qemu.sh --device execpty:../zephyr/qemu2.sh Where qemu.sh contains long-long qemu startup line, or calls another command. There's a special support in this patch for running the command in a new terminal session, to support shell wrappers like that (without new terminal session, only wrapper script would be terminated, but its child processes would continue to run).
* tools/pyboard: Tighten up Pyboard object closure on errors.Paul Sokolovsky2017-04-02
| | | | Some "device" implementations may be sensitive to this.
* tools/tinytest-codegen: Update for recent test renaming ("intbig" suffix).Paul Sokolovsky2017-03-06
|
* qemu-arm: Enable machine module and associated tests.Damien George2017-03-02
|
* tools/gen-cpydiff.py: configurable CPython and micropython executablesKrzysztof Blazewicz2017-02-27
|
* tools/gen-cpydiff.py: Set the Python import path to find test modules.Damien George2017-02-22
|
* tools: Add gen-cpydiff.py to generate docs differences.Rami Ali2017-02-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces the a small framework to track differences between uPy and CPython. The framework consists of: - A set of "tests" which test for an individual feature that differs between uPy and CPy. Each test is like a normal uPy test in the test suite, but has a special comment at the start with some meta-data: a category (eg syntax, core language), a human-readable description of the difference, a cause, and a workaround. Following the meta-data there is a short code snippet which demonstrates the difference. See tests/cpydiff directory for the initial set of tests. - A program (this patch) which runs all the tests (on uPy and CPy) and generates nicely-formated .rst documenting the differences. - Integration into the docs build so that everything is automatic, and the differences appear in a way that is easy for users to read/reference (see latter commits). The idea with using this new framework is: - When a new difference is found it's easy to write a short test for it, along with a description, and add it to the existing ones. It's also easy for contributors to submit tests for differences they find. - When something is no longer different the tool will give an error and difference can be removed (or promoted to a proper feature test).
* py/persistentcode: Bump .mpy version due to change in bytecode.Damien George2017-02-17
|
* tools/upip: Update to 1.1.5. Better and more user-friendly error handling.Paul Sokolovsky2017-02-10
|
* qemu-arm: Don't compile tests in "REPL" mode.Damien George2017-01-27
| | | | | | | | | | Previous to this patch the qemu-arm tests were compiled with is_relp=true meaning that the __repl_print__ function was called for all lines of code in the outer scope. This is not the right behaviour for scripts that are executed as though they were a file (eg tests). With this fix the micropython/heapalloc_str.py test now works so it is removed from the test blacklist.
* tools/tinytest-codegen.py: Blacklist heapalloc_str.py test for qemu-arm.Paul Sokolovsky2017-01-27
|
* tools/mpy-tool.py: Add support for OPT_CACHE_MAP_LOOKUP_IN_BYTECODE.Damien George2017-01-05
| | | | | | | With caching of map lookups in the bytecode, frozen bytecode can still work but must be stored in RAM, not ROM. This patch allows mpy-tool.py to generate code that works with this optimisation, but it's not recommended to use it on embedded targets (because of lack of RAM).
* tools/pyboard.py: Refactor so target is not reset between scripts/cmd.Damien George2016-12-15
| | | | | | | | | | | | Previous to this patch pyboard.py would open a new serial connection to the target for each script that was run, and for any command that was run. Apart from being inefficient, this meant that the board was soft-reset between scripts/commands, which precludes scripts from accessing variables set in a previous one. This patch changes the behaviour of pyboard.py so that the connection to the target is created only once, and it's not reset between scripts or any command that is sent with the -c option.
* tools/tinytest-codegen: Blacklist recently added uheapq_timeq test (qemu-arm).Paul Sokolovsky2016-11-12
|
* tools, unix: Replace upip tarball with just source files.Paul Sokolovsky2016-11-07
| | | | | | | | | | | To make its inclusion as frozen modules in multiple ports less magic. Ports are just expected to symlink 2 files into their scripts/modules subdirs. Unix port updated to use this and in general follow frozen modules setup tested and tried on baremetal ports, where there's "scripts" predefined dir (overridable with FROZEN_DIR make var), and a user just drops Python files there.
* qemu-arm: Enable software floating point support, and float tests.Damien George2016-11-03
| | | | | | | | | This helps to test floating point code on Cortex-M hardware. As part of this patch the link-time-optimisation was disabled because it wasn't compatible with software FP support. In particular, the linker could not find the __aeabi_f2d, __aeabi_d2f etc functions even though they were provided by lib/libm/math.c.
* tools/tinytest-codegen: Exclude ticks_diff test for qemu-arm port.Paul Sokolovsky2016-10-30
|
* qemu-arm: Exclude new vfs_fat tests.Alex March2016-10-27
|
* tools/check_code_size.sh: Code size validation script for CI.Paul Sokolovsky2016-10-25
|
* tools/pip-micropython: Remove deprecated wrapper tool.Paul Sokolovsky2016-10-24
| | | | | Deprecated for long time, pip-micropython now can't install packages optimized for low-heap ports (like whole of micropython-lib).
* qemu-arm: Exclude extmod/vfs_fat_fileio.py test.Alex March2016-10-24
|
* tools: Upgrade upip to 1.1.4.Paul Sokolovsky2016-10-22
| | | | Fix error on unix when installing to non-existing absolute path.
* qemu-arm: Enable lots of extmods and enable tests for them.Damien George2016-10-14
| | | | | The qemu-arm port is used for testing of ARM Thumb architecture on a desktop so should have many features enabled.
* tools: Upgrade upip to 1.1.3.Paul Sokolovsky2016-10-12
| | | | | Initial support for running on a baremetal, low-heap systems (like esp8266), using Python module interface.
* tools: Upgrade upip to 1.0.Paul Sokolovsky2016-10-05
| | | | | Fully self-hosted release (without fallbacks), and uses stream gzip decompression (step towards support for limited-heap baremetal systems).
* tools: Update upip to 0.8. Fixes IPv6 support.Paul Sokolovsky2016-09-23
|
* py: Update opcode format table because 3 opcodes were removed, 1 added.Damien George2016-09-23
| | | | | LIST_APPEND, MAP_ADD and SET_ADD have been removed, and STORE_COMP has been added in adaf0d865cd6c81fb352751566460506392ed55f.
* tools/mpy-tool.py: Support freezing of complex numbers.Damien George2016-09-03
|
* tools/mpy-tool.py: Compute the hash value for str/bytes objects.Damien George2016-09-02
| | | | This makes it more efficient at runtime to hash str/bytes objects.
* tools/mpy-tool.py: Store qstr config values in global config object.Damien George2016-09-02
| | | | | Makes it easier to access them without passing around another dict of the config values.
* tools/mpy-tool.py: Support freezing float literals with obj-repr C.Damien George2016-08-10
| | | | | The tool now generates code for freezing floats in obj-repr A, B or C, with the specific representation detected at compile time using macros.
* tools: Upgrade upip to 0.7.Paul Sokolovsky2016-05-28
| | | | SSL certificate warning, switch to uerrno, and better usage message.