| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
| |
In CPython IOError (and EnvironmentError) is deprecated and aliased to
OSError. All modules that used to raise IOError now raise OSError (or a
derived exception).
In Micro Python we never used IOError (except 1 place, incorrectly) and
so don't need to keep it.
See http://legacy.python.org/dev/peps/pep-3151/ for background.
|
|
|
|
|
|
|
|
|
|
| |
Viper can now do the following:
def store(p:ptr8, c:int):
p[0] = c
This does a store of c to the memory pointed to by p using a machine
instructions inline in the code.
|
| |
|
| |
|
|
|
|
|
| |
Also add start of ujson module with dumps implemented. Enabled in unix
and stmhal ports. Test passes on both.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Addresses issue #827.
|
|
|
|
|
|
|
|
|
| |
Viper functions can now be annotated with the type of their arguments
and return value. Eg:
@micropython.viper
def f(x:int) -> int:
return x + 1
|
| |
|
|
|
|
| |
Also disable gc module on bare-arm port.
|
| |
|
|
|
|
|
|
|
|
| |
reversed function now implemented, and works for tuple, list, str, bytes
and user objects with __len__ and __getitem__.
Renamed mp_builtin_len to mp_obj_len to make it publically available (eg
for reversed).
|
|\
| |
| | |
Add support for storing args during an exception raised by an irq.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The user code should call micropython.alloc_emergency_exception_buf(size)
where size is the size of the buffer used to print the argument
passed to the exception.
With the test code from #732, and a call to
micropython.alloc_emergenncy_exception_buf(100) the following error is
now printed:
```python
>>> import heartbeat_irq
Uncaught exception in Timer(4) interrupt handler
Traceback (most recent call last):
File "0://heartbeat_irq.py", line 14, in heartbeat_cb
NameError: name 'led' is not defined
```
|
|/ |
|
|
|
|
|
| |
And not system printf(), like it was before. For this, move pfenv_printf()
from stmhal port to py/.
|
| |
|
|
|
|
|
| |
But much smaller and memory-efficient. Uses Python builtin data structures
(dict, tuple, int) to describe structure layout.
|
|
|
|
|
| |
Implementing it as a static constant is a bit peculiar and require cooperation
from long int implementation.
|
|
|
|
| |
Return free/allocated memory on GC heap.
|
|
|
|
|
|
|
|
| |
Functionality we provide in builtin io module is fairly minimal. Some
code, including CPython stdlib, depends on more functionality. So, there's
a choice to either implement it in C, or move it _io, and let implement other
functionality in Python. 2nd choice is pursued. This setup matches CPython
too (_io is builtin, io is Python-level).
|
| |
|
|
|
|
|
| |
Ports which wants to have it, should define MICROPY_PY_SYS_PLATFORM to a
string value they need.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Addresses issue #598.
|
|
|
|
| |
Now of the form MICROPY_PY_*. See issue #35.
|
| |
|
|
|
|
|
|
|
| |
io.FileIO is binary I/O, ans actually optional. Default file type is
io.TextIOWrapper, which provides str results. CPython3 explicitly describes
io.TextIOWrapper as buffered I/O, but we don't have buffering support yet
anyway.
|
|
|
|
|
|
|
|
|
|
|
| |
Now schedule is: for native types, we call ->make_new() C-level method, which
should perform actions of __new__ and __init__ (note that this is not
compliant, but is efficient), but for user types, __new__ and __init__ are
called as expected.
Also, make sure we convert scalar attribute value to a bound-pair tight in
mp_obj_class_lookup() method, which avoids converting it again and again in
its callers.
|
|
|
|
| |
sep=None is TODO.
|
| |
|
| |
|
| |
|
|
|
|
| |
Tired of patching CPython stdlib for it.
|
|
|
|
| |
bytecode is the more widely used. See issue #590.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Need to have a policy as to how far we go adding keyword support to
built ins. It's nice to have, and gets better CPython compatibility,
but hurts the micro nature of uPy.
Addresses issue #577.
|
| |
|
|
|
|
|
|
|
| |
Blanket wide to all .c and .h files. Some files originating from ST are
difficult to deal with (license wise) so it was left out of those.
Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Of course, keywords are turned into lexer tokens in the lexer, so will
never need to be interned (unless you do something like x="def").
As it is now, the following on pyboard makes no new qstrs:
import pyb
pyb.info()
|
| |
|
|
|
|
| |
Few other strings move to core, but make depend on "io" module.
|
| |
|
|
|
|
| |
Share code with .strip(). TODO: optimize .rstrip().
|