Commit Graph

19364 Commits

Author SHA1 Message Date
Jeff Epler
607e4a905a build: parallelize the creation of qstr.i.last
Rather than simply invoking gcc in preprocessor mode with a list of files, use
a Python script with the (python3) ThreadPoolExecutor to invoke the
preprocessor in parallel.

The amount of concurrency is the number of system CPUs, not the makefile "-j"
parallelism setting, because there is no simple and correct way for a Python
program to correctly work together with make's idea of parallelism.

This reduces the build time of stm32f405 feather (a non-LTO build) from 16s to
12s on my 16-thread Ryzen machine.
2020-10-11 20:19:59 -05:00
Jeff Epler
c139eccc92 remove warning that seems unneeded now 2020-10-11 16:23:02 -05:00
Kenny
3c46e3a6aa
Turn off async for circuitplayground express
Firmware too large
2020-10-11 08:16:36 -07:00
Kenny
88db16a2c6 add translations 2020-10-10 23:50:12 -07:00
Kenny
98aa4b7943 update async tests with less upython workaround and more cpython compatibility 2020-10-10 23:39:32 -07:00
hexthat
6583e1087c Translated using Weblate (Chinese (Pinyin))
Currently translated at 100.0% (830 of 830 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/zh_Latn/
2020-10-11 01:51:31 +02:00
oon arfiandwi
e3378b7ccb Translated using Weblate (Indonesian)
Currently translated at 45.6% (379 of 830 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/id/
2020-10-11 01:51:31 +02:00
Wellington Terumi Uemura
f987b363c8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (830 of 830 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/
2020-10-11 01:51:31 +02:00
Hosted Weblate
940013a621 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2020-10-11 01:51:31 +02:00
dherrada
92fcb92138 Translated using Weblate (Spanish)
Currently translated at 100.0% (829 of 829 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/es/
2020-10-11 01:51:31 +02:00
Jeff Epler
40a3d11d64
Merge pull request #3535 from ladyada/main
fix for https://github.com/adafruit/circuitpython/issues/3534
2020-10-10 18:51:20 -05:00
Targett363
60deb321d1 adding USB PID VID 2020-10-10 23:55:05 +01:00
Kenny
5d96afc5c2 i do not know if this is needed but this is not the vm i use anymore 2020-10-10 15:45:08 -07:00
Kenny
bf849ff674 async def syntax rigor and __await__ magic method
Some examples of improved compliance with CPython that currently
have divergent behavior in CircuitPython are listed below:

* yield from is not allowed in async methods
```
>>> async def f():
...     yield from 'abc'
...
Traceback (most recent call last):
  File "<stdin>", line 2, in f
SyntaxError: 'yield from' inside async function
```

* await only works on awaitable expressions
```
>>> async def f():
...     await 'not awaitable'
...
>>> f().send(None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in f
AttributeError: 'str' object has no attribute '__await__'
```

* only __await__()able expressions are awaitable
Okay this one actually does not work in circuitpython at all today.
This is how CPython works though and pretending __await__ does not
exist will only bite users who write both.
```
>>> class c:
...     pass
...
>>> def f(self):
...     yield
...     yield
...     return 'f to pay respects'
...
>>> c.__await__ = f  # could just as easily have put it on the class but this shows how it's wired
>>> async def g():
...     awaitable_thing = c()
...     partial = await awaitable_thing
...     return 'press ' + partial
...
>>> q = g()
>>> q.send(None)
>>> q.send(None)
>>> q.send(None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration: press f to pay respects
```
2020-10-10 15:45:08 -07:00
warriorofwire
5cadf525bd fix missing cflag defeating the board gating 2020-10-10 15:45:08 -07:00
warriorofwire
f5f1e29dc0 disable async/await on a several small ucontrollers 2020-10-10 15:43:12 -07:00
warriorofwire
d94d2d2975 Add async/await syntax to FULL_BUILD
This adds the `async def` and `await` verbs to valid CircuitPython syntax using the Micropython implementation.

Consider:
```
>>> class Awaitable:
...     def __iter__(self):
...         for i in range(3):
...             print('awaiting', i)
...             yield
...         return 42
...
>>> async def wait_for_it():
...     a = Awaitable()
...     result = await a
...     return result
...
>>> task = wait_for_it()
>>> next(task)
awaiting 0
>>> next(task)
awaiting 1
>>> next(task)
awaiting 2
>>> next(task)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  StopIteration: 42
>>>
```

and more excitingly:
```
>>> async def it_awaits_a_subtask():
...     value = await wait_for_it()
...     print('twice as good', value * 2)
...
>>> task = it_awaits_a_subtask()
>>> next(task)
awaiting 0
>>> next(task)
awaiting 1
>>> next(task)
awaiting 2
>>> next(task)
twice as good 84
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  StopIteration:
```

Note that this is just syntax plumbing, not an all-encompassing implementation of an asynchronous task scheduler or asynchronous hardware apis.
  uasyncio might be a good module to bring in, or something else - but the standard Python syntax does not _strictly require_ deeper hardware
  support.
Micropython implements the await verb via the __iter__ function rather than __await__.  It's okay.

The syntax being present will enable users to write clean and expressive multi-step state machines that are written serially and interleaved
  according to the rules provided by those users.

Given that this does not include an all-encompassing C scheduler, this is expected to be an advanced functionality until the community settles
  on the future of deep hardware support for async/await in CircuitPython.  Users will implement yield-based schedulers and tasks wrapping
  synchronous hardware APIs with polling to avoid blocking, while their application business logic gets simple `await` statements.
2020-10-10 15:38:40 -07:00
Radomir Dopieralski
3f6ca7bd32 Make end-of-line-fixer happy 2020-10-10 23:59:44 +02:00
Targett363
5721cf0710 tidying up board names 2020-10-10 22:42:24 +01:00
Targett363
2aee2b7dc7 Corecting spelling mistake in build.yml 2020-10-10 22:33:52 +01:00
Targett363
ead0d51fd7 Commenting out Neopixel in pins.c 2020-10-10 22:22:01 +01:00
Targett363
cd935346ec Updating the build.yml to include both Module Clip boards 2020-10-10 22:11:44 +01:00
Targett363
74954286f0 Putting the Saola Wrover files back and adding my Wrover board files this time 2020-10-10 21:44:14 +01:00
Targett363
f38e868e90 Actually adding Wrover board files this time 2020-10-10 21:28:26 +01:00
Targett363
b9e308c248 Adding Wroom and Wrover board files 2020-10-10 21:11:06 +01:00
Jeff Epler
5e38bb98cb rgbmatrix: update protomatter to 1.0.5 tag
this is compile-tested on
 stm32f405 feather
 matrixportal
 nrf52840 feather

but not actually tested-tested.
2020-10-10 14:30:37 -05:00
Radomir Dopieralski
b227b79dec Fix #3504: Don't use time module in pew.tick()
The time.sleep() and time.monotonic() functions break the timer
interrupt on which PewPew10 display relies, so we can't use them
anymore. Instead I'm adding a time-keeping function to the display
code itself, which then can be used in pew.tick() internally.
2020-10-10 20:26:33 +02:00
lady ada
70a94c8d2d fix for https://github.com/adafruit/circuitpython/issues/3534 2020-10-10 12:27:35 -04:00
Scott Shawcroft
c7d87cea62
Merge pull request #3532 from tannewt/samd21_autoreload
Fix autoreload on SAMD21
2020-10-09 14:49:48 -07:00
Lucian Copeland
b435ef0272 Merge remote-tracking branch 'upstream/main' into esp32-analogout 2020-10-09 17:19:46 -04:00
Scott Shawcroft
375676ff58
Merge pull request #3501 from hierophect/esp32-analogin
ESP32S2: Add AnalogIn
2020-10-09 14:10:24 -07:00
Scott Shawcroft
699f19f44a
Merge pull request #3522 from tannewt/imx_metro
Unify iMX RT flash config and add Metro M7 1011
2020-10-09 13:48:58 -07:00
Scott Shawcroft
3ccf644dd0
Fix autoreload on SAMD21
The issue was that a time.sleep() would set the RTC wake up
further into the future even if we wanted to tick every ms. Ticking
every ms is used to time the autoreload delay and without it,
autoreload doesn't work.

Fixes #3528
2020-10-09 12:53:00 -07:00
Scott Shawcroft
e1a80aeb03
Merge pull request #3517 from microDev1/disableAutoReload
Disable auto-reload in safe mode
2020-10-09 11:00:32 -07:00
Lucian Copeland
ccbc15046a Fix submodule issue 2020-10-09 13:29:35 -04:00
Scott Shawcroft
506936ea2e
Merge pull request #3525 from UnexpectedCircuitPython/UM_S2_Boards
Fixed the FeatherS2 prerelease hardware name
2020-10-09 10:20:13 -07:00
Scott Shawcroft
1b307c90a7
Merge pull request #3527 from jepler/issue3526-actions-setenv
workflows: Replace deprecated ::set-env
2020-10-09 10:19:23 -07:00
askpatricw
2b2003f3e7 Set default hostname 2020-10-08 22:46:10 -07:00
Jeff Epler
3149f5bfd8 workflows: Replace deprecated ::set-env 2020-10-08 16:20:23 -05:00
Scott Shawcroft
b578afa02f
Merge pull request #3523 from tannewt/ble_connectionerror
Replace _bleio.ConnectionError with the native version
2020-10-08 13:00:06 -07:00
Ryan T. Hamilton
99f27bea61 Merge branch 'main' of https://github.com/adafruit/circuitpython into esp32s2-morenet 2020-10-08 12:43:52 -07:00
Lucian Copeland
5af1e054a7 Fix strange merge submodule edit 2020-10-08 14:57:41 -04:00
Jeff Epler
763e14f815
Merge pull request #3518 from weblate/weblate-circuitpython-main
Translations update from Weblate
2020-10-08 13:02:56 -05:00
Scott Shawcroft
76f431df70
Fix ble_hci 2020-10-08 11:02:14 -07:00
Lucian Copeland
b5f8321d37 Merge branch 'esp32-analogin' into esp32-analogout 2020-10-08 12:42:00 -04:00
Lucian Copeland
97d217a764 Merge remote-tracking branch 'upstream/main' into esp32-analogin 2020-10-08 12:34:58 -04:00
hexthat
860bba0555 Translated using Weblate (Chinese (Pinyin))
Currently translated at 99.8% (828 of 829 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/zh_Latn/
2020-10-08 18:22:34 +02:00
oon arfiandwi
e0f6d883f5 Translated using Weblate (Indonesian)
Currently translated at 43.9% (364 of 829 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/id/
2020-10-08 18:22:34 +02:00
oon arfiandwi
10b5ab1058 Translated using Weblate (Indonesian)
Currently translated at 42.0% (349 of 829 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/id/
2020-10-08 18:22:34 +02:00
hierophect
4bec77652b
Merge pull request #3519 from hathach/fix-idf-latest
fix espressif latest idf
2020-10-08 12:22:24 -04:00