Commit Graph

10444 Commits

Author SHA1 Message Date
Scott Shawcroft 5939497218
Merge pull request #740 from jepler/reboot-bootloader
atmel-samd: Fix rebooting to bootloader
2018-04-03 22:35:39 -07:00
Jeff Epler 5eb9f9d060 atmel-samd: Fix rebooting to bootloader
Commit efbf08266b moved _estack in order to ensure 8-byte alignment
of the stack, but the address of _bootloader_dbl_tap must remain
right at the end of SRAM.

I verified by reading the source that the 4-byte-aligned address is
used for all samd21 / samd51 boards in
adafruit/circuitpython@efbf08266b.  However, I only tested on
trinket_m0.

Closes: #739
2018-04-03 21:40:10 -05:00
Dan Halbert beb6ad2e40 Add USB HID support, including Consumer Control 2018-04-02 21:37:44 -04:00
Dan Halbert 435e894fa0 Merge branch 'master' into 3.0_hid 2018-04-02 19:19:43 -04:00
Dan Halbert d005b12326 WIP: seems to be done 2018-04-02 19:08:18 -04:00
Scott Shawcroft 98c7d70fe4
Merge pull request #736 from jepler/testsuite-serial-travis
travis.yml: Running tests in parallel on travis is slower
2018-04-02 10:32:19 -07:00
Scott Shawcroft b0184362a2
Merge pull request #730 from jepler/remove-appveyor-circuitpython
ports/windows: Remove appveyor.yml
2018-04-02 10:30:03 -07:00
Jeff Epler c0ef427a98 travis.yml: Running tests in parallel on travis is slower
.. so explicitly set them to run serially with -j1.

