Skip to content

Releases

0.2.2

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 05 Nov 16:35
92eda6b

Changed

  • Read the deferred ISR request count once inside the existing critical section.
  • Use pointer traversal for PERIODIC/DELAYED duplicate and removal searches.
  • Complete PARTED by its known active POLL index, preserving ordered compaction
    and multi-translation-unit dispatch.

Added

  • DELAYED sorted-prefix cache as the sole implementation: one SRAM byte per
    enabled DELAYED queue, full sorting after compaction, and invalidation on
    half-range deltas.

0.2.1

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 29 Oct 19:45
9fe1605

This maintenance release fixes PlatformIO package compatibility and updates documentation, installation instructions, and citation metadata.

Fixed

  • Corrected PlatformIO platform compatibility metadata to allow Arduino-compatible Generic targets, including projects using strict library compatibility checks.
  • Included docs/API.md, docs/CONFIGURATION.md, and docs/PLATFORMS.md in exported PlatformIO packages.
  • Added the platform documentation referenced by the README.
  • Updated API and configuration documentation for automatic AVR/Generic selection, independent IDLE/ISR switches, Generic execution restrictions, and multi-file projects.

Compatibility

  • AVR IDLE/ISR defaults and Generic backend behavior are preserved.
  • Existing Arduino sketches and PlatformIO example projects are unchanged.

0.2.0

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 29 Oct 16:58
cb74384

MTW TinyLoopScheduler 0.2.0 introduces a modular source structure and a portable Generic backend while preserving the existing ordinary-task API and default AVR behavior.

Added

  • Internal .h / .inc source split, retaining the same public include and header-only implementation.
  • Automatic AVR / Generic backend selection based on the build target.
  • Generic support for ordinary tasks and optional PARTED on Arduino-compatible targets, including Arduino Due, Uno R4 Minima, STM32, RP2040, and RP2350.
  • TLS_USE_IDLE to enable or remove the complete sleep subsystem at compile time.
  • Compile-time errors when unsupported IDLE or ISR support is explicitly enabled.

Changed

  • AVR keeps IDLE sleep and deferred ISR support enabled by default.
  • Generic disables both features by default.
  • Disabling IDLE also removes its timestamp storage, load heuristic, and IDLE skip-bit maintenance.
  • Updated platform metadata, documentation, and multi-file project guidance.

Compatibility

  • The ordinary-task public API, queue algorithms, and scheduler phase order are preserved.
  • Existing Arduino examples and PlatformIO projects are unchanged from 0.1.4.
  • The public include remains #include <MTW_TinyLoopScheduler.h>.
  • Multi-file projects retain the existing TLS_DECL_ONLY model: one translation unit owns the implementation, and additional .cpp files include declarations only.
  • Generic provides PERIODIC, DELAYED, POSTED, POLL, and optional PARTED. It requires a single main execution context and does not provide TLS hardware sleep or postISR().
  • With IDLE disabled, POLL callbacks may execute more frequently because scheduler passes no longer wait for an IDLE wake-up.

0.1.4

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 12 Jul 04:25
acfdcad

MTW TinyLoopScheduler v0.1.4

This release adds ready-to-use PlatformIO examples for MTW TinyLoopScheduler.

What's New

  • Added PlatformIO-compatible examples.
  • Added platformio.ini configuration files.
  • Added example project structures that can be opened, built, and uploaded directly in PlatformIO.
  • Preserved the existing Arduino IDE examples.

Compatibility

  • No library runtime behavior changes.
  • No public API changes.
  • Existing projects require no source-code or configuration changes.

0.1.3

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 11 Jul 05:30
e53c11a

MTW TinyLoopScheduler v0.1.3

This release adds configurable protection for the AVR sleep-mode selection and reduces deferred-ISR processing overhead.

Added

  • Added the TLS_SLEEP_GUARD compile-time option.
  • Added compile-time validation for TLS_SLEEP_GUARD.
  • Invalid values emit a compiler warning and fall back to TLS_ENABLE.

Sleep-mode behavior

TLS_SLEEP_GUARD defaults to:

#define TLS_SLEEP_GUARD TLS_ENABLE

0.1.2

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 08 Jul 11:12
eaeb635

MTW TinyLoopScheduler for PlatformIO

This is a packaging and documentation release focused on PlatformIO compatibility metadata and AVR target clarification.

Added

  • Added library.json manifest for PlatformIO package metadata.
  • Declared PlatformIO compatibility with:
    • atmelavr
    • atmelmegaavr
  • Added PlatformIO installation instructions using GitHub lib_deps.

Changed

  • Updated Arduino library metadata to include both AVR architecture targets:
    • avr
    • megaavr
  • Clarified supported AVR target classes in README.md.

Compatibility

  • No public API changes.
  • No scheduler behavior changes.
  • No breaking changes for sketches written for v0.1.0 or v0.1.1.

0.1.1

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 22 Jun 13:57
47cd76d

Performance improvements

Optimized insertion sorting for the PERIODIC and DELAYED timing queues.

The deadline of the current insertion key is now loaded once before the inner sorting loop, avoiding repeated indexed 32-bit deadline loads on AVR.

Compatibility

  • No public API changes
  • No scheduler behavior changes
  • No queue-ordering changes
  • No configuration changes
  • Fully compatible with v0.1.0 applications

MTW TinyLoopScheduler 0.1.0

Choose a tag to compare

@MyTechWaifu MyTechWaifu released this 21 Jun 12:51
13b4f03

Initial public release

MTW TinyLoopScheduler is a compact header-only cooperative scheduler for AVR boards using the Arduino AVR core.

Included

  • PERIODIC task execution.
  • One-shot DELAYED task execution.
  • LIFO POSTED task execution.
  • Persistent POLL task execution.
  • Deferred ISR callback handling through postISR().
  • Optional step-based PARTED execution through POLL.
  • Static compile-time storage with no heap allocation or dynamic containers.
  • Independent compile-time enable/disable control for task classes.
  • Full kernel trimming of disabled task classes.
  • Predefined TINY, MINI, MID, DEF, and MAX queue profiles.
  • Custom MANUAL queue configuration.
  • Configurable 16-bit or 32-bit period storage.
  • Automatic dynamic IDLE with configurable thresholds.
  • Header-only and multi-file integration using TLS_DECL_ONLY.
  • Arduino examples and API/configuration documentation.

Compatibility

  • AVR architecture
  • Arduino AVR core

License

Apache License 2.0