-
Release 0.27.0
03/06/2022 at 00:01 • 0 commentsThis release fixes outstanding issues with multiprocessing on the Raspberry Pi Pico and other compatible RP2040-based boards, where one could not write to flash after the second core had been booted without undefined conditions resulting, and where one could not erase flash after the second core had been booted and then write to flash afterwards without the MCU locking up. This release also adds a new heap allocator which now uses free lists to allocate memory and which eliminates some apparent bugs in the old heap allocator.
-
Patch-level release 0.26.4
02/26/2022 at 03:52 • 0 commentsThis patch-level release fixes
ms
so that delayed tasks with higher priority properly give up control of the processor to other tasks of lower priority. -
Patch-level release 0.26.3
02/04/2022 at 05:19 • 0 commentsThis patch-level release fixes a remaining issue in
kill
in moduletask
wherekill
locks up the current task if it is killing the only other task on the same core. -
Patch-level release 0.26.2
02/04/2022 at 03:39 • 0 commentsThis patch-level release fixes a bug in KILL in the TASK module which results in CURRENT-TASK KILL locking up the system. -
Patch-level release 0.26.1
02/03/2022 at 04:07 • 0 commentsThis patch-level release fixes the issues with interrupt-driven serial IO when multicore operation has been initiated on the Raspberry Pi Pico, where previously multicore operation required interrupt-driven serial IO to be disabled prior to booting the second core. Additionally, critical sections have been added to interrupt-driven serial IO and the swdcom driver to reduce (but not eliminate) the chance of RX and TX buffer state corruption when multiple tasks are attempting to transmit or receive bytes simultaneously.
-
Release 0.26.0
01/31/2022 at 02:22 • 0 commentsThis release reworks the words
.
,u.
,d.
,ud.
, andf.
so that the space displayed along with the number comes after the number rather than before. Accordingly, significant changes were made to test code to take this into account. Additionally, non-breaking optimizations were made to the multitasker by reducing the number of values that need to be saved and restored during a context switch. Also, random number generator support was added for the Raspberry Pi PIco. -
Patch-level release 0.25.1
01/28/2022 at 03:06 • 0 commentsThis patch-level release fixes some issues with the multitasker when used with multicore operation on the RP2040 which were not previously addressed.
-
Release 0.25.0
01/22/2022 at 23:54 • 0 commentsThis release adds true symmetric multiprocessing support for the Raspberry Pi Pico (RP2040). Now can tasks on different cores not only share and communicate across cores for multitasking communication and synchronization constructions such as semaphores, locks, queue channels, rendezvous channels, bidirectional channels, and byte-oriented streams. Also, tasks can now be spawned on arbitrary cores regardless of the core of the spawning task.
-
Release 0.24.0
12/24/2021 at 04:37 • 0 commentsThis release adds maps, including ones specialized for counted string and integer keys, shortens module names by removing
-module
from them, introduces private modules, reworks intertask communication words so they no longer return the buffer passed to them (instead only returning the length received), and reworks data unpacking words so they likewise do not expect a buffer to be returned to them. -
Release 0.23.0
12/17/2021 at 04:06 • 0 commentsThis release adds synchronous bidirectional reply channels (aka "rchannels"), separates data packaging from intertask communication words as
PROVIDE-ALLOT-CELL
, etc. andEXTRACT-ALLOT-CELL
, etc., and revamps the module system so thatIMPORT
andUNIMPORT
take modules as normal arguments and thatBEGIN-IMPORT-MODULE
andCONTINUE-IMPORT-MODULE
are eliminated, replaced by replacing theEND-MODULE
at the end of a module definition with a new word,END-MODULE>
, which ends a module definition but places the module on the data stack, followed byIMPORT
.