- 17 Apr, 2014 22 commits
-
-
Paul Sokolovsky authored
mem_info() is already pretty hacky, let it be more hacky.
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
I.e. with its own globals. So, just as for functions, we need to switch globals when resuming a generator.
-
Paul Sokolovsky authored
This follows pattern already used for objtuple, etc.: objfun.h's content is not public - each and every piece of code should not have access to it. It's not private either - with out architecture and implementation language (C) it doesn't make sense to keep implementation of each object strictly private and maintain cumbersome accessors. It's "local" - intended to be used by a small set of "friend" (in C++ terms) objects.
-
Damien George authored
Addresses issue #487.
-
Damien George authored
Any generated headers go in $(BUILD)/genhdr/, and are #included as 'genhdr/xxx.h'.
-
Damien George authored
Merge branch 'relocatable-build-dir' of github.com:lurch/micropython into lurch-relocatable-build-dir
-
Damien George authored
nlr: Add implementation using setjmp/longjmp.
-
Damien George authored
Add 'test' target to unix/Makefile
-
Damien George authored
Allow the uPy used by run-tests to be overridden
-
Damien George authored
-
Damien George authored
Not all functions implemented. Not enabled on pyboard.
-
Damien George authored
-
Damien George authored
-
Damien George authored
Things get tricky when using the nlr code to catch exceptions. Need to ensure that the variables (stack layout) in the exception handler are the same as in the bit protected by the exception handler. Prior to this patch there were a few bugs. 1) The constant mp_const_MemoryError_obj was being preloaded to a specific location on the stack at the start of the function. But this location on the stack was being overwritten in the opcode loop (since it didn't think that variable would ever be referenced again), and so when an exception occurred, the variable holding the address of MemoryError was corrupt. 2) The FOR_ITER opcode detection in the exception handler used sp, which may or may not contain the right value coming out of the main opcode loop. With this patch there is a clear separation of variables used in the opcode loop and in the exception handler (should fix issue (2) above). Furthermore, nlr_raise is no longer used in the opcode loop. Instead, it jumps directly into the exception handler. This tells the C compiler more about the possible code flow, and means that it should have the same stack layout for the exception handler. This should fix issue (1) above. Indeed, the generated (ARM) assembler has been checked explicitly, and with 'goto exception_handler', the problem with &MemoryError is fixed. This may now fix problems with rge-sm, and probably many other subtle bugs yet to show themselves. Incidentally, rge-sm now passes on pyboard (with a reduced range of integration)! Main lesson: nlr is tricky. Don't use nlr_push unless you know what you are doing! Luckily, it's not used in many places. Using nlr_raise/jump is fine.
-
Damien George authored
-
Damien George authored
Tests in basics (which should probably be renamed to core) should not rely on float, or import any non-built-in files. This way these tests can be run when those features are not available. All test in basics now pass on the pyboard using stmhal port, except for string-repr which has some issues with character hex printing.
-
Paul Sokolovsky authored
-
Andrew Scheller authored
As discussed in #504
-
Andrew Scheller authored
As discussed in #504
-
Damien George authored
Needs a better solution.
-
- 16 Apr, 2014 18 commits
-
-
Damien George authored
Remove generated .h file if the generation process fails.
-
Damien George authored
Fix to allow usbd_msc_storage.c to compile when MICROPY_HW_HAS_SDCARD is...
-
Damien George authored
Fixing the USB problem on stmhal now gets these 2 tests working.
-
Damien George authored
Taken straight from musl and newlib. License seems compatible with MIT.
-
Damien George authored
A 64-byte packet is now followed by a 0-byte packet if there is nothing more to send. This flushes the USB endpoint.
-
Damien George authored
-
Damien George authored
-
Damien George authored
Internal flash used for the filesystem is now written (from the cache) only after a 5s delay, or when a file is closed, or when the drive is unmounted from the host. This delay means that multiple writes can accumulate in the cache, and leads to less writes to the flash, making it last longer. It's implemented by a high-priority interrupt that takes care of flash erase and write, and flushing the cache. This is still only an interim solution for the flash filesystem. It eventually needs to be replaced with something that uses less RAM for the cache, something that can use more of the flash, and something that does proper wear levelling.
-
Paul Sokolovsky authored
Having an optimized asm implementation is good, but if we want portability, that's it.
-
Andrew Scheller authored
The autogenerated header files have been moved about, and an extra include dir has been added, which means you can give a custom BUILD=newbuilddir option to make, and everything "just works" Also tidied up the way the different Makefiles build their include- directory flags
-
Andrew Scheller authored
-
Andrew Scheller authored
In conjunction with #504 this allows you to do things like: ```shell make -C unix clean && make -C unix test CC=gcc-4.7 ``` all from the top-level micropython directory :-) Something similar could probably be done for windows/Makefile too, but I don't have a cygwin setup to test with.
-
Paul Sokolovsky authored
fix tests/bytecode/README to match contents of tests/bytecode/run-tests
-
Andrew Scheller authored
with MICROPY_MP_PY envvar, in an analogous way to MICROPY_CPYTHON3 envvar. (the reason for this will be made clearer by a later PR)
-
Andrew Scheller authored
-
Dave Hylands authored
-
Dave Hylands authored
-
Damien George authored
-