Damien George
07995e9479
Merge pull request #649 from pfalcon/multi-opt
...
Support multiple bytecode optimisation levels
2014-06-03 10:46:36 +01:00
Paul Sokolovsky
411732e93b
vm: If there's no lineno info, set lineno in traceback to 0, not 1.
...
To clearly signify that lineno is not known.
2014-06-03 12:32:59 +03:00
Paul Sokolovsky
b8f117dd32
py: For optimization level -O3 and higher, remove lineno info from bytecode.
2014-06-03 12:32:59 +03:00
Paul Sokolovsky
d3439d0c60
py: Instead of having "debug on" var, have "optimization level" var.
...
This allows to have multiple "optimization" levels (CPython has two
(-OO removes docstrings), we can have more).
2014-06-03 12:32:59 +03:00
Paul Sokolovsky
509c7a7854
Merge pull request #651 from dhylands/fix-af-csv2
...
Add missing commas to stm32f4xx-af.csv
2014-06-03 11:16:31 +03:00
Dave Hylands
4e0573e5cf
Add missing commas to stm32f4xx-af.csv
2014-06-02 23:11:14 -07:00
Paul Sokolovsky
f753971e5d
showbc: Make micropython -v also dump bytecode in hex form.
2014-06-03 01:39:13 +03:00
Paul Sokolovsky
a4ac5b9f05
showbc: Make sure it's possible to trace MAKE_FUNCTION arg to actual bytecode.
2014-06-03 01:26:51 +03:00
Paul Sokolovsky
dd0dee3afc
unix: Properly print script filename in case of error.
2014-06-03 01:26:43 +03:00
Paul Sokolovsky
8bf8404c15
showbc: Print code block header at the beginning, not in the middle of dump.
...
Also, dump code block in bytes.
2014-06-02 16:35:57 +03:00
Paul Sokolovsky
b325d25e46
lexer: Add another comment for somewhat obscure way __debug__ is handled.
2014-06-02 16:35:57 +03:00
Paul Sokolovsky
62798831be
modstruct: Add one more extension to typecodes - 'S', a pointer to C string.
...
Also, add comment with description of extension to CPython's typecodes.
2014-06-02 16:35:56 +03:00
Damien George
b55a59de4c
Merge branch 'Metallicow-LED-Fix'
2014-06-01 18:35:57 +01:00
Damien George
517f292c8d
examples, switch: Make run_loop take sequence of LED objects.
2014-06-01 18:34:58 +01:00
Damien George
15a5738e1d
Merge branch 'LED-Fix' of github.com:Metallicow/micropython into Metallicow-LED-Fix
2014-06-01 18:30:03 +01:00
Damien George
fcc9cf63f1
py, str: Replace enum with actual function pointer.
...
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.
2014-06-01 18:22:09 +01:00
Damien George
f1dbd78b30
stmhal: Document pyb.Accel() constructor, that it takes time to start.
2014-06-01 17:57:06 +01:00
Metallicow
9500e98433
__doc__ switch, make importable, and easy to test
2014-06-01 08:18:13 -06:00
Damien George
f917f06384
bare-arm: Disable slice and set.
2014-06-01 13:49:54 +01:00
Damien George
c49ddb9315
py: Fix configurability of builtin slice.
2014-06-01 13:49:35 +01:00
Damien George
3ebd4d0cae
py: Add option to disable set() object (enabled by default).
2014-06-01 13:46:47 +01:00
Damien George
fb510b3bf9
Rename bultins config variables to MICROPY_PY_BUILTINS_*.
...
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.
2014-06-01 13:32:54 +01:00
Damien George
c60a261ef0
py, vm: Replace save_ip, save_sp with code_state->{ip, sp}.
...
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).
2014-06-01 12:32:28 +01:00
Damien George
c7969857f4
Merge branch 'pfalcon-vm-alloca'
2014-06-01 12:08:55 +01:00
Damien George
1b87d1098a
Merge branch 'vm-alloca' of github.com:pfalcon/micropython into 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.
2014-06-01 12:06:17 +01:00
Metallicow
f94cc975a2
Add switch test example
2014-05-31 23:15:04 -06:00
Metallicow
fa82aa81c0
LED Fix
2014-05-31 23:10:10 -06:00
Damien George
6c13d7965e
Merge branch 'master' of github.com:micropython/micropython
2014-05-31 18:35:00 +01:00
Damien George
4d659f566f
tests: Add feature test for when heap allocation is disabled.
2014-05-31 18:33:16 +01:00
Damien George
6e18835b94
Merge pull request #643 from dhylands/fix-af-csv
...
Add a comma to make the .csv look proper in github
2014-05-31 18:13:28 +01:00
Damien George
a053e37b2c
tests: Change --test_dirs to --test-dirs.
2014-05-31 18:11:01 +01:00
Damien George
e7412ab37b
Merge pull request #632 from stinos/tests-dir-argument
...
tests: Add argument to allow specifying which directories to test
2014-05-31 18:11:03 +01:00
Damien George
5b5562c1d1
py: Fix stack underflow with optimised for loop.
2014-05-31 17:59:11 +01:00
Damien George
049a01d148
tests: Add another test for break-from-for-loop.
2014-05-31 16:56:15 +01:00
Paul Sokolovsky
b4ebad3310
vm: Factor out structure with code execution state and pass it around.
...
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.)).
2014-05-31 18:22:01 +03:00
Paul Sokolovsky
b16523aa95
vm: Don't unconditionally allocate state on stack, do that only if needed.
...
This makes sure that only as much stack allocated as actually used, reducing
stack usage for each Python function call.
2014-05-31 18:19:33 +03:00
Paul Sokolovsky
ff8da0b835
vm: Detect stack underflow in addition to overflow.
2014-05-31 18:14:54 +03:00
Paul Sokolovsky
ae9c82d5f3
objstr: str_uni_istype(): Spurious whitespace on empty lines.
2014-05-31 11:00:25 +03:00
Paul Sokolovsky
f69b9d379c
objstr: str_uni_istype(): Codestyle.
2014-05-31 10:59:34 +03:00
Paul Sokolovsky
69a8b23651
Merge pull request #644 from kimbauters/master
...
add methods isspace(), isalpha(), isdigit(), isupper() and islower() to str
2014-05-31 10:52:20 +03:00
Kim Bauters
a3f4b83018
add methods isspace(), isalpha(), isdigit(), isupper() and islower() to str
2014-05-31 07:30:57 +01:00
Dave Hylands
b5fb9b22e2
Add a comma to make the .csv look proper in github
2014-05-30 22:18:52 -07:00
Paul Sokolovsky
1f07b7e3c3
py: Reformat few long functions argument lists for clarity.
2014-05-31 03:36:37 +03:00
Paul Sokolovsky
3dfa76cb85
unix: 64-bit cleanness.
2014-05-31 03:19:15 +03:00
Paul Sokolovsky
914bcf16d8
unix: Add poorman's stack usage info to mem_info() dump.
2014-05-31 02:34:39 +03:00
Paul Sokolovsky
b30a777ace
objfun: Typo fixes in comments.
2014-05-31 02:24:47 +03:00
Paul Sokolovsky
347b3a3d1f
modsocket: Add some comments on intended usage/API design of module.
2014-05-31 01:48:26 +03:00
Paul Sokolovsky
50b08c920a
modsocket: Remove stale ifdef.
2014-05-31 01:41:41 +03:00
Paul Sokolovsky
ccd0e0afcd
tests: Add test for break in for.
...
For #635 / 25c84643b6
.
2014-05-31 00:43:41 +03:00
Damien George
25c84643b6
py: Fix break from within a for loop.
...
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 .
2014-05-30 15:20:41 +01:00