| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This behaviour follows Python 3.5 standard (in 3.4 it's a
DeprecationWarning which we'd rather make a TypeError).
|
|\
| |
| | |
Change comments (mainly URLs) to no longer specifically say Python 3.3
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Also, make sure that args to "*" format specifiers are bounds-checked
properly and don't lead for segfaults in case of mismatch.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
This saves 4 words of stack space per Python call.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
To clearly signify that lineno is not known.
|
| |
|
|
|
|
|
| |
This allows to have multiple "optimization" levels (CPython has two
(-OO removes docstrings), we can have more).
|
| |
|
| |
|
|
|
|
| |
Also, dump code block in bytes.
|
| |
|
|
|
|
| |
Also, add comment with description of extension to CPython's typecodes.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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.)).
|
| |
| |
| |
| |
| | |
This makes sure that only as much stack allocated as actually used, reducing
stack usage for each Python function call.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
Needs proper coverage testing. Doesn't implement -ve & -ve.
Addresses issue #611.
|
|
|
|
| |
Also unifies use of SMALL_INT_FITS macro across parser and runtime.
|
| |
|
|
|
|
| |
Addresses issue #627.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Reorder interning logic in mp_obj_new_str, to be more efficient.
str_new is globally accessible, so should be prefixed with mp_obj_.
|
|
|
|
|
| |
This removes need for some casts (at least, more than it adds need
for new casts!).
|
|\ |
|