Commit Graph

8117 Commits

Author SHA1 Message Date
Damien George
a5a84e1f85 py/emitnative: Use assertions and mp_not_implemented correctly.
Assertions are used to check expressions that should always be true,
and mp_not_implemented is used for code that can be reached.
2017-03-14 23:05:40 +11:00
Rami Ali
8a57cacd78 tests/extmod: Improve tinfgzip.c test coverage. 2017-03-14 22:13:36 +11:00
Damien George
a49a96bb5d tests/extmod/vfs_basic: Unmount all existing devices before doing test.
This is so the test can run successfully on targets that already have
something mounted.
2017-03-14 22:08:37 +11:00
Damien George
923ec1169f tests/run-tests: Re-instate skipping of doubleprec test on pyboard. 2017-03-14 22:07:52 +11:00
Damien George
3f7aa330fd lib/utils/pyexec: Fix bug with pyexec_file not setting flag for source. 2017-03-14 21:53:46 +11:00
Damien George
05fec17d9b tests/basics/struct_micropython: Add test for 'S' typecode in ustruct.
The 'S' typecode is a uPy extension so it should be grouped with the other
extension (namely 'O' typecode).  Testing 'S' needs uctypes which is an
extmod module and not always available, so this test is made optional and
will only be run on ports that have (u)struct and uctypes.  Otherwise it
will be silently skipped.
2017-03-14 18:27:43 +11:00
Rami Ali
77cbd173df tests: Improve binary.c test coverage. 2017-03-14 18:27:29 +11:00
Glenn Ruben Bakke
4a97cfe3ea nrf5/modules/ubluepy: Populating ubluepy_scan_entry_obj_t with members that are interesting to keep for the ScanEntry object. 2017-03-14 08:20:28 +01:00
Glenn Ruben Bakke
c066344a14 nrf5/bluetooth: Moving callback definitions to bluetooth driver header. Refactoring bluetooth driver, setting new names on callback functions and updating api to use new callback function name prefix. 2017-03-14 08:13:32 +01:00
Glenn Ruben Bakke
e028eda0bc nrf5/modules/ubluepy: Extracting advertisment reports and adding some data to list before returning it in scan() method. 2017-03-14 08:05:54 +01:00
Glenn Ruben Bakke
9b0d893b4d nrf5/bluetooth: Adding handling of advertisment reports in bluetooth driver and issue callback to ubluepy. A bit ugly implmentation and has to be re-worked. 2017-03-14 08:04:24 +01:00
Glenn Ruben Bakke
6fc806b313 nrf5/bluetooth: adding adv report data structure to pass to ubluepy upon adv report event. Adding new api for setting callack where to handle advertisment events in ubluepy. 2017-03-14 07:59:29 +01:00
Glenn Ruben Bakke
ada69c40c6 nrf5/modules/ubluepy: Adding adv_reports member to scanner object, to hold the result of scan. 2017-03-14 07:57:20 +01:00
Rami Ali
4e86ca398f tests/extmod: Improve re1.5/recursiveloop.c test coverage. 2017-03-14 17:17:45 +11:00
Damien George
773b0bac41 tests/extmod/vfs_basic: Add more tests for basic VFS functionality. 2017-03-14 16:07:30 +11:00
Damien George
d1ae6ae080 py/objint: Allow to print long-long ints without using the heap.
Some stack is allocated to format ints, and when the int implementation uses
long-long there should be additional stack allocated compared with the other
cases.  This patch uses the existing "fmt_int_t" type to determine the
amount of stack to allocate.
2017-03-14 14:54:20 +11:00
Damien George
4f29b315a6 esp8266: Only execute main.py if in friendly REPL mode. 2017-03-14 13:04:03 +11:00
Damien George
e1782042f5 teensy/lexerfrozen: Make mp_lexer_new_from_file raise an exception. 2017-03-14 11:52:05 +11:00
Damien George
97142000f7 mpy-cross/main: Move lexer constructor to within NLR handler block. 2017-03-14 11:52:05 +11:00
Damien George
68e1c4f068 pic16bit/main: Make mp_lexer_new_from_file raise an exception. 2017-03-14 11:52:05 +11:00
Damien George
41b1df6046 lib/memzip: Make lexer constructor raise exception when file not found. 2017-03-14 11:52:05 +11:00
Damien George
21420b13c0 examples/embedding: Place lexer constructor within NLR handler block.
The lexer constructor may now raise an exception and it needs to be caught.
2017-03-14 11:52:05 +11:00
Damien George
52f8f5666a esp8266: Update lexer constructors so they can raise exceptions. 2017-03-14 11:52:05 +11:00
Damien George
180045bce9 zephyr/main: Move lexer constructor to within NLR handler block.
And raise an exception when mp_lexer_new_from_file is called.
2017-03-14 11:52:05 +11:00
Damien George
25b6b62562 qemu-arm: Move lexer constructors to within NLR handler block.
And raise an exception when mp_lexer_new_from_file is called.
2017-03-14 11:52:05 +11:00
Damien George
bcd5adc65e minimal/main: Move lexer constructor to within NLR handler block.
And raise an exception when mp_lexer_new_from_file is called.
2017-03-14 11:52:05 +11:00
Damien George
c72a5f8c79 bare-arm/main: Move lexer constructor to within NLR handler block.
And raise an exception when mp_lexer_new_from_file is called.
2017-03-14 11:52:05 +11:00
Damien George
33a77ea25f unix/main: Refactor to put lexer constructors all in one place.
The lexer can now raise an exception on construction so it must go within
an nlr handler block.
2017-03-14 11:52:05 +11:00
Damien George
56b238393b lib/utils/pyexec: Refactor to put lexer constructors all in one place.
The lexer can now raise an exception on construction so it must go within
an nlr handler block.
2017-03-14 11:52:05 +11:00
Damien George
1831034be1 py: Allow lexer to raise exceptions during construction.
This patch refactors the error handling in the lexer, to simplify it (ie
reduce code size).

