-
Release 0.20.0
08/25/2021 at 03:15 • 0 commentsThis release adds semaphores along with streams for byte-granularity queues for inter-task communication, non-blocking operations upon channels and streams, temporary buffers for allocating temporary areas of memory, string literals that can be used in immediate state (using temporary buffers as storage), named tasks, and functionality for dumping information on the tasks in the schedule. Additionally, the set of builds for each supported platform has been rationalized to just full, full_swdcom, mini, and mini_swdcom builds.
-
Release 0.19.0
08/16/2021 at 00:00 • 0 commentsThis release adds optional timeouts to locks, channels, and fchannels and adds arbitrary element sizes to channels and fchannels while also reworking blocking operations upon tasks. It also fixes a number of issues with locks, channels, and fchannels.
-
Patch-level release 0.18.1
06/20/2021 at 23:21 • 0 commentsThis patch-level release reworks the functioning of the task scheduler internally; no significant API level changes or bug fixes have been made.
-
Release 0.18.0
06/11/2021 at 03:37 • 0 commentsThis release revamps the interrupt handling of zeptoforth. Instead of using a fixed vector table in flash which calls a limited number of trampolines, which in turn call interrupt handlers, the vector table is moved into RAM on boot, and every vector can have its own separate handler, with no trampolines needed. By this interrupt handling is not only faster, but can be more fine-grained because different interrupts do not need to share handlers. Another change is that SysTick timing has been fixed for the STM32L476, as it previously was generating SysTicks at half the expected rate.
-
Release 0.17.0
06/09/2021 at 01:59 • 0 commentsThis release renames the byte-oriented words to begin with the prefix
c
rather than the prefixb
to bring zeptoforth more in line with the naming conventions used by other Forths. Additionally, the lambda combinators have been renamed to make their names more succinct and more conventional. -
Patch-level release 0.16.2
05/29/2021 at 05:27 • 0 commentsThis patch-level release adds an EXTI API along with fixing a bug where the multitasker was spending too much time with interrupts disabled, which was impacting interrupt-dependent programs (such as an LMT01 temperature sensor driver) and fixing a bug where time was being reported as progressing as half its actual rate on the STM32F407. Additionally, an LMT01 temperature sensor driver along with an implementation of Conway's Game of Life using sixels are included.
-
Patch-level release 0.16.1
05/03/2021 at 00:56 • 0 commentsThis patch-level release fixes a major bug in
2!
where it left its final argument on the stack. -
Release 0.16.0
04/27/2021 at 03:08 • 0 commentsThis release moves clock configuration out of the zeptoforth kernel and into the Forth userland. It also adds random number generator drivers to each of the supported platforms, along with changing the system clock of the STM32L476 from 48 MHz to 72 MHz.
-
Patch-level release 0.15.2
04/11/2021 at 19:59 • 0 commentsThis patch-level release includes action pools, a GPIO API, adjustable timeslices for tasks, support for more efficient use of external flash memory when available space is tight, the ability to close (and reopen) channels and fast channels, and support for inserting and deleting rows in the block editor.
-
Patch-level release 0.15.1
03/29/2021 at 02:59 • 0 commentsThis patch-level release is an add-on to release 0.15.0 which renames each of the wordlist constants from
*-wordlist
to*-module
, to make the programmer interface more consistent.