Damien George
fa5950eb00
py: Fix bug in native emitter when closing over an argument.
2015-04-03 15:03:24 +00:00
Damien George
99957384ea
py: Get native emitter working again with x86 (now supports closures).
2015-04-03 14:38:41 +00:00
Damien George
4cd9ced8dc
py: Implement closures in native code generator.
...
Currently supports only x64 and Thumb2 archs.
2015-04-03 15:05:53 +01:00
Damien George
2cc5473021
py: Implement (non-compliant) support for delete_fast in native emitter.
...
This implementation is smaller (in code size) than #1024 .
2015-04-03 14:29:30 +01:00
Damien George
c0dcf6e878
README: Add note about pic16bit port.
2015-04-03 14:16:49 +01:00
Damien George
43ea73faa6
pic16bit: Initial version of port to 16-bit PIC family.
...
Reference MCU is dsPIC33J256GP506 with 256k ROM and 8k RAM, on the dsPIC
DSC Starter Kit board. The REPL works, GC works, pyb module has LED and
Switch objects. It passes some tests from the test suite (most it can't
run because it doesn't have the Python features enabled).
2015-04-03 14:11:19 +01:00
Damien George
12ab9eda8d
py: Make heap printing compatible with 16-bit word size.
2015-04-03 14:11:13 +01:00
Damien George
3f327cc4c6
py: Allow MPZ_DIG_SIZE to be optionally configured by a port.
2015-04-03 14:11:13 +01:00
Damien George
567184e21e
py: Allow configurable object representation, with 2 different options.
2015-04-03 14:11:13 +01:00
Damien George
12a5e17afb
py: Add finer configuration of static funcs when not in stackless mode.
...
Also rename call_args_t to mp_call_args_t.
2015-04-02 22:56:58 +01:00
Paul Sokolovsky
dbc0191d5f
unix: Add stackless config settings, for easy access.
2015-04-03 00:27:14 +03:00
Paul Sokolovsky
7f1c98177b
vm: Support strict stackless mode, with proper exception reporting.
...
I.e. in this mode, C stack will never be used to call a Python function,
but if there's no free heap for a call, it will be reported as
RuntimeError (as expected), not MemoryError.
2015-04-03 00:26:47 +03:00
Paul Sokolovsky
f0a8f21190
vm: Implement stackless for CALL_FUNCTION_VAR_KW & CALL_METHOD_VAR_KW.
2015-04-03 00:03:07 +03:00
Paul Sokolovsky
e6c6fe3275
runtime: Split mp_call_prepare_args_n_kw_var() from mp_call_method_n_kw_var().
...
Allow for reuse for stackless design, where preparing args is separate from
calling.
2015-04-03 00:03:07 +03:00
Paul Sokolovsky
390e92688c
vm: Stackless support for MP_BC_CALL_METHOD.
2015-04-03 00:03:07 +03:00
Paul Sokolovsky
332a909d44
vm: If there's no heap to call function in stackless manner, call via C stack.
2015-04-03 00:03:07 +03:00
Paul Sokolovsky
2039757b85
vm: Initial support for calling bytecode functions w/o C stack ("stackless").
2015-04-03 00:03:07 +03:00
Paul Sokolovsky
f88eec0de2
makeqstrdata.py: Add support for strings with backslash escapes.
2015-04-02 01:10:11 +03:00
Damien George
2686f9b3e8
py: Fix emitnative's creation of small ints so it uses the macro.
2015-04-01 00:12:43 +01:00
Daniel Campora
d460a30711
cc3200: Add specific version file for the CC3200 port.
...
Current version has been numbered as 0.9.0 since Timers/PWM support
is still missing.
2015-03-31 14:34:09 +02:00
Daniel Campora
3f42f32648
cc3200: Remove duplicated code from moduos.
...
Error reporting is also changed from detailed to terse, as with the
rest of the CC3200's modules. All this combined saves ~200 bytes.
2015-03-31 14:34:07 +02:00
Paul Sokolovsky
344057ac50
docs: uctypes: Bullet list formatting fixes.
2015-03-31 01:29:07 +03:00
Paul Sokolovsky
9d2c0c231c
docs: uctypes: Describe how to instantiate struct objects.
2015-03-31 01:16:14 +03:00
Paul Sokolovsky
1bc534247c
objtype: Add special unary methods __pos__, __neg__, __invert__.
...
Conditional on MICROPY_PY_ALL_SPECIAL_METHODS.
2015-03-31 01:05:03 +03:00
Paul Sokolovsky
fdaac1dbf8
modbuiltins: round(): Accept second arg, and at least support it to be 0.
...
Per https://docs.python.org/3/library/functions.html#round , 2-args format
guaranteedly returns float.
2015-03-31 01:02:44 +03:00
Ivan Pejić
e178ef2520
docs: Add additional example/note for Timer's callback usage.
...
Add example: using named function for the Timer's callback.
Add note: improving traceback inside interrupt timers.
2015-03-30 00:43:04 +01:00
Damien George
47098efbda
docs: Provide initial documentation for micropython module.
2015-03-30 00:32:29 +01:00
Daniel Campora
7b19e99edd
lib: Update FatFs to R0.11.
...
There are lots of cosmetic changes, but this release brings a very
important bug fix:
- Fixed f_unlink() does not remove cluster chain of the file.
With R0.10c if you try to write a file that is too large to fit in the
free space of the drive, the operation fails, you delete the incomplete
file, and it seems to be erased, but the space is not really freed,
because any subsequent write operations fail because the drive is
"still" full. The only way to recover from this is by formatting the
drive. I can confirm that R0.11 fixes the problem.
2015-03-29 22:12:14 +01:00
Damien George
64e8b62291
docs: Bump version to 1.4.
2015-03-29 18:01:19 +01:00
Paul Sokolovsky
ad038ca101
tests/class_descriptor.py: Fix line-endings (were CRLF).
2015-03-28 01:07:00 +02:00
stijn
28fa84b445
py: Add optional support for descriptors' __get__ and __set__ methods.
...
Disabled by default. Enabled on unix and windows ports.
2015-03-26 23:55:14 +00:00
Paul Sokolovsky
c260836beb
docs: uctypes: Describe bytes_at(), bytearray_at().
2015-03-27 00:19:23 +02:00
Daniel Campora
1eba62cac9
cc3200: Remove unneeded SPI instruction in the simplelink driver.
...
Setting the word count before a SPI transaction is only needed when
using DMA.
2015-03-26 20:50:39 +01:00
Daniel Campora
1826036a83
cc3200: Increase main stack size to 2K.
...
Increasing it from 1K to 2K gives more freedom to the callback
handlers, before this, simply nesting a function call into a
printf would cause a stack overflow.
2015-03-26 20:50:38 +01:00
Damien George
51229afbde
py: Increase fixed size of stack-info in native emitter.
...
This is a temporary fix.
2015-03-26 17:54:12 +00:00
Damien George
4112590a60
py, compiler: When just bytecode, make explicit calls instead of table.
...
When just the bytecode emitter is needed there is no need to have a
dynamic method table for the emitter back-end, and we can instead
directly call the mp_emit_bc_XXX functions. This gives a significant
reduction in code size and a very slight performance boost for the
compiler.
This patch saves 1160 bytes code on Thumb2 and 972 bytes on x86, when
native emitters are disabled.
Overall savings in code over the last 3 commits are:
bare-arm: 1664 bytes.
minimal: 2136 bytes.
stmhal: 584 bytes (it has native emitter enabled).
cc3200: 1736 bytes.
2015-03-26 16:52:45 +00:00
Damien George
a210c774f9
py, compiler: Remove emit_pass1 code, using emit_bc to do its job.
...
First pass for the compiler is computing the scope (eg if an identifier
is local or not) and originally had an entire table of methods dedicated
to this, most of which did nothing. With changes from previous commit,
this set of methods can be removed and the methods from the bytecode
emitter used instead, with very little modification -- this is what is
done in this commit.
This factoring has little to no impact on the speed of the compiler
(tested by compiling 3763 Python scripts and timing it).
This factoring reduces code size by about 270-300 bytes on Thumb2 archs,
and 400 bytes on x86.
2015-03-26 16:52:45 +00:00
Damien George
542bd6b4a1
py, compiler: Refactor load/store/delete_id logic to reduce code size.
...
Saves around 230 bytes on Thumb2 and 750 bytes on x86.
2015-03-26 16:52:45 +00:00
Daniel Campora
760a6eca9b
cc3200: Minor refactorings on modwlan and pybsleep.
2015-03-26 14:27:21 +01:00
Daniel Campora
4be44014ab
cc3200: Reenable active interrupts when waking from suspended mode.
2015-03-26 13:58:58 +01:00
Paul Sokolovsky
0090c714ba
objdict: Cast mp_obj_t to concrete types explicitly.
...
Continuation of refactoring applied previously to objlist.
2015-03-26 12:28:56 +02:00
Daniel Campora
2d717ad97a
cc3200: Add callback support to the UART for RX interrupts.
2015-03-26 10:28:43 +01:00
Daniel Campora
e909e38871
cc3200: Remove superflous parameters from the SPI API.
2015-03-26 10:28:41 +01:00
Damien George
23d7fd526d
tests: Skip some new tests when testing native emitter.
2015-03-25 23:33:48 +00:00
Damien George
214179b430
tests: Add tests for SyntaxError, TypeError, and other missing things.
...
This is intended to improve coverage of the test suite.
2015-03-25 23:10:09 +00:00
Damien George
44f65c0e2f
py: Fix bug in compiler which allowed through illegal augmented assign.
...
It allowed such things as (a, b) += c.
2015-03-25 23:06:48 +00:00
Damien George
5e1d993f54
py: Clean up some logic in VM to remove assert(0)'s.
...
Saves around 30 bytes code on Thumb2 archs.
2015-03-25 22:20:37 +00:00
Damien George
aedf583af2
py: Simplify some logic in compiler; add comments about CPython compat.
2015-03-25 22:06:47 +00:00
Daniel Campora
7f41f650de
cc3200: Remove superflous params from the I2C API.
2015-03-25 16:56:14 +01:00
Daniel Campora
26d230419c
cc3200: Add GPIO25 to the pins list of the WiPy and the WiPy-SD.
...
This allows to properly initialize the system led and add it
to the sleep module so that it can be restored when resuming
from suspended mode.
2015-03-25 15:22:32 +01:00