Welcome to The Bootloader. We’re excited to return after an extended break. For episode 7, we dive into the just released CircuitPython 9 and discuss what we’re excited about and some of the new features.
Full transcript available here.
Welcome! This is all about the new CircuitPyton 9.0 release
jpegio
, ESP-IDF update, USB Host, parelleldisplaybus
jpegio
, CIRCUITPY on Android, ConnectionManager, USB Hostjpegio
and the Memento Camerajpegio
bitmapfilter
usb.core
The “split heap” code from MicroPython now enables us to use heap allocation outside the VM, which was very awkward before: any dynamic storage allocation could only be done once, before the VM started. The heap then used the remaining RAM. Now there is an “outside” heap which can be used while the VM is running, and that storage will not be garbage collected. So various storage allocations that used to be static can now be dynamic, such as stuff needed for USB setup. We also removed the “long-lived storage” scheme that was added a long time ago to reduce fragmentation. In that scheme, storage that we expected to live a very long time (mostly allocations for compiled bytecode) was allocated at one end of the heap, and shorter-lived storage (like the temp storage used during compilation) was allocated at the other end. Part of the scheme involved moving allocated objects and adjusting pointers. The moving caused some inherent but obscure problems where objects’ identities seemed to change.
Now long-lived storage is gone, because it was not very compatible with the split-heap scheme. This may cause some projects on small-RAM boards like SAMD21 not to work any more due to increaed fragmentation. We have some ideas for doing something like long-lived storage in a different way that wouldn’t involve moving objects, but that won’t be in 9.
paralleldisplaybus
paralleldisplaybus
instead of SPIadafruit_requests
and MiniMQTT to manage sockets.displayio
changes:display.show()
deprecateddisplayio
drivers have movedsocket.setsockopt(pool.SOL_SOCKET, pool.SO_REUSEADDR, 1)
, as in CPython.If you like what you hear, one of the best things you can do to help the show is tell a friend or write a review.