Commit Graph

8137 Commits

Author SHA1 Message Date
Paul Sokolovsky
ed81574fe9 docs/machine: Fix formatting of Constants section.
Render related constants grouped together, with common description.
2017-02-28 00:38:15 +03:00
Bander Ajba
12a6cb0fbf fixed temp module to allow for instance support 2017-02-27 21:46:53 +03:00
Bander Ajba
e52ebb095c fixed temp module to allow for instance support 2017-02-27 21:37:32 +03:00
Damien George
528aeb3bf3 drivers/display/lcd160cr: Add check that JPEG size is less than 65536. 2017-02-27 18:39:35 +11:00
Damien George
f4a12dca58 py/objarray: Disallow slice-assignment to read-only memoryview.
Also comes with a test for this.  Fixes issue #2904.
2017-02-27 16:09:57 +11:00
Krzysztof Blazewicz
23ccb3e12e tools/gen-cpydiff.py: configurable CPython and micropython executables 2017-02-27 15:39:55 +11:00
Krzysztof Blazewicz
ae116c2430 docs/Makefile: define and use PYTHON as the interpreter for CPYDIFF
User can override PYTHON executable before running script,
gen-cpydiff.py works only with Python3 and most systems register
its executable as 'python3'.
2017-02-27 15:39:55 +11:00
Damien George
ad81a2e6cf minimal: Add ability and description to build without the compiler. 2017-02-27 15:09:15 +11:00
Damien George
3b2fd4df31 lib/utils/pyexec: Allow to compile when the uPy compiler is disabled. 2017-02-27 15:02:32 +11:00
glennrub
56cf514627 Merge pull request #2 from dhylands/fix-makefile
Fix up Makefile dependencies
2017-02-26 17:39:09 +01:00
Bander Ajba
66542c34b9 did required modification to merge the temperature sensore module 2017-02-26 11:17:07 +03:00
Bander Ajba
378c40b4da did required modification to merge the temperature sensore module 2017-02-26 11:14:17 +03:00
Dave Hylands
d3c3fa4a74 Fix up Makefile dependencies
I also didn't see any real reason for mkrules.mk to exist,
so I merged the contents into Makefile.

Now you can do:
```
make BOARD=pca10028 clean
make BOARD=pca10028 flash
```
and it will work properly.
2017-02-25 16:52:46 -08:00
Glenn Ruben Bakke
dcd980381d nrf5: Updating Makefile to use correct variable for setting directory of file to freeze as mpy. 2017-02-26 01:30:33 +01:00
Glenn Ruben Bakke
65f3e16775 nrf5: Setting stack top in main.c. Thanks dhylands for pointing this out. 2017-02-26 01:29:13 +01:00
Paul Sokolovsky
e2f1a8a7ee docs/uhashlib: Provide port-neutral description.
TODO: Remove WiPy-specific chunks.
2017-02-26 00:55:33 +03:00
Paul Sokolovsky
0982884655 extmod/modurandom: Use mp_raise_ValueError().
For the standard unix x86_64 build, this saves 11 bytes on object file
level, but no difference in executable size due to (bloaty) code alignment.
2017-02-24 10:04:23 -05:00
Paul Sokolovsky
4b3da60324 py/runtime: mp_raise_msg(): Accept NULL argument for message.
In this case, raise an exception without a message.

This would allow to shove few code bytes comparing to currently used
mp_raise_msg(..., "") pattern. (Actual savings depend on function code
alignment used by a particular platform.)
2017-02-24 09:57:25 -05:00
Glenn Ruben Bakke
64b23e1127 nrf5/sdk: Backing up progress in BLE UART driver. Adding ringbuffer in order to poll bytes from recieved data in REPL main loop. 2017-02-24 15:14:12 +01:00
Glenn Ruben Bakke
bfda169dfe nrf5/modules: Updating ubluepy example to print out gatts write events with data. 2017-02-24 15:08:32 +01:00
Glenn Ruben Bakke
e60a06563e nrf5/boards: Updating pca10028 bluetooth stack targets to have a MCU_SUB_VARIANT. 2017-02-24 15:03:53 +01:00
Damien George
6771adc75f esp8266/mpconfigport.h: Enable help('modules') feature. 2017-02-24 18:26:51 +11:00
Damien George
8400d0461d drivers/display/lcd160cr: Fix bug with save_to_flash method. 2017-02-24 17:22:57 +11:00
Paul Sokolovsky
f5ee4d95a9 cc3200/moduos: Remove uos.sep, as it's strictly optional.
In MicroPython, the path separator is guaranteed to be "/", extra unneeded
things take precious code space (in the port which doesn't have basic things
like floating-port support).
2017-02-23 22:10:58 -08:00
Damien George
f615d82d5b py/parse: Simplify handling of errors by raising them directly.
The parser was originally written to work without raising any exceptions
and instead return an error value to the caller.  But it's now required
that a call to the parser be wrapped in an nlr handler, so we may as well
make use of that fact and simplify the parser so that it doesn't need to
keep track of any memory errors that it had.  The parser anyway explicitly
raises an exception at the end if there was an error.

This patch simplifies the parser by letting the underlying memory
allocation functions raise an exception if they fail to allocate any
memory.  And if there is an error parsing the "<id> = const(<val>)" pattern
then that also raises an exception right away instead of trying to recover
gracefully and then raise.
2017-02-24 14:56:37 +11:00
Damien George
5255255fb9 py: Create str/bytes objects in the parser, not the compiler.
Previous to this patch any non-interned str/bytes objects would create a
special parse node that held a copy of the str/bytes data.  Then in the
compiler this data would be turned into a str/bytes object.  This actually
lead to 2 copies of the data, one in the parse node and one in the object.
The parse node's copy of the data would be freed at the end of the compile
stage but nevertheless it meant that the peak memory usage of the
parse/compile stage was higher than it needed to be (by an amount equal to
the number of bytes in all the non-interned str/bytes objects).

