| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
| |
Thumb uses a bit less RAM, bytecode uses a tiny bit more, to avoid
overflow of the dummy buffer in certain cases.
Addresses issue #599.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Addresses issue #558, but it's likely that other out-of-memory errors
could crash the pyboard. Reason is that qstrs use m_new and can raise
an exception within the parser.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
Parser shouldn't raise exceptions, so needs to check when memory
allocation fails. This patch does that for the initial set up of the
parser state.
Also, we now put the parser object on the stack. It's small enough to
go there instead of on the heap.
This partially addresses issue #558.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
MicrpPython test should print single "SKIP" line for test to be skipped.
|
| |
|
| |
|
|
|
|
| |
Takes 416 text bytes on x86.
|
|
|
|
| |
Tired of patching CPython stdlib for it.
|
|
|
|
|
|
|
|
|
|
|
| |
"object" type in MicroPython currently doesn't implement any methods, and
hopefully, we'll try to stay like that for as long as possible. Even if we
have to add something eventually, look up from there might be handled in
adhoc manner, as last resort (that's not compliant with Python3 MRO, but
we're already non-compliant). Hence: 1) no need to spend type trying to
lookup anything in object; 2) no need to allocate subobject when explicitly
inheriting from object; 3) and having multiple bases inheriting from object
is not a case of incompatible multiple inheritance.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This patch simplifies the glue between native emitter and runtime,
and handles viper code like inline assember: return values are
converted to Python objects.
Fixes issue #531.
|
|
|
|
| |
Addresses issue #592.
|
| |
|
|
|
|
| |
bytecode is the more widely used. See issue #590.
|
| |
|
|
|
|
| |
Should support everything supported by strings.
|
|
|
|
| |
So one has some chance to convert numeric op code into symbol.
|
|\
| |
| | |
Add modtime implementation for mingw
|
|/ |
|
|\ |
|
| | |
|
|/
|
|
| |
Also, "upgrade" project to "early beta", and elaborate pyboard description.
|
| |
|
|
|
|
|
|
|
| |
time.time: returns seconds since 1/1/2000, as an integer.
time.localtime: Returns 8-tuple: (year, month, date, hour, minute,
second, weekday, yearday).
|
|\
| |
| | |
Windows MS Visual C port
|
| |
| |
| |
| | |
Extend the windows port so it compiles with the toolchain from Visual Studio 2013
|
|/
|
|
|
|
|
|
|
|
|
| |
You can now do:
X = const(123)
Y = const(456 + X)
and the compiler will replace X and Y with their values.
See discussion in issue #266 and issue #573.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is primarily intended to provide testing of Thumb-specific code within
Travis CI as well as if anyone else want to run it locally. As discussed in
purposes. This is currently agains an emulated Cortex-M3 core, however in
the near future it can extended to support M0, M0+ as well M4 (work in
progress exists in sushihangover/qemu).
It's probably true that most of the code base can be covered running uPy
natively on a POSIX system, however we do have the tiny bit of assembly
code. There may exist bugs related to endianness and type aliases, let
alone potential standard library or compiler bugs or even
architecture-specific optimisations.
This could also incorporate lwIP (or other TCP/IP stack) integration as well
as SDIO+FATFS drivers.
The solution to inline the test cases was chose due to simplicity. It could
alternatively be implemented in a number of different way (see #515), but
this looked the simplest.
Inclusion of tinytest was just to avoid writing boilerplate code for
counting failed tests and other utility functions. Currently only a few
functions are used, however this could be extended. Checking in the code
instead of using submodule was a personal preference, but if people do want
the pain of submodules, this can provided. This particular framework is
also pretty good if one desires to run unit test on target. The approach
with scripts being inlined is probably not quite suited for the size of
memory an MCU has, but the tinytest itself should be good, if lower-level C
code is to be unit tested.
|
| |
|
| |
|
| |
|
|\
| |
| | |
windows: Fix input.c missing in Makefile after changes for #582
|
| | |
|
| |
| |
| |
| |
| | |
Inspired by discussion in #577. So, in this case of builtin function,
passing args by keyword has less than 1% overhead.
|
| |
| |
| |
| |
| | |
Passing 3 args with keywords is for example 50% slower than via positional
args.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
... and we have not that bad mapping type after all - lookup time is ~ the
same as in one-attr instance. My namedtuple implementation on the other
hand degrades awfully.
So, need to rework it. First observation is that named tuple fields are
accessed as attributes, so all names are interned at the program start.
Then, really should store field array as qstr[], and do quick 32/64 bit
scan thru it.
|
|/
|
|
| |
That's higher than instance field access - behold the power of hashing.
|
| |
|
| |
|
| |
|