-
Patch-level release 0.22.2
12/14/2021 at 03:54 • 0 commentsThis patch-level release fixes a reliability issue introduced into rendezvous channels (fchannels) and makes changes to the workings of
READY
,DELAY
,BLOCK-TIMEOUT
,BLOCK-INDEFINITE
,BLOCK-WAIT
, etc. to avoid unnecessaryPAUSE
calls for greater performance in a variety of use cases. -
Patch-level release 0.22.1
12/13/2021 at 05:20 • 0 commentsThis patch-level release fixes introduced issues in queue channels and streams that had rendered them non-functional and adds an important optimization to rendezvous channels that significantly increases their performance.
-
Release 0.22.0
12/12/2021 at 23:58 • 0 commentsThis release includes multicore support (including support for multitasking on the second core) for the RP2040, adds task notifications for higher-performance communication between tasks, revamps the module system (having separate
BEGIN-MODULE
andCONTINUE-MODULE
, etc., adding the ability to refer to identifiers by a "path", and addingEXPORT
), and fixes some bugs (e.g. in string literal parsing). -
Beta release 0.22.0b1
11/29/2021 at 02:48 • 0 commentsThis beta release adds task notifications for lightweight task communication and synchronization to the multitasker. These task notifications permit significantly higher-performance task communication and synchronization than is possible with other means with the limitations that there may only be a single receiving task for communication and synchronization at a time, unlike with semaphores or channels, and that only a single cell may be communicated at a time.
-
Beta release 0.22.0b0
11/25/2021 at 21:43 • 0 commentsThis beta release adds multicore support for the Raspberry Pi Pico and other supported RP2040 boards, which includes functioning multitasking on both cores simultaneously. It should be noted that each core functions largely independently aside from sharing RAM and flash, with interaction between cores being mediated through hardware spinlocks and FIFO's (mailboxes); the two multitasking environments for the two cores must not interact with one another, and attempting to do so will result in an undefined state. There are some limitations so far, such as that interrupt-driven serial IO must be disabled before booting the second core, and that once the second core has been booted, the MCU must be power-cycled, and not merely rebooted, or otherwise, prior to writing to flash or otherwise the MCU will crash; this is why I am making this a beta release and not a normal release.
-
Patch-level release 0.21.2
10/18/2021 at 01:57 • 0 commentsThis bug-fix release fixes some omissions in the disassembler and expands the "minidictionary" for the RP2040 to 4096 words from 2048 words (because it was running out of room).
-
Patch-level release 0.21.1
10/16/2021 at 22:01 • 0 commentsThis patch-level release adds PIO support for the RP2040 along with example code which makes use of it.
-
Release 0.21.0 (Now with RP2040 support!)
10/10/2021 at 22:23 • 0 commentsRelease 0.21.0 adds RP2040, specifically Raspberry Pi Pico (even though other boards using the RP2040 with Winbond Quad SPI flash chips should also work), support to zeptoforth. It comes with UF2 files and has the ability to generate UF2 files just from executing
make
, so one will not need to use SWD (which for the Raspberry Pi Pico in practice means soldering extra pins) to load zeptoforth onto RP2040-using boards. It also has the ability the automatically erase old compiled Forth code upon loading a UF2 file, so one will not need the likes of OpenOCD to erase existing data on the board. (Note that it only erases up until the 1 MB mark to enable future functionality which may enable storing data in flash above this mark.) -
Patch-level release 0.20.2
08/27/2021 at 02:16 • 0 commentsThis patch-level release fixes EVALUATE (which previously did not allow the depth of the stack to change between before and after), and replaces WARM with REBOOT in the source code to avoid build problems on the STM32F746.
-
Patch-level release 0.20.1
08/26/2021 at 03:01 • 0 commentsThis is a patch-level release which reworks fchannels to be true rendezvous channels which only do one copy for each message sent rather than two, as it did previously, and which does away with the fixed sizes previously set for fchannels. Note that there are some minor API changes associated with this, specifically that
fchan-size
andinit-fchan
no longer take size parameters.