-
Release 0.56.0
01/07/2023 at 23:16 • 0 commentsThis release has working SPI, SDHC/SDXC card, and FAT32 support on all supported platforms (note that on STM32 platforms NSS must be turned disabled and SSM needs to be enabled and selected for the SPI peripheral in use when using SDHC/SDXC cards) and adds the words
s>d
,d>s
,s>f
, andf>s
for converting between single-cell, double-cell, and S31.32 fixed-point values. -
Release 0.55.0
01/03/2023 at 00:03 • 0 commentsThis release adds a 'monitor' functionality optionally started with
start-monitor
in themonitor
module which adds the ability to use "attention" (i.e. Control-T or, in zeptocom.js, the Attention button) followed byt
to list all running tasks even when the REPL is not active, an ability to set hooks to be called when tasks terminate, task termination reason functionality which is exposed to task termination hooks and to any other tasks that may wish to query a given task, and an expansion of the capabilities ofdump-tasks
in thetask
module to dump information on tasks on both cores on the RP2040 (i.e. the Raspberry Pi Pico). -
Release 0.54.0
01/01/2023 at 21:09 • 0 commentsThis release adds the ability to send exceptions to tasks with
signal
in thetask
module, which can be done within an interrupt handler, and using this adds an "attention" key, mapped to Control-T, which takes a (currently single-character) command even when the console is not being read and acts on it; currently the only "attention" key command isz
, which sends an exception to the main task (with the general goal being to return control to the REPL after allowing cleanup to take place). Additionallymain-task
in thetask
module has been changed so it always refers to the main task of the first core on the RP2040, whereas previously it would refer to the initial core of the second core when executed within the second core. Last but not least, a fix has been made to a bug where the console would be practically unusable if the second core was booted on the RP2040. -
Release 0.53.0
12/31/2022 at 22:57 • 0 commentsThis release adds Control-C support at the console to reboot the microcontroller (which is used by the 'Reboot' button in the latest zeptocom.js), providing it is not severely wedged, adds optimizations for sending and receiving bytes as master over SPI, fixes a lurking bug where the incorrect use of
bis!
to set NVIC registers in theinterrupt
module was masking a significant interrupt-handling bug in multicore operation on the RP2040 by incorrectly clearing pending interrupts which would otherwise be unhandled, and fixes the aforementioned RP2040 multicore interrupt bug which was unmasked by fixing the aforementioned incorrect use ofbis!
. -
Patch-level release 0.52.3
12/25/2022 at 00:03 • 0 commentsThis patch-level release fixes a number of concurrency bugs, particularly ones affecting multicore operation on the Raspberry Pi Pico.
-
Patch-level release 0.52.2
12/24/2022 at 02:13 • 0 commentsThis patch-level release fixes a couple significant bugs in the multitasker and peripheral support for the Raspberry Pi Pico with regard to multicore operation; booting the second core was incorrectly resetting
systick-counter
to 0, which was causing problems with other tasks, particularly tasks in the midst of a delay, and interrupts were not being properly initialized when the second core was being booted, which was causing problems with regard to the I2C peripherals of the RP2040 in particular. Also note that interrupts are now being used by the SPI peripherals of the RP2040, whereas previously interrupts had not been properly initialized for such. -
Patch-level release 0.52.1
12/17/2022 at 04:42 • 0 commentsThis patch-level release adds the capability to create closures with arbitrary numbers of bound values with
nbind
in theclosure
module. -
Release 0.52.0
12/16/2022 at 03:57 • 0 commentsThis release adds closures which may be created with
bind
or2bind
in theclosure
module. These serve to provide a means to produce arbitrary execution tokens which are bound with runtime-specified data at arbitrary addresses, which may be replaced or disposed of as the user sees fit, unlike words defined with<builds
anddoes>
, which are permanently defined and can only be disposed of through erasing flash, if compile to flash, or rebooting, if compiled to RAM. -
Patch-level release 0.51.1
12/11/2022 at 03:40 • 0 commentsThis patch-level release adds word annotations to the fault output, making it easier for the user to identify the location of faults in the codebase.
-
Release 0.51.0
12/10/2022 at 04:58 • 0 commentsThis release adds best-effort fault recovery, with, if possible, faults in the main task resulting in the user being returned to the REPL, faults in other tasks resulting in those tasks being terminated, and faults in hardware interrupt/exception handlers, with the exception of the hardfault handler, resulting in the user being returned to a REPL in a recovery mode where interrupts (and thus multitasking) is not available. When faults occur, information relating to the state of the system at the time and place of the fault, including the PC, registers, data stack contents, and return stack contents, are output on the console.