Skip to content

Releases: adel-mamin/amast

v0.10.0

20 Jun 08:17

Choose a tag to compare

Release Notes

  • Turn on clang-tidy check
  • Add extra sanity checks to am_onesize_free() and am_onesize_allocate_x()
  • Attribute onesize allocation and free APIs with AM_MAY_ALIAS
  • Add exit on ESC in apps/examples/async/main.c
  • Make AM_ALIGNOF() return int
  • Add AM_ALIGNOF_DEFINE() for common types
  • Add timer allocation, event publishing to async example
  • Add struct am_timer_state::timers for bound checking in am_timer_tick()
  • Add event reference counter assert to am_event_push_x()
  • Make event->ref_counter check thread safe in am_event_inc_ref_cnt()
  • Remove redundant AM_ASSERT() in am_ao_post_fifo()
  • Add AM_EVENT_..._MAX defines for better code readability
  • Double the maximum value of event reference counter
  • Add code documentation and comments amendments

v0.9.7

07 Jun 08:04

Choose a tag to compare

Release Notes

  • Use the term task instead of thread
  • Update ncpu processing in workers example app
  • Add _unsafe suffix to thread unsafe API
  • Rework am_onesize_allocate_x()
  • Fix description of AM_EVENT_HAS_PUBSUB_ID()
  • Rework workers example to pass work function in job event
  • Prune struct am_event::pubsub_time as redundant
  • Fix API documentation in timer.h
  • Add AMAST diagram high level diagram
  • Rename am_timer_post_fn to am_timer_post_unsafe_fn
  • Add interval assert to am_timer_arm_ticks()
  • Rename am_timer_domain_is_empty() to am_timer_domain_is_empty_unsafe()
  • Rename PAL API related to global start mutex

v0.9.6

25 May 14:22

Choose a tag to compare

Release Notes

  • Add assert to am_ao_publish_exclude_x()
  • Add workers app to unit tests
  • Add ringbuf app to unit tests
  • Fix the use of am_queue_pop_front() API
  • Add balancer_check_stats() to apps/examples/workers/main.c
  • Fix race condition bug in am_event_pop_front()
  • Rename am_event_pop_front() callback
  • Add EVT_START event to workers example
  • Add am_pal_lock/unlock/wait_all()
  • Move am_hsm_init() to am_ao_start()
  • Rework AO priority handling

v0.9.5

17 May 16:17

Choose a tag to compare

Release Notes

  • Add extra assert to `am_pal_task_create()``
  • Fix bug in am_event_push_x() API implementation
  • Add new task priority mapping API am_pal_register_prio_map_cb()
  • Add extra unit test for the queue library
  • Add AM_ALIGNOF() macro
  • Add new am_pal_get_cpu_count() API
  • Improve to timer, event, async, HSM and FSM API documentation
  • Add event ownership diagram and references to it
  • Define AO priority as a bit-field to reduce AO RAM footprint

v0.9.4

27 Apr 16:24

Choose a tag to compare

Release Notes

  • Assert on event use after free
  • Improve documentation

v0.9.3

21 Apr 18:35

Choose a tag to compare

Release Notes

  • Add corrections to libs/event/event.h comments
  • Redefine AM_JOINSTR() in common/compiler.h to avoid cross-include with common/macros.h
  • Fix typo AM_AM_DISABLE_WARNINGS() -> AM_DISABLE_WARNINGS()
  • Update library sizes
  • Bug fix: set ao->task_id in am_ao_task() in libs/ao/preemptive/port.c
  • Add struct am_ao::stopped flag
  • Fix compiler warning in apps/examples/async/main.c
  • Fix comments typos in libs/ao/ao.h
  • Silence redundant null de-reference warnings in am_pal_task_create()
  • API update: prune am_event_defer/recall APIs in favour of am_event_push/pop() APIs
  • API update: void am_pal_ctor(void) -> void *am_pal_ctor(void *arg)
  • API update: replace AM_ASYNC_IS_BUSY() with am_async_is_busy()
  • Harden onesize allocation and free buffer pointer
  • Update libs/async/README.rst to match the implementation
  • Update README.md

v0.9.2

12 Apr 11:52

Choose a tag to compare

  • Simplify async library API
  • Update event library documentation

v0.9.1

07 Apr 17:27

Choose a tag to compare

Release Notes

  • Add Zephyr PAL port (not tested)
  • Improve PAL API documentation
  • Improve FSM documentation
  • Improve HSM documentation
  • Rework apps/examples/fork

v0.9.0

23 Mar 06:27

Choose a tag to compare

Release Notes

  • Extend and improve amast API documentation
  • Introduce a number of API changes to properly handle active object shutdown use cases:
    • Require unsafe event posting callback in timer module
    • Add am_pal_printf_unsafe()
    • Make am_onesize_iterate_over_allocated() non-thread safe
    • Add am_event_free_unsafe()
    • Add am_event_push_back_unsafe()
    • Join running threads in am_pal_ctor() implementations
    • Use while (am_ao_get_cnt() > 0) while running am_ao_run_all() in all examples
    • Add am_ao_state_dtor()
  • Use graceful shutdown in DPP example app
  • Use graceful shutdown in ao/tests/minimal.c
  • Force assert on failure of non _x event push APIs
  • Add am_queue_is_valid()
  • Add am_pal_xprintff() functions combining printf and flush functionality

v0.8.1

07 Mar 21:24

Choose a tag to compare

Release Notes

  • Generate amast.tar.gz
  • Improve API documentation
  • Add am_timer_arm_ms()
  • Rename am_event_get_pools_num() to am_event_get_npools()
  • Add MIT license wording to docs/license.rst
  • Rename HSM_HIERARCHY_DEPTH_MAX to AM_HSM_HIERARCHY_DEPTH_MAX
  • Fix libs/hsm/tests/dtor.c
  • Fix ms computation bug in libuv port of am_pal_time_get_ms()

From now on the amast source files are distributed in the form of amast.tar.gz.
The content of the tarball:

> tar -tzf amast.tar.gz
amast/amast.c
amast/amast_test.c
amast/amast_freertos.c
amast/amast_posix.c
amast/amast_cooperative.c
amast/amast_preemptive.c
amast/amast.h
amast/amast_test.h
amast/amast_libuv.c
amast/amast_config.h
amast/Makefile