A long time ago, when the lexer/parser/compiler were first written, the
lexer and parser were designed so they didn't use exceptions (ie nlr) to
report errors but rather returned an error code.  Over time that has
gradually changed, the parser in particular has more and more ways of
raising exceptions.  Also, the lexer never really handled all errors without
raising, eg there were some memory errors which could raise an exception
(and in these rare cases one would get a fatal nlr-not-handled fault).

This patch accepts the fact that the lexer can raise exceptions in some
cases and allows it to raise exceptions to handle all its errors, which are
for the most part just out-of-memory errors during construction of the
lexer.  This makes the lexer a bit simpler, and also the persistent code
stuff is simplified.

What this means for users of the lexer is that calls to it must be wrapped
in a nlr handler.  But all uses of the lexer already have such an nlr
handler for the parser (and compiler) so that doesn't put any extra burden
on the callers.
2017-03-14 11:52:05 +11:00
Damien George
9773506ab1 pic16bit/main: Make nlr_jump_fail never return. 2017-03-14 11:50:50 +11:00
Paul Sokolovsky
9c9674a325 zephyr/main: Remove unused __fatal_error(). 2017-03-14 00:19:35 +03:00
Glenn Ruben Bakke
5fc6a9d9a2 nrf5/modules/machine: Cleaning up uart a bit more. Removing unused any() method, and aligning print and local dict names to use machine_uart prefix. 2017-03-13 17:56:39 +01:00
Damien George
8891b2e700 tests/extmod: Add a test for core VFS functionality, sans any filesystem. 2017-03-13 21:42:02 +11:00
Damien George
0a3ac07ec7 extmod/vfs: Rewrite path lookup algo to support relative paths from root.
For example, if the current directory is the root dir then this patch
allows one to do uos.listdir('mnt'), where 'mnt' is a valid mount point.
Previous to this patch such a thing would not work, on needed to do
uos.listdir('/mnt') instead.
2017-03-13 21:37:21 +11:00
Damien George
a7a2344c9d qemu-arm: Add basic uos module with generic VFS capabilities. 2017-03-13 21:24:28 +11:00
Damien George
643876fb77 extmod/vfs_fat: Allow to compile with MICROPY_VFS_FAT disabled.
Some ports may want to compile with generic MICROPY_VFS support but without
the VfsFat class.  This patch allows such a thing.
2017-03-13 21:23:31 +11:00
Glenn Ruben Bakke
51c739f64a nrf5/bluetooth: Turn off bluetooth printf logging. 2017-03-12 23:32:33 +01:00
Glenn Ruben Bakke
c8127ef337 nrf5: Add back ublupy scanner and scan entry source files in Makefile. 2017-03-12 23:24:37 +01:00
Glenn Ruben Bakke
6ea3f3c69b nrf5/bluetooth: Enable implementation in scan start function in the bluetooth stack driver. 2017-03-12 23:23:37 +01:00
Glenn Ruben Bakke
a01a3734f8 nrf5/boards: Adjust heap end after increased .data usage in nrf52832 s132 linker script. 2017-03-12 23:20:53 +01:00
Glenn Ruben Bakke
5580ac8200 nrf5/bluetooth: Adding more implementation in scan start function. However, commented out for time beeing, as there is some memory issues when activating central. 2017-03-12 22:46:40 +01:00
Glenn Ruben Bakke
9aa3df7955 nrf5: Removing ubluepy scanner and scan entry from Makefile source list until nrf52 central issues has been resolved. 2017-03-12 22:45:02 +01:00
Paul Sokolovsky
f5aac7d33f zephyr/main: nlr_jump_fail: Fix noreturn warning. 2017-03-13 00:43:36 +03:00
Paul Sokolovsky
40e541063f zephyr: Move "minimal" configuration building to a separate wrapper script.
Minimal config can be now build with:

./make-minimal BOARD=...

This is required because of Makefile.exports magic, which in its turn depends
on PROJ_CONF to be set correctly at the beginning of Makefile parsing at all
times. Instead of adding more and more workarounds for that, it's better to
just move minimal support to a separate wrapper.

Also, remove Zephyr 1.5 era cruft from Makefile, and add support for Zephyr's
"run" target which supercedes older "qemu" target in upstream.
2017-03-12 23:54:12 +03:00
Paul Sokolovsky
736a8a8ac7 zephyr: Make sure that generated prj.conf is updated only on content changes.
This is a typical problem with make: we want to trigger rebuilds only
if file actually changed, not if its timestamp changed. In this case,
it's aggravated by the fact that prj.conf depends on the value of
BOARD variable, so we need to do some tricks anyway. We still don't
try to detect if just BOARD changed, just try to generate new
prj.conf.tmp every time (quick), but do actual replacement of prj.conf
only if its content changed.
2017-03-12 22:28:45 +03:00
Glenn Ruben Bakke
caf242a5ae nrf5/bluetooth: Correcting indention. 2017-03-12 20:20:15 +01:00
Glenn Ruben Bakke
739bf3a740 nrf5/bluetooth: Adding some implementation to scan_start function. 2017-03-12 20:18:37 +01:00
Glenn Ruben Bakke
89095f861f nrf5/modules/ubluepy: Adding scan method to the Scanner object. Adding locals dict table. 2017-03-12 19:52:12 +01:00
Glenn Ruben Bakke
471d6a05da nrf5/bluetooth: Adding empty scan_start and scan_stop function to the bluetooth driver. 2017-03-12 19:50:38 +01:00