| Age | Commit message (Collapse) | Author |
|
|
|
|
|
These symbols are still defined in terms of the system Exxx symbols, and
can be switched to internal numeric definitions at a later stage.
Note that extmod/modlwip still uses many system Exxx symbols.
|
|
|
|
|
|
|
|
|
|
|
|
As reported on the forum by Roberthh.
|
|
This gives noticeable result for parsing simple input (modelled on 32-bit
unix port):
Before:
>>> micropython.mem_total()
3360
>>> micropython.mem_total()
4472
After:
>>> micropython.mem_total()
3072
>>> micropython.mem_total()
4052
However, effect on parsing large input is much less conclusive, e.g.:
Before:
>>> micropython.mem_total()
3376
>>> import pystone_lowmem
>>> micropython.mem_total()
33006
delta=29630
After:
>>> micropython.mem_total()
3091
>>> import pystone_lowmem
>>> micropython.mem_total()
32509
delta=29418
|
|
|
|
|
|
Effect measured on esp8266 port:
Before:
>>> pystone_lowmem.main(10000)
Pystone(1.2) time for 10000 passes = 44214 ms
This machine benchmarks at 226 pystones/second
>>> pystone_lowmem.main(10000)
Pystone(1.2) time for 10000 passes = 44246 ms
This machine benchmarks at 226 pystones/second
After:
>>> pystone_lowmem.main(10000)
Pystone(1.2) time for 10000 passes = 44343ms
This machine benchmarks at 225 pystones/second
>>> pystone_lowmem.main(10000)
Pystone(1.2) time for 10000 passes = 44376ms
This machine benchmarks at 225 pystones/second
|
|
This reverts commit 6de8dbb4880e58c68a08205cb2b9c15940143439. The change
was incorrect (correct change would require comparing with end pointer in
each if statement in the block).
|
|
vstr_null_terminated_str is almost certainly a vstr finalization operation,
so it should add the requested NUL byte, and not try to pre-allocate more.
The previous implementation could actually allocate double of the buffer
size.
|
|
By comparing with string end pointer instead of checking for NUL byte.
Should alleviate reallocations and fragmentation a tiny bit.
|
|
Previous to this patch bignum division and modulo would temporarily
modify the RHS argument to the operation (eg x/y would modify y), but on
return the RHS would be restored to its original value. This is not
allowed because arguments to binary operations are const, and in
particular might live in ROM. The modification was to normalise the arg
(and then unnormalise before returning), and this patch makes it so the
normalisation is done on the fly and the arg is now accessed as read-only.
This change doesn't increase the order complexity of the operation, and
actually reduces code size.
|
|
This is kind of compensation for 4K FatFs buffer size which is eaten away
from it on FS mount. This should still leave enough of networking ("OS")
heap.
|
|
This patch consolidates the Python logic for division/modulo to one place
within the bignum code.
|
|
When DIG_SIZE=32, a uint32_t is used to store limbs, and no normalisation
is needed because the MSB is already set, then there will be left and
right shifts (in C) by 32 of a 32-bit variable, leading to undefined
behaviour. This patch fixes this bug.
|
|
Also do that only for the first word in a line. The idea is that when you
start up interpreter, high chance that you want to do an import. With this
patch, this can be achieved with "i<tab>".
|
|
Starts WebREPL server in foreground and waits for (single) connection.
|
|
Initialisation of CAN objects should now behave as other peripheral
objects.
Fixes issue #2001.
|
|
This will launch about as many compiler instances as there are logical
processors on a machine, and as such significantly speeds up compilation.
|
|
The socket should either connect to `addr` or `addr_info[0][-1]`. Not to `addr[0][-1]`.
|
|
They fail on builds with 32-bit word size.
|
|
|
|
The type is an unsigned 8-bit value, since bytes objects are exactly
that. And it's also sensible for unicode strings to return unsigned
values when accessed in a byte-wise manner (CPython does not allow this).
|
|
This commit fixes issue #2045
|
|
|
|
|
|
|
|
|
|
It interferes with running testsuite. master branch should be optimized for
development, so any features which interfere with that, would need to be
disabled by default.
|
|
To get consistent error messages, etc.
|
|
Addresses issue #2034.
|
|
|
|
This constant is no longer part of hardware API (replaced with just None),
and is a default, so not needed in calls.
|
|
|
|
|
|
|
|
Also raise an exception for machine.freq and machine.deepsleep on this
MCU, since they are not yet implemented.
|
|
|
|
|
|
The main thing is to change the DMA code in a way that the structure
DMA_Stream_TypeDef (which is similar to DMA_Channel_TypeDef on stm32l4)
is no longer used outside of dma.c, as this structure only exists for the
F4 series. Therefore I introduced a new structure (dma_descr_t) which
handles all DMA specific stuff for configuration. Further the periphery
(spi, i2c, sdcard, dac) does not need to know the internals of the dma.
|
|
|
|
|
|
|
|
|
|
At http://micropython.org/webrepl .
|