summaryrefslogtreecommitdiffstatshomepage
path: root/py
Commit message (Collapse)AuthorAge
* 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.
| * vm: Factor out structure with code execution state and pass it around.Paul Sokolovsky2014-05-31
| | | | | | | | | | | | | | This improves stack usage in callers to mp_execute_bytecode2, and is step forward towards unifying execution interface for function and generators (which is important because generators don't even support full forms of arguments passing (keywords, etc.)).
| * vm: Don't unconditionally allocate state on stack, do that only if needed.Paul Sokolovsky2014-05-31
| | | | | | | | | | This makes sure that only as much stack allocated as actually used, reducing stack usage for each Python function call.
* | py: Fix stack underflow with optimised for loop.Damien George2014-05-31
|/
* vm: Detect stack underflow in addition to overflow.Paul Sokolovsky2014-05-31
|
* objstr: str_uni_istype(): Spurious whitespace on empty lines.Paul Sokolovsky2014-05-31
|
* objstr: str_uni_istype(): Codestyle.Paul Sokolovsky2014-05-31
|
* add methods isspace(), isalpha(), isdigit(), isupper() and islower() to strKim Bauters2014-05-31
|
* py: Reformat few long functions argument lists for clarity.Paul Sokolovsky2014-05-31
|
* objfun: Typo fixes in comments.Paul Sokolovsky2014-05-31
|
* py: Fix break from within a for loop.Damien George2014-05-30
| | | | | | | Needed to pop the iterator object when breaking out of a for loop. Need also to be careful to unwind exception handler before popping iterator. Addresses issue #635.
* objstr: *strip(): If nothing is stripped, don't create dup string.Paul Sokolovsky2014-05-30
|
* objstr: *strip(): Fix handling of one-char subject strings.Paul Sokolovsky2014-05-30
|
* py: Implement bignum '&' with negatives on lhs and rhs.Damien George2014-05-29
| | | | | Needs proper coverage testing. Doesn't implement -ve & -ve. Addresses issue #611.
* py: Fix check of small-int overflow when parsing ints.Damien George2014-05-28
| | | | Also unifies use of SMALL_INT_FITS macro across parser and runtime.
* py: Make int(<longint>) work by just returning the longint.Damien George2014-05-28
|
* py: Implement long int parsing in int(...).Damien George2014-05-28
| | | | Addresses issue #627.
* py, vm: Where possible, make variables local to each opcode.Damien George2014-05-25
| | | | | | | | | This helps the compiler do its optimisation, makes it clear which variables are local per opcode and which global, and makes it consistent when extra variables are needed in an opcode (in addition to old obj1, obj2 pair, for example). Could also make unum local, but that's for another time.
* py: Slightly improve efficiency of mp_obj_new_str; rename str_new.Damien George2014-05-25
| | | | | | Reorder interning logic in mp_obj_new_str, to be more efficient. str_new is globally accessible, so should be prefixed with mp_obj_.
* Change const byte* to const char* where sensible.Damien George2014-05-25
| | | | | This removes need for some casts (at least, more than it adds need for new casts!).
* Merge branch 'pfalcon-keep-strings-uninterned'Damien George2014-05-25
|\