summaryrefslogtreecommitdiffstatshomepage
path: root/py
Commit message (Collapse)AuthorAge
* py/mpconfig.h: Move PY_BUILTINS_POW3 config option to diff part of file.Damien George2017-02-03
| | | | | With so many config options it's good to (at least try to) keep them grouped into logical sections.
* py/objstr: Give correct behaviour when passing a dict to %-formatting.Damien George2017-02-03
| | | | | | This patch fixes two main things: - dicts can be printed directly using '%s' % dict - %-formatting should not crash when passed a non-dict to, eg, '%(foo)s'
* py: Added optimised support for 3-argument calls to builtin.pow()Nicko van Someren2017-02-02
| | | | | | Updated modbuiltin.c to add conditional support for 3-arg calls to pow() using MICROPY_PY_BUILTINS_POW3 config parameter. Added support in objint_mpz.c for for optimised implementation.
* py/objset: Fix inplace binary ops so frozensets are not modified.Damien George2017-02-03
|
* py/objcomplex: Correctly handle case of 0j to power of something.Damien George2017-02-03
| | | | | 0j to the power of negative now raises ZeroDivisionError, and 0j to the power of positive returns 0.
* py/objfloat: Raise ZeroDivisionError for 0 to negative power.Damien George2017-02-03
|
* py/objset: Make inplace binary operators actually modify the set.Damien George2017-02-02
|
* py/objstringio: Allow to specify initial capacity by passing numeric argument.Paul Sokolovsky2017-02-02
| | | | E.g. uio.BytesIO(100) will allocate buffer with 100 bytes of space.
* unix: Make stack be non-executableDave Hylands2017-02-01
| | | | This PR is to address issue #2812.
* extmod: Remove MICROPY_FSUSERMOUNT and related files.Damien George2017-01-30
| | | | Replaced by MICROPY_VFS and the VFS sub-system.
* extmod/vfs_fat: Remove MICROPY_READER_FATFS component.Damien George2017-01-30
|
* extmod/machine_signal: Implement "signal" abstraction for machine module.Paul Sokolovsky2017-01-29
| | | | | | | | | | | A signal is like a pin, but ca also be inverted (active low). As such, it abstracts properties of various physical devices, like LEDs, buttons, relays, buzzers, etc. To instantiate a Signal: pin = machine.Pin(...) signal = machine.Signal(pin, inverted=True) signal has the same .value() and __call__() methods as a pin.
* extmod/vfs: Expose mp_vfs_mount_t type.Damien George2017-01-27
| | | | | It should only be used for low-level things and with caution, for example putting mounted VFS data in ROM or the static data section.
* extmod: Add generic VFS sub-system.Damien George2017-01-27
| | | | | | | | | | | | This provides mp_vfs_XXX functions (eg mount, open, listdir) which are agnostic to the underlying filesystem type, and just require an object with the relevant filesystem-like methods (eg .mount, .open, .listidr) which can then be mounted. These mp_vfs_XXX functions would typically be used by a port to implement the "uos" module, and mp_vfs_open would be the builtin open function. This feature is controlled by MICROPY_VFS, disabled by default.
* py/py.mk: Add CFLAGS_MOD flag to set config file for FatFs.Damien George2017-01-27
|
* py/showbc: Make sure to set the const_table before printing bytecode.Damien George2017-01-27
|
* py/objstr: Optimize string concatenation with empty string.Paul Sokolovsky2017-01-27
| | | | | | | | | | | | | | In this, don't allocate copy, just return non-empty string. This helps with a standard pattern of buffering data in case of short reads: buf = b"" while ...: s = f.read(...) buf += s ... For a typical case when single read returns all data needed, there won't be extra allocation. This optimization helps uasyncio.
* py/objmodule: Move module init/deinit code into runtime functions.Damien George2017-01-26
| | | | | | They are one-line functions and having them inline in mp_init/mp_deinit eliminates the overhead of a function call, and matches how other state is initialised in mp_init.
* py/objint: Fix left-shift overflow in checking for large int.Damien George2017-01-25
|
* py/builtinhelp: Implement help('modules') to list available modules.Damien George2017-01-22
| | | | | | | | This is how CPython does it, and it's very useful to help users discover the available modules for a given port, especially built-in and frozen modules. The function does not list modules that are in the filesystem because this would require a fair bit of work to do correctly, and is very port specific (depending on the filesystem).
* py: Move weak-link map to objmodule.c, and expose module maps as public.Damien George2017-01-22
|
* py: Add builtin help function to core, with default help msg.Damien George2017-01-22
| | | | | This builtin is configured using MICROPY_PY_BUILTINS_HELP, and is disabled by default.
* py/objint_longlong: Add stub for mp_obj_int_from_bytes_impl().Paul Sokolovsky2017-01-21
| | | | To be implemented later.
* py/objint: from_bytes(): Implement "byteorder" param and arbitrary precision.Paul Sokolovsky2017-01-21
| | | | | | | If result guaranteedly fits in a small int, it is handled in objint.c. Otherwise, it is delegated to mp_obj_int_from_bytes_impl(), which should be implemented by individual objint_*.c, similar to mp_obj_int_to_bytes_impl().
* py/mpz: Implement mpz_set_from_bytes() as a foundation for int.from_bytes().Paul Sokolovsky2017-01-21
|
* py/objint_mpz: Refactor switch-statement to remove unreachable default.Damien George2017-01-19
|
* py/formatfloat: Remove unreachable code.Damien George2017-01-19
| | | | | The if-block that this unreachable code is in has a condition "f>=5" so "fp_isless1(f)" will always fail.
* py/binary: mp_binary_get_size: Raise error on unsupported typecodes.Paul Sokolovsky2017-01-17
| | | | | Previouly, we had errors checked in callers, which led to duplicate code or missing checks in some places.
* py/runtime: Refactor default case of switch to remove assert(0).Damien George2017-01-17
|
* py/objexcept: Replace if-cond and assert(0) with simple assert.Damien George2017-01-17
|
* py/emitnative: Remove assert(0)'s or replace with mp_not_implemented.Damien George2017-01-17
|
* py/parse: Refactor code to remove assert(0)'s.Damien George2017-01-17
| | | | | This helps to improve code coverage. Note that most of the changes in this patch are just de-denting the cases of the switch statements.
* py/objgenerator: Don't raise RuntimeError if GeneratorExit ignored.Damien George2017-01-17
| | | | In this case it's allowed to be ignored.
* py/objgenerator: When throwing an object, don't make an exc instance.Damien George2017-01-17
| | | | Arguments to throw() for generators don't need to be exceptions.
* py/runtime: Fix handling of throw() when resuming generator.Damien George2017-01-17
| | | | | | If GeneratorExit is injected as a throw-value then that should lead to the close() method being called, if it exists. If close() does not exist then throw() should not be called, and this patch fixes this.
* py/runtime: Refactor assert(0) to improve coverage.Damien George2017-01-17
|
* py/builtinimport: Remove unreachable code and change obj-import comment.Damien George2017-01-16
|
* py/builtinimport: Raise ValueError for bad relative import, per CPython.Damien George2017-01-16
|
* py/builtinimport: Fix bug when importing names from frozen packages.Damien George2017-01-08
| | | | | | | | The commit d9047d3c8a99603884db25076c37778f50633ca6 introduced a bug whereby "from a.b import c" stopped working for frozen packages. This is because the path was not properly truncated and became "a//b". Such a path resolves correctly for a "real" filesystem, but not for a search in the list of frozen modules.
* py/mkrules.mk: Add MPY_CROSS_FLAGS option to pass flags to mpy-cross.Damien George2017-01-05
| | | | So that ports can pass their own custom options to mpy-cross.
* py/asmarm: Fix assembler's PASS_EMIT constant name.Damien George2017-01-03
|
* py/unicode: Comment-out unused function unichar_isprint.Damien George2016-12-28
|
* py/objint: Simplify mp_int_format_size and remove unreachable code.Damien George2016-12-28
| | | | | One never needs to format integers with a base larger than 16 (but code can be easily extended beyond this value if needed in the future).
* py/mpprint: Add assertion for, and comment about, valid base values.Damien George2016-12-28
|
* py/parsenum: Fix warning for signed/unsigned comparison.Damien George2016-12-28
|
* py/mpz: Fix assertion in mpz_set_from_str which checks value of base.Damien George2016-12-28
|
* py/parsenum: Simplify and generalise decoding of digit values.Damien George2016-12-28
| | | | | This function should be able to parse integers with any value for the base, because it is called by int('xxx', base).
* cc3200: Re-add support for UART REPL (MICROPY_STDIO_UART setting).Paul Sokolovsky2016-12-27
| | | | | | | | UART REPL support was lost in os.dupterm() refactorings, etc. As os.dupterm() is there, implement UART REPL support at the high level - if MICROPY_STDIO_UART is set, make default boot.py contain os.dupterm() call for a UART. This means that changing MICROPY_STDIO_UART value will also require erasing flash on a module to force boot.py re-creation.
* py/misc.h: Typo fix in comment.Paul Sokolovsky2016-12-27
|
* py/lexer: Permanently disable the mp_lexer_show_token function.Damien George2016-12-22
| | | | | The lexer is very mature and this debug function is no longer used. If it's really needed one can uncomment it and recompile.