This patch changes the behaviour so that str/bytes objects are created
directly in the parser and the object stored in a const-object parse node
(which already exists for bignum, float and complex const objects).  This
reduces peak RAM usage of the parse/compile stage, simplifies the parser
and compiler, and reduces code size by about 170 bytes on Thumb2 archs,
and by about 300 bytes on Xtensa archs.
2017-02-24 13:43:43 +11:00
Damien George
f62503dc47 tests/micropython: Add test for consts that are bignums. 2017-02-24 13:08:18 +11:00
Damien George
74f4d2c659 py/parse: Allow parser/compiler consts to be bignums.
This patch allows uPy consts to be bignums, eg:

    X = const(1 << 100)

The infrastructure for consts to be a bignum (rather than restricted to
small integers) has been in place for a while, ever since constant folding
was upgraded to allow bignums.  It just required a small change (in this
patch) to enable it.
2017-02-24 13:03:44 +11:00
Bander Ajba
3882b0e2ff added support for hardware temperature sensor 2017-02-24 00:38:08 +03:00
Glenn Ruben Bakke
6b898d1d67 nrf5/sdk: Adding macro based ringbuffer written by Philip Thrasher. source: https://github.com/pthrasher/c-generic-ring-buffer/blob/master/ringbuffer.h. Copyright noticed copied into the file, and file reviewed by Philip. 2017-02-23 21:52:23 +01:00
Glenn Ruben Bakke
f10abda60a nrf5/sdk: Updating bluetooth le driver to extract data length and pointer from the event structure upon gatts write operation. 2017-02-22 19:54:02 +01:00
Glenn Ruben Bakke
7fee0cdde1 nrf5/modules: Expose ubluepy characteristic and peripheral types as external declaration in ublupy header. 2017-02-22 19:10:18 +01:00
Damien George
1034d9acc8 tools/gen-cpydiff.py: Set the Python import path to find test modules. 2017-02-22 15:50:58 +11:00
Damien George
047af9b10b cc3200: Remove socket.timeout class, use OSError(ETIMEDOUT) instead.
socket.timeout is a subclass of OSError, and using the latter is more
efficient than having a dedicated class.  The argument of OSError is
ETIMEDOUT so the error can be distinguished from other kinds of
OSErrors.  This follows how the esp8266 port does it.
2017-02-22 15:08:32 +11:00
Damien George
d03f089baa cc3200/mods/modusocket: Init vars to 0 to silence compiler warnings.
Some compilers can't analyse the code to determine that these variables
are always set before being used.
2017-02-22 14:58:37 +11:00
Damien George
e859ddf3e1 cc3200: Enable uerrno module with short, custom list of error codes.
Since we recently replaced the OSError string messages with simple error
codes, having the uerrno module gets back some user friendly error
messages.  The total code size (after removing strings, replacing with
uerrno module) is decreased.
2017-02-22 12:58:11 +11:00
Damien George
b1b090255c py/moduerrno: Make list of errno codes configurable.
It's configurable by defining MICROPY_PY_UERRNO_LIST.  If this is not
defined then a default is provided.
2017-02-22 12:58:11 +11:00
Damien George
f563406d2e py/moduerrno: Make uerrno.errorcode dict configurable.
It's configured by MICROPY_PY_UERRNO_ERRORCODE and enabled by default
(since that's the behaviour before this patch).

Without this dict the lookup of errno codes to strings must use the
uerrno module itself.
2017-02-22 12:58:11 +11:00
Damien George
22a6344ebe cc3200: When raising OSError's use MP_Exxx as arg instead of a string. 2017-02-22 12:58:11 +11:00
Damien George
8bb8e97dfe cc3200: Convert to using uPy internal errno numbers. 2017-02-22 12:58:11 +11:00
Damien George
85ab469c64 cc3200: Move wlan socket glue functions from modwlan to modusocket.
It saves about 400 bytes of code space because the functions can now be
inlined.
2017-02-22 11:29:19 +11:00
Glenn Ruben Bakke
09fd2b86d1 nrf5: Updating main to initialize bluetooth le uart module right before bluetooth REPL is started. 2017-02-21 23:38:35 +01:00
Glenn Ruben Bakke
3e66898c37 nrf5/sdk: Updating bluetooth le uart implemenatation to block until cccd is written. 2017-02-21 23:37:52 +01:00
Damien George
71ae3f389d cc3200: Remove remaining references to std.h. 2017-02-21 18:01:43 +11:00
Damien George
b0a6dda115 drivers/display/lcd160cr: Fix bugs with lcd.get_pixel().
Fixes issues #2880 and #2881.
2017-02-21 17:40:34 +11:00
Damien George
8c5988bf61 cc3200/mods/modwlan: Add int casts to silence compiler warnings. 2017-02-21 17:29:40 +11:00
Damien George
0258f819bd cc3200/mods/modwlan: Allow antenna diversity to be fully compiled out. 2017-02-21 17:29:02 +11:00
Damien George
a162832b1a cc3200/mods/modwlan: Make multi-threaded a proper compile-time option. 2017-02-21 17:28:14 +11:00
Damien George
26ddd4b621 cc3200/mods/modwlan: Remove unused header includes; simplify others. 2017-02-21 17:27:17 +11:00
Damien George
1c35270667 cc3200: Remove util/std.h, can just use stdio.h instead. 2017-02-21 17:26:21 +11:00