summaryrefslogtreecommitdiffstatshomepage
path: root/py
Commit message (Collapse)AuthorAge
* objgenerator: First iteration of refactor to use mp_setup_code_state().Paul Sokolovsky2014-06-11
|
* objfun: Factor out mp_setup_code_state() function to set up code_state object.Paul Sokolovsky2014-06-11
| | | | It needs to be reused for generator functions, too.
* py: Implement __contains__ special method.Damien George2014-06-10
|
* Remove unnecessary bounds check from mp_seq_get_fast_slice_indexes.Chris Angelico2014-06-10
| | | | | At this point, start will be >= 0, so checking if stop < 0 is redundant with checking if start > stop a few lines later.
* objtype: Fix passing of class param to inherited classmethods.Paul Sokolovsky2014-06-08
| | | | This is getting more and more tangled, but that's old news.
* objtype: Optimize stack usage mp_obj_class_lookup().Paul Sokolovsky2014-06-08
| | | | | As before, instead of pushing constant values on stack again and again, just pass around pointer to a structure.
* Merge branch 'alloca' of github.com:marcusva/micropython into marcusva-allocaDamien George2014-06-08
|\
| * - FreeBSD provides alloca() via stdlib.h, in contrast to Linux and WindowsMarcus von Appen2014-06-07
| | | | | | | | - Move the includes for alloca() intp mpconfigport.h
* | py: Simplify function call of a bytecode object.Damien George2014-06-08
| |
* | py: Make sure getattr() works with non-interned strings (by interning them).Paul Sokolovsky2014-06-08
| |
* | Merge branch 'master' of github.com:micropython/micropythonDamien George2014-06-07
|\ \ | | | | | | | | | | | | Conflicts: py/emitglue.c
| * | objtype: Enable __lt__ method support for instances.Paul Sokolovsky2014-06-08
| | |
| * | modsys: Add optional support for sys.platform.Paul Sokolovsky2014-06-07
| | | | | | | | | | | | | | | Ports which wants to have it, should define MICROPY_PY_SYS_PLATFORM to a string value they need.
| * | py: Add generic mp_not_implemented() func to use instead of assert().Paul Sokolovsky2014-06-07
| | | | | | | | | | | | | | | | | | Benefits: won't crash baremetal targets, will provide Python source location when not implemented feature used (it will no longer provide C source location, but just grep for error message).
* | | py: Implement default keyword only args.Damien George2014-06-07
|/ / | | | | | | Should finish addressing issue #524.
* | py: Merge mp_execute_bytecode into fun_bc_call.Damien George2014-06-07
| | | | | | | | | | | | This reduces stack usage by 16 words (64 bytes) for stmhal/ port. See issue #640.
* | py, mk: Revert change where build variables set with ?=.Damien George2014-06-07
| | | | | | | | ?= operator does not do delayed expansion (unlike =).
* | - Let the build environment decide about the toolchain to be used, in caseMarcus von Appen2014-06-07
|/ | | | | | | there are special tweaks and paths to be considered. Just provide some defaults, in case the values are undefined. - py-version.sh does not need any bash specific features. - Use libdl only on Linux for now. FreeBSD provides dl*() calls from libc.
* Bring the C and Python compute_hash functions into consistencyChris Angelico2014-06-07
|
* objint: Fix corner case in buffer access.Paul Sokolovsky2014-06-06
|
* Fix str.modulo when precision is specified.Dave Hylands2014-06-05
|
* modgc: Real 64-bit cleanness.Paul Sokolovsky2014-06-06
|
* modgc: 64-bit cleanness.Paul Sokolovsky2014-06-06
|
* modgc: Implement return value for gc.collect(), enable on Unix.Paul Sokolovsky2014-06-05
|
* py: Raise TypeError when trying to format non-int with %x,%o,%X.Damien George2014-06-05
| | | | | This behaviour follows Python 3.5 standard (in 3.4 it's a DeprecationWarning which we'd rather make a TypeError).
* Merge pull request #665 from Rosuav/naming3.3Paul Sokolovsky2014-06-05
|\ | | | | Change comments (mainly URLs) to no longer specifically say Python 3.3
| * Change comments (mainly URLs) to no longer specifically say Python 3.3Chris Angelico2014-06-06
| |
* | py: Small changes to objstr.c, including a bug fix.Damien George2014-06-05
|/ | | | | | | | | | | | | | Some small fixed: - Combine 'x' and 'X' cases in str format code. - Remove trailing spaces from some lines. - Make exception messages consistently begin with lower case (then needed to change those in objarray and objtuple so the same constant string data could be used). - Fix bug with exception message having %c instead of %%c.
* objstr: Implement "%(key)s" % {} formatting for strings and dicts.Paul Sokolovsky2014-06-05
| | | | | Also, make sure that args to "*" format specifiers are bounds-checked properly and don't lead for segfaults in case of mismatch.
* Replace assert(0) with a self-documenting TODO stringChris Angelico2014-06-05
|
* Simplify detection of quote characters in mp_str_print_quoted.Chris Angelico2014-06-04
| | | | | Once a double quote has been found, the subsequent discovery of a single quote won't change behaviour at all, so don't bother looking for one.
* Correct file reference (there's no qstrraw.h)Chris Angelico2014-06-04
|
* py: Properly fix configuration of float and math module.Damien George2014-06-03
|
* py: Allow tail call optimisation in mp_call_function_n_kw.Damien George2014-06-03
| | | | This saves 4 words of stack space per Python call.
* py: Fix configuration of math module.Damien George2014-06-03
|
* py: Implement full behaviour of dict.update(), and dict().Damien George2014-06-03
| | | | | | | | | | | | | Add keyword args to dict.update(), and ability to take a dictionary as argument. dict() class constructor can now use dict.update() directly. This patch loses fast path for dict(other_dict), but is that really needed? Any anyway, this idiom will now re-hash the dictionary, so is arguably more memory efficient. Addresses issue #647.
* vm: If there's no lineno info, set lineno in traceback to 0, not 1.Paul Sokolovsky2014-06-03
| | | | To clearly signify that lineno is not known.
* py: For optimization level -O3 and higher, remove lineno info from bytecode.Paul Sokolovsky2014-06-03
|
* py: Instead of having "debug on" var, have "optimization level" var.Paul Sokolovsky2014-06-03
| | | | | This allows to have multiple "optimization" levels (CPython has two (-OO removes docstrings), we can have more).
* showbc: Make micropython -v also dump bytecode in hex form.Paul Sokolovsky2014-06-03
|
* showbc: Make sure it's possible to trace MAKE_FUNCTION arg to actual bytecode.Paul Sokolovsky2014-06-03
|
* showbc: Print code block header at the beginning, not in the middle of dump.Paul Sokolovsky2014-06-02
| | | | Also, dump code block in bytes.
* lexer: Add another comment for somewhat obscure way __debug__ is handled.Paul Sokolovsky2014-06-02
|
* modstruct: Add one more extension to typecodes - 'S', a pointer to C string.Paul Sokolovsky2014-06-02
| | | | Also, add comment with description of extension to CPython's typecodes.
* py, str: Replace enum with actual function pointer.Damien George2014-06-01
| | | | | | This way, it's slightly more efficient, uses less ROM (60 bytes less for stmhal), and doesn't require to raise exception if bad operation given.
* py: Fix configurability of builtin slice.Damien George2014-06-01
|
* py: Add option to disable set() object (enabled by default).Damien George2014-06-01
|
* Rename bultins config variables to MICROPY_PY_BUILTINS_*.Damien George2014-06-01
| | | | | | | | | | This renames: MICROPY_PY_FROZENSET -> MICROPY_PY_BUILTINS_FROZENSET MICROPY_PY_PROPERTY -> MICROPY_PY_BUILTINS_PROPERTY MICROPY_PY_SLICE -> MICROPY_PY_BUILTINS_SLICE MICROPY_ENABLE_FLOAT -> MICROPY_PY_BUILTINS_FLOAT See issue #35 for discussion.
* py, vm: Replace save_ip, save_sp with code_state->{ip, sp}.Damien George2014-06-01
| | | | | | | | | | | | | | | | | | This may seem a bit of a risky change, in that it may introduce crazy bugs with respect to volatile variables in the VM loop. But, I think it should be fine: code_state points to some external memory, so the compiler should always read/write to that memory when accessing the ip/sp variables (ie not put them in registers). Anyway, it passes all tests and improves on all efficiency fronts: about 2-4% faster (64-bit unix), 16 bytes less stack space per call (64-bit unix) and slightly less executable size (unix and stmhal). The reason it's more efficient is save_ip and save_sp were volatile variables, so were anyway stored on the stack (in memory, not regs). Thus converting them to code_state->{ip, sp} doesn't cost an extra memory dereference (except maybe to get code_state, but that can be put in a register and then made more efficient for other uses of it).
* Merge branch 'vm-alloca' of github.com:pfalcon/micropython into ↵Damien George2014-06-01
|\ | | | | | | | | | | | | | | | | | | | | pfalcon-vm-alloca Conflicts: py/vm.c Fixed stack underflow check. Use UINT_FMT/INT_FMT where necessary. Specify maximum VM-stack byte size by multiple of machine word size, so that on 64 bit machines it has same functionality as 32 bit.