aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-05-12esp8266: Implement time functionsJosef Gajdusek
2015-05-12stmhal: Add os.rename function.Steve Zatz
2015-05-12unix: Add some extra coverage tests for vstr and attrtuple.Damien George
2015-05-12tests: Add further tests for class defining __hash__.Damien George
2015-05-12py: Add mp_obj_get_int_truncated and use it where appropriate.Damien George
mp_obj_get_int_truncated will raise a TypeError if the argument is not an integral type. Use mp_obj_int_get_truncated only when you know the argument is a small or big int.
2015-05-12py: Convert hash API to use MP_UNARY_OP_HASH instead of ad-hoc function.Damien George
Hashing is now done using mp_unary_op function with MP_UNARY_OP_HASH as the operator argument. Hashing for int, str and bytes still go via fast-path in mp_unary_op since they are the most common objects which need to be hashed. This lead to quite a bit of code cleanup, and should be more efficient if anything. It saves 176 bytes code space on Thumb2, and 360 bytes on x86. The only loss is that the error message "unhashable type" is now the more generic "unsupported type for __hash__".
2015-05-11vm: Properly handle StopIteration raised in user instance iterator.Paul Sokolovsky
I.e. in bytecode Python functions.
2015-05-11objgenerator: Can optimize StopIteration to STOP_ITERATION only if arg is None.Paul Sokolovsky
Unfortunately, MP_OBJ_STOP_ITERATION doesn't have means to pass an associated value, so we can't optimize StopIteration exception with (non-None) argument to MP_OBJ_STOP_ITERATION.
2015-05-11objgenerator: If generator yielded STOP_ITERATION value, it's stopped.Paul Sokolovsky
MP_OBJ_STOP_ITERATION is equivalent of raising StopIteration, except mp_vm_return_kind_t for it is "yield".
2015-05-11sthmal/rtc.c: Add calibration() method to get/set RTC fine-tuning value.blmorris
2015-05-10vm: Null pointer test when checking for StopIteration optimizations.Paul Sokolovsky
When generator raises exception, it is automatically terminated (by setting its code_state.ip to 0), which interferes with this check. Triggered in particular by CPython's test_pep380.py.
2015-05-10unix: Include stdio.h to allow easy debugging with printf().Paul Sokolovsky
2015-05-10runtime: Add TODO for mp_resume() on handling .close().Paul Sokolovsky
Exceptions in .close() should be ignored (dumped to sys.stderr, not propagated), but in uPy, they are propagated. Fix would require nlr-wrapping .close() call, which is expensive. Bu on the other hand, .close() is not called often, so maybe that's not too bad (depends, if it's finally called and that causes stack overflow, there's nothing good in that). And yet on another hand, .close() can be implemented to catch exceptions on its side, and that should be the right choice.
2015-05-10unix: Print unhandled exception to stderr, like CPython does.Paul Sokolovsky
2015-05-10py: iternext() may not return MP_OBJ_NULL, only MP_OBJ_STOP_ITERATION.Paul Sokolovsky
Testing for incorrect value led to premature termination of generator containing yield from for such iterator (e.g. "yield from [1, 2]").
2015-05-09ACKNOWLEDGEMENTS: Add 1 backer name.Damien George
2015-05-08unix: Fix thumb2 vs arm native emitter auto-detection.Paul Sokolovsky
Make thumb2 have priority over arm.
2015-05-08emitnative: Revamp ARM codegen compile after full-arg support refactors.Paul Sokolovsky
The code was apparently broken after 9988618e0e0f5c319e31b135d993e22efb593093 "py: Implement full func arg passing for native emitter.". This attempts to propagate those changes to ARM emitter.
2015-05-08unix: Make extra-coverage function callable from Python scripts.Damien George
This allows the output of the extra-coverage tests to be checked using the normal run-tests script.
2015-05-08unix: Add special function to improve coverage.Damien George
The function and corresponding command-line option are only enabled for the coverage build. They are used to exercise uPy features that can't be properly tested by Python scripts.
2015-05-08tests: Add test for machine module (mem* functions).Damien George
2015-05-07tools: Add script to install "upip" package manager.Paul Sokolovsky
upip is a simple and light-weight package manager for MicroPython modules, offering subset of pip functionality. upip is part of micropython-lib project: https://github.com/micropython/micropython-lib/tree/master/upip This script bootstraps upip by downloading and unpacking it directly from PyPI repository, with all other packages to be installed with upip itself.
2015-05-07cc3200: Enable MICROPY_MODULE_WEAK_LINKS.Daniel Campora
2015-05-07tools/pyboard.py: Add "--follow" option to wait for output indefinitely.Damien George
Also flush stdout so you can see output as it comes.
2015-05-06stmhal: Move debug UART repl to after uart_init0 call.Dave Hylands
2015-05-06esp8266: Add support for frozen modulesJosef Gajdusek
2015-05-06esp8266: Add .onsent callback supportJosef Gajdusek
The function passed to socket.onsent() gets called after data is succesfully sent by the socket.
2015-05-06esp8266: Initialize socket->connlist to NULLJosef Gajdusek
This was causing crashes in .onconnect()
2015-05-06unix-cpy: Fix adjustment of stack size when leaving exception handler.Damien George
Also remove __debug__ from one of the bytecode tests.
2015-05-06esp8266: Fix garbage collector by hard-coding stack end address.Josef Gajdusek
As user_init() is not a true main functions, the stack pointer captured within is not pointing at the base of the stack. This caused gc_collect being called with sp being higher than stack_end, causing integer overflow and crashing as gc tried to scan almost the entire address space.
2015-05-06py: Fix naming of function arguments when function is a closure.Damien George
Addresses issue #1226.
2015-05-06mkrules.mk: Add comment why dependency parsing regex was tweaked.Paul Sokolovsky
(Windows compatibility.)
2015-05-06Adjust sed regex that processes dependency file from compilerAri Suutari
so that resulting file is correct also on windows systems (ie. with file names containing drive letter).
2015-05-06pyexec: Make raw REPL work with event-driven version of pyexec.Damien George
esp8266 port now has working raw and friendly REPL, as well as working soft reset (CTRL-D at REPL, or raise SystemExit). tools/pyboard.py now works with esp8266 port.
2015-05-05tests: Fix cmd_showbc now that LOAD_CONST_ELLIPSIS bytecode is gone.Damien George
2015-05-05esp8266: Return CPU frequency in Hz.Damien George
2015-05-05esp8266: Fix endian of address returned by esp.getaddrinfo()Josef Gajdusek
2015-05-05py: Remove LOAD_CONST_ELLIPSIS bytecode, use LOAD_CONST_OBJ instead.Damien George
Ellipsis constant is rarely used so no point having an extra bytecode for it.
2015-05-05obj: Handle user instance hash based on Python adhoc rules.Paul Sokolovsky
User instances are hashable by default (using __hash__ inherited from "object"). But if __eq__ is defined and __hash__ not defined in particular class, instance is not hashable.
2015-05-05objsingleton: New home for Ellipsis and NotImplemented.Paul Sokolovsky
Having NotImplemented as MP_OBJ_SENTINEL turned out to be problematic (it needs to be checked for in a lot of places, otherwise it'll crash as would pass MP_OBJ_IS_OBJ()), so made a proper singleton value like Ellipsis, both of them sharing the same type.
2015-05-05cc3200: Define MICROPY_CPYTHON_COMPAT=0.Daniel Campora
This only disables some corner case functionality to keep C Python compatibility, and saves ~600 bytes.
2015-05-04modbuiltins: Add NotImplemented builtin constant.Paul Sokolovsky
From https://docs.python.org/3/library/constants.html#NotImplemented : "Special value which should be returned by the binary special methods (e.g. __eq__(), __lt__(), __add__(), __rsub__(), etc.) to indicate that the operation is not implemented with respect to the other type; may be returned by the in-place binary special methods (e.g. __imul__(), __iand__(), etc.) for the same purpose. Its truth value is true." Some people however appear to abuse it to mean "no value" when None is a legitimate value (don't do that).
2015-05-04modstruct: Rename module to "ustruct", to allow full Python-level impl.Paul Sokolovsky
2015-05-04modstruct: Group module qstr's together.Paul Sokolovsky
2015-05-04esp8266: Add esp.socket class, with ESP-style socket functionality.Josef Gajdusek
* UDP currently not supported * As there is no way (that I know of) the espconn_regist_connectcb() callback can recognize on which socket has the connection arrived, only one listening function at a time is supported
2015-05-04lib: Move some common mod_network_* functions to lib/netutils.Josef Gajdusek
2015-05-04py: Check that arg to object.__new__ is a user-defined type.Damien George
Addresses issue #1203.
2015-05-04modmachine: Add new module to access hardware, starting with physical memory.Paul Sokolovsky
Refactored from "stm" module, provides mem8, mem16, mem32 objects with array subscript syntax.
2015-05-03CONTRIBUTING.md: Link to contrib guidelines and code conventions.Paul Sokolovsky
2015-05-03esp8266: Export station status() constantsJosef Gajdusek