(as discussed on #729)
2018-04-02 08:06:49 -05:00
Jeff Epler c592b0e0f8 ports/windows: Remove appveyor.yml
.. this allows developers who want to work with both micropython and
circuitpython to enable appveyor on their fork, but not get errors
when pushing circuitpython changes.

In the appveyor configuration for your fork, simply enable the
checkbox "Skip branches without appveyor.yml".
2018-04-02 07:59:12 -05:00
Scott Shawcroft fc9340ca17
Merge pull request #733 from pewpew-game/gamepad-pull
Respect pin's pull in gamepad
2018-04-01 22:58:25 -07:00
Scott Shawcroft 630352c25d
Merge pull request #732 from pewpew-game/gamepad-typecheck
Add a type check to the gamepad module
2018-04-01 22:53:54 -07:00
Scott Shawcroft e4ae1e3d59
Merge pull request #734 from jepler/str-find-backwards-circuitpython
py/objstr: Don't crash when end < start
2018-04-01 22:41:59 -07:00
Scott Shawcroft b62d8faaec
Merge pull request #735 from jepler/generator-stack-overflow-circuitpython
py/objgenerator: Check stack before resuming a generator
2018-04-01 22:38:19 -07:00
Jeff Epler a909007fef py/objgenerator: Check stack before resuming a generator
This turns a hard crash in a recursive generator into
a 'maximum recursion depth exceeded' exception.
2018-04-01 16:40:15 -05:00
Jeff Epler 0041df0c6b py/objstr: Don't crash when end < start
.. and add testcases for the same.

(crash found by afl-fuzz)
2018-03-31 22:17:11 -05:00
Radomir Dopieralski 280374fa63 Respect pin's pull in gamepad
While it is traditional to have buttons on pins that are pulled up, and
have the button connect them to the ground, some CircuitPython boards
(notably the CPX) have the button pins pulled low and the button
connects them to VCC.

This patch makes the gamepad only change the pin's pull if it wasn't
already set when passed to the constructor, and also makes it consider
a button pressed when its value is the opposite of its pull.
2018-03-31 21:13:02 +02:00
Radomir Dopieralski 6ca4fd82ed Add a type check to the gamepad module
Make sure that all the arguments passed are indeed DigitalInOut.
This avoids crashes when the users pass something else.
2018-03-31 20:41:16 +02:00
Scott Shawcroft 3215b85568
Merge pull request #728 from jepler/double-splat-crash-circuitpython
py/bc: Turn assertion error into exception
2018-03-31 09:57:25 -07:00
Scott Shawcroft d65ea992bf
Merge pull request #729 from jepler/tests-parallel-circuitpython
Optionally parallelize the testsuite
2018-03-31 09:55:21 -07:00
Jeff Epler f8e0baa0b7 appveyor: parallelize tests 2018-03-31 10:43:57 -05:00
Jeff Epler b59964f707 ports/unix/Makefile: parallelize tests 2018-03-31 10:42:33 -05:00
Jeff Epler 0dfc3be903 run_tests: EXTERNAL_TARGETS can't run in parallel 2018-03-31 10:40:37 -05:00
Jeff Epler c1cd259529 travis.yml: best guesses about when to run tests in parallel
Notably, "--via-mpy" spews failures when threaded, possibly indicating
that micropython is not creating mpy files in threadsafe manner.
2018-03-31 10:39:55 -05:00
Jeff Epler c2b8529698 run-tests: automatically parallelism based on CPU (thread) count 2018-03-31 10:38:54 -05:00
Jeff Epler a3309ebb80 run-tests: optionally parallelize tests
When requested via 'run-tests -j', more than one test will be run
at a time.  On my system, (i5-3320m with 4 threads / 2 cores), this
reduces elapsed time by over 50% when testing pots/unix/micropython.

Elapsed time, seconds, best of 3 runs with each -j value:

before patchset: 18.1
            -j1: 18.1
            -j2: 11.3  (-37%)
            -j4:  8.7  (-52%)
            -j6:  8.4  (-54%)

In all cases the final output is identical:
    651 tests performed (18932 individual testcases)
    651 tests passed
    23 tests skipped: buffered_writer...
though the individual pass/fail messages can be different/interleaved.
2018-03-31 10:38:54 -05:00
Jeff Epler b9dd6a5bb4 run-tests: sort skipped and failed tests
.. otherwise the line which reports tests skipped and failed can come in
different orders when -j values above 1 are used.
2018-03-31 10:38:54 -05:00
Jeff Epler a73f005e00 run_tests: make access to shared variables thread safe 2018-03-31 10:38:52 -05:00
Jeff Epler 4767d23db3 run_tests: factor run_one_test to function 2018-03-31 10:38:04 -05:00
Jeff Epler 853f7ac4d0 py/bc: Turn assertion error into exception 2018-03-31 08:44:29 -05:00
Dan Halbert c00b25ec45 WIP: HID works with MSC interfaces removed 2018-03-30 23:31:28 -04:00
Dan Halbert df91878d2e WIP: works with just keyboard but not complex report descriptor 2018-03-30 23:24:00 -04:00
Scott Shawcroft 1489450693
Merge pull request #727 from sommersoft/build_doc
Added git submodule Step To SAMD README
2018-03-30 15:59:39 -07:00
sommersoft 8af98d0dc9 ambiguized directory paths 2018-03-30 22:44:16 +00:00
sommersoft a5b60647be improved arrangement 2018-03-30 22:26:21 +00:00
sommersoft 7c0be04696 verbiage cleanup 2018-03-30 22:21:35 +00:00
sommersoft c70acab8b3 updated README; added git submodule info 2018-03-30 22:16:36 +00:00
sommersoft 6ee573c7c9
Merge branch 'master' into super_status 2018-03-30 14:27:39 -05:00
Dan Halbert bee0d2edb4
Merge pull request #710 from jepler/assertion-failures-to-exceptions
Assertion failures to exceptions
2018-03-30 13:47:55 -04:00
Jeff Epler ff06a45599 Fix assertion failures in super_attr
micropython: ../../py/objtype.c:1100: super_attr: Assertion `MP_OBJ_IS_TYPE(self->type, &mp_type_type)' failed.

e.g., when making calls like
    super(1, 1).x
2018-03-29 06:42:10 -05:00
Jeff Epler 6da8d7c465 Fix assertion failures in mp_obj_new_type
Fixes the following assertion failures when the arguments to type()
were not of valid types:
micropython: ../../py/objtype.c:984: mp_obj_new_type: Assertion `MP_OBJ_IS_TYPE(bases_tuple, &mp_type_tuple)' failed.
micropython: ../../py/objtype.c:994: mp_obj_new_type: Assertion `MP_OBJ_IS_TYPE(items[i], &mp_type_type)' failed.

e.g., when making calls like
    type("", (), 3)
    type("", 3, {})
2018-03-29 06:42:10 -05:00
Jeff Epler a55988a547 Fix assertion failure in mpz_divmod_inpl
.. turning this from an assertion failure into an exception:
    pow(1,1,0)
2018-03-29 06:42:10 -05:00
Scott Shawcroft 676ed4e199
Merge pull request #724 from tannewt/fix_freetouch_submodule
Remove freetouch files that were accidentally checked in and
2018-03-28 14:24:32 -07:00
Scott Shawcroft 7b2215a27c
Merge pull request #723 from jepler/high-quality-float-hash
Enable high-quality float hash
2018-03-28 14:16:32 -07:00
Scott Shawcroft 19b0b414e6 Remove freetouch files that were accidentally checked in and
readd the submodule.
2018-03-28 14:04:53 -07:00
Jeff Epler abec199c19 Enable high-quality float hash
This appears to have a relatively small impact on flash usage but
fixes some pathological slow behavior putting floats in dicts or sets.

Closes: #704
2018-03-27 21:56:30 -05:00
Scott Shawcroft 6711c5c90d
Merge pull request #712 from jepler/fslabel
Add ability to get, set filesystem label from CircuitPython
2018-03-27 19:51:48 -07:00
Jeff Epler 34f5498760 Document storage.VfsFat more thoroughly 2018-03-27 21:28:19 -05:00
Jeff Epler 9c47fd9c13 Specifically give a better error message for setlabel on RO fs 2018-03-27 21:28:19 -05:00
Jeff Epler fe7f405fc7 Add VfsFat.label property
These allow accessing the filesystem label.  For instance,
in boot.py, you can set the label on the built-in storage with:
   storage.remount('/', False)
   storage.getmount('/').label = "NEWLABEL"
   storage.remount('/', True)

Users with multiple CIRCUITPY boards may find it desirable to
choose a different label for each board they own.
2018-03-27 21:28:18 -05:00
Jeff Epler c08f5a3a00 Add storage.getmount to retrieve the mount object associated with a path 2018-03-27 21:28:18 -05:00