| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
It needs to be reused for generator functions, too.
|
| |
|
|
|
|
|
| |
At this point, start will be >= 0, so checking if stop < 0 is redundant with
checking if start > stop a few lines later.
|
|
|
|
| |
This is getting more and more tangled, but that's old news.
|
|
|
|
|
| |
As before, instead of pushing constant values on stack again and again, just
pass around pointer to a structure.
|
|\ |
|
| |
| |
| |
| | |
- Move the includes for alloca() intp mpconfigport.h
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
py/emitglue.c
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Ports which wants to have it, should define MICROPY_PY_SYS_PLATFORM to a
string value they need.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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).
|
|/ /
| |
| |
| | |
Should finish addressing issue #524.
|
| |
| |
| |
| |
| |
| | |
This reduces stack usage by 16 words (64 bytes) for stmhal/ port.
See issue #640.
|
| |
| |
| |
| | |
?= operator does not do delayed expansion (unlike =).
|
|/
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
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.
|