4673 Commits

Author SHA1 Message Date
stijn
90fae9172a py/objarray: Add support for memoryview.itemsize attribute.
This allows figuring out the number of bytes in the memoryview object as
len(memview) * memview.itemsize.

The feature is enabled via MICROPY_PY_BUILTINS_MEMORYVIEW_ITEMSIZE and is
disabled by default.
2019-05-14 17:15:17 +10:00
Scott Shawcroft
f29de51325
Check native object in case of early access
If a native displayio object is accessed before it's super().__init__()
has been called, then a placeholder is given that will cause a crash if
accessed. This is tricky to get right so we detect this case and raise
a NotInplementedError instead of crashing.

Fixes #1881
2019-05-13 17:31:30 -07:00
Henrik Vendelbo
ab93321e31 py/persistentcode: Change "len" type to size_t for mp_obj_str_get_data. 2019-05-13 12:38:06 +10:00
Dan Halbert
8664a6574b use approx of original @godlygeek code for smallints; add tests 2019-05-12 11:17:29 -04:00
Dan Halbert
d103ac1d63 Handle truth values; speed up smallint checks 2019-05-12 00:10:53 -04:00
Matt Wozniski
1d0c61642b Reverse int to bytes buffer overflow conditionals
Rather than jumping to a label when an overflow is known to have
occurred, return early when one is known not to have.
2019-05-09 22:03:12 -04:00
Matt Wozniski
f325bd848b Use OverflowError exception type for overflows
Initially I used one of the existing exception raise functions, but it's
more correct and not much more code to raise OverflowError instead.
2019-05-09 03:22:26 -04:00
Matt Wozniski
095c844004 Add overflow checks for int to bytes conversions
For both small and long integers, raise an exception if calling
struct.pack, adding an element to an array.array, or formatting an int
with int.to_bytes would overflow the requested size.
2019-05-09 03:22:25 -04:00
Damien George
c0a1de3c21 py/misc.h: Rename _MP_STRINGIFY to not use leading underscore in ident.
Macro identifiers with a leading underscore are reserved.
2019-05-09 17:11:33 +10:00
Damien George
4268d0e1ac py/objgenerator: Remove unneeded forward decl and clean up white space. 2019-05-09 13:49:07 +10:00
Damien George
dac9d47671 py/objgenerator: Fix handling of None passed as 2nd arg to throw().
Fixes issue #4527.
2019-05-09 13:40:28 +10:00
Scott Shawcroft
9ce042ad07
Merge pull request #1865 from terriko/mpy_error
Make status light flash blue for incompatible mpy (fixes #1369)
2019-05-08 20:22:59 -04:00
Terri Oda
8d9c2f3e9d Make MpyError a ValueError (since that's what it was before) 2019-05-08 13:58:31 -07:00
Terri Oda
a9b05d37d7 Make status light flash blue for incompatible mpy (fixes #1369) 2019-05-08 11:54:08 -07:00
Scott Shawcroft
bec84f20ab
Merge pull request #1859 from scottbelden/tabbing
enter four spaces when there are no matches
2019-05-08 14:49:11 -04:00
scottbelden
786cb40073 enter four spaces when there are no matches 2019-05-07 13:55:20 -04:00
Kathryn Lingel
eb3cb4d99b Fix tests and clarify first character access 2019-05-07 09:30:55 -07:00
Damien George
7e90e22ea5 mpy-cross: Add --version command line option to print version info.
Prints something like:

MicroPython v1.10-304-g8031b7a25 on 2019-05-02; mpy-cross emitting mpy v4
2019-05-07 13:54:20 +10:00
Kathryn Lingel
54aa1ce6de Filter private methods from tab completion 2019-05-06 12:16:29 -07:00
Jun Wu
089c9b71d1 py: remove "if (0)" and "if (false)" branches.
Prior to this commit, building the unix port with `DEBUG=1` and
`-finstrument-functions` the compilation would fail with an error like
"control reaches end of non-void function".  This change fixes this by
removing the problematic "if (0)" branches.  Not all branches affect
compilation, but they are all removed for consistency.
2019-05-06 18:28:28 +10:00
Yonatan Goldschmidt
ef9843653b extmod/moducryptolib: Add AES-CTR support.
Selectable at compile time via MICROPY_PY_UCRYPTOLIB_CTR.  Disabled by
default.
2019-05-06 18:09:48 +10:00
Damien George
5ea38e4d74 py/native: Improve support for bool type in viper functions.
Variables with type bool now act more like an int, and there is proper
casting to/from Python objects.
2019-05-03 23:18:30 +10:00
Damien George
9ef784dcc6 py/asmthumb: Support asm_thumb code running on normal ARM processors.
With this change, @micropython.asm_thumb functions will work on standard
ARM processors (that are in ARM state by default), in scripts and
precompiled .mpy files.

Addresses issue #4675.
2019-05-01 15:24:21 +10:00
Damien George
27d22d8712 py/mpprint: Support printing %ld and %lu formats on 64-bit archs.
Fixes issue #4702.
2019-04-23 12:40:15 +10:00
Scott Shawcroft
54ef87c6de
Correct collect of permanent pointers.
The previous implementation managed to keep all but the head
pointer of the list.

Fixes #1814
2019-04-18 15:44:44 -07:00
Scott Shawcroft
713a38d1a2
Merge pull request #1754 from dmazzella/dmazzella-patch-1
add support for USER_C_MODULES
2019-04-17 09:41:20 -07:00
Scott Shawcroft
6132a05fd9
Include cleanup and style tweaks 2019-04-16 10:19:07 -07:00
Scott Shawcroft
0e03a321e4
Fully split gamepadshift from gamepad 2019-04-16 10:11:54 -07:00
Scott Shawcroft
c927e6b938
Split GamePadShift from GamePad to save space on most boards. 2019-04-15 15:40:06 -07:00
Damien George
9ce25d7022 py/runtime: Fix mp_unpack_ex so seq can't be reclaimed by GC during use.
The issue described in the comment added here can be seen by forcing a
gc_collect() at the start of each call to gc_alloc().
2019-04-15 11:30:19 +10:00
Damien George
3fa06cf61e py/objset: Remove unused forward declaration and clean up whitespace. 2019-04-15 11:14:22 +10:00
Damien George
1754c71f45 py/runtime: Optimise to not create temp float for int to power negative. 2019-04-15 11:04:59 +10:00
Radomir Dopieralski
4dc286fa14 Reorganize the gamepad code 2019-04-12 20:43:29 +02:00
Damien George
673e154dfe py/makedefs: Use io.open with utf-8 encoding when processing source.
In case (user) source code contains utf-8 encoded data and the default
locale is not utf-8.

See #4592.
2019-04-12 11:34:52 +10:00
Scott Shawcroft
debff19126
Check for null local dictionaries 2019-04-10 14:48:27 -07:00
Scott Shawcroft
a152ac1cef
Merge remote-tracking branch 'adafruit/master' into pybadge_revd 2019-04-10 10:58:45 -07:00
Scott Shawcroft
5028f87b09
Tweak pybadge and fix display bugs
* Update pybadge pins and flash for rev D
* TileGrid now validates the type of the pixel_shader.
* Display actually handles incoming subclass objects.
* MicroPython will inspect native parents to see if special
  accessors are used.
2019-04-09 18:32:52 -07:00
Scott Shawcroft
ee7a77db65
Check that a never free pointer is on the heap.
This fixes a crash on boards with built-in displays which statically
allocate the display bus. When the pointer is provided to never
free, it tries to allocate on the non-existant heap and crashes.
2019-04-09 15:12:28 -07:00
Scott Shawcroft
72992070c5
Fix boards with no shared busses. 2019-04-09 11:36:10 -07:00
Scott Shawcroft
0f003ac5b8
Reorganize board busses into shared-bindings and shared-module. 2019-04-08 16:58:50 -07:00
Damiano Mazzella
b6b5eaa878
Update mkrules.mk 2019-04-05 21:41:40 +02:00
Damiano Mazzella
a20aab0491
Update obj.h 2019-04-05 21:41:10 +02:00
Damiano Mazzella
af38f882ec
Update objmodule.c 2019-04-05 21:40:28 +02:00
Damiano Mazzella
7549326ceb
Update py.mk 2019-04-05 21:39:44 +02:00
Damiano Mazzella
d1698230a1
Add files via upload 2019-04-05 21:38:32 +02:00
Dan Halbert
c9571fe1ea ROTARYIO_MODULE mistakenly omitted from module list 2019-04-01 17:59:59 -04:00
Dan Halbert
35ab1a1983 Turn on frequencyio only on CIRCUITPY_FULL_BUILD 2019-03-27 16:57:35 -04:00
Dan Halbert
4c1849ae7c turn on reversed() for all builds 2019-03-26 22:15:26 -04:00
Scott Shawcroft
2c93ce5a28
Merge pull request #1672 from dhalbert/regular-fs-flush
flush flash filesystem once a second
2019-03-26 13:47:43 -07:00
Romain Goyet
dce785cc3d py/nlrthumb: Add support for iOS where the C func is _nlr_push_tail. 2019-03-26 16:48:11 +11:00