From 04c86c6cf27d100e55e1e56dded13b412ee8f23a Mon Sep 17 00:00:00 2001 From: Luxferre Date: Fri, 10 Jul 2026 10:41:44 +0300 Subject: [PATCH] v0.3.7: fixes, added CHANGELOG.md --- CHANGELOG.md | 58 ++++++++++++++++++++++++++++++++++++++ README.md | 2 +- clyx-python/pyproject.toml | 2 +- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..14d9c17 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,58 @@ +# Changelog + +All notable changes to the Clyx programming language interpreter and its standard library will be documented in this file. + +## [0.3.7] - 2026-07-10 +### Fixed +- Fixed nested `while` execution flows inside user-defined words (`defw` and `::`). +- Restored standard caller token lookup and fallback logic in the Go and Python interpreters, resolving a regression where executing higher-order functions (`qfor`, `map`, `filter`) inside user-defined words crashed with `stack underflow`. + +## [0.3.6] - 2026-07-10 +### Added +- Implemented `map` and `filter` standard library words. +- Updated tests and documentation to cover new higher-order functions. +### Fixed +- Resolved a stack pollution bug in `map`. +- Enhanced `filter` to dynamically distinguish between destructive and non-destructive predicates. +- Resolved a nested `next` word execution bug during immediate execution. + +## [0.3.5] - 2026-07-07 +### Added +- Implemented the `allot` library word to pre-allocate contiguous Q-forms initialized with zeros. +### Changed +- Optimized the `allot` algorithm to run efficiently on large lists. + +## [0.3.4] - 2026-07-07 +### Added +- Added `set` and `say` words to the standard library (`lib.clx`). +- Added tests for `set` supporting both Q-form and non-Q-form assignments. +- Updated all codebase examples to use `say` instead of `puts cr`. + +## [0.3.3] - 2026-07-07 +### Added +- Added the `is` library word to the standard library for constant definitions. +- Added UTF-8 string support. + +## [0.3.2] - 2026-07-06 +### Added +- Added `source`, `then`, and `_start` library words to the standard library. + +## [0.3.1] - 2026-07-05 +### Added +- Added `range`, `qfor`, and `for` words to the standard library. + +## [0.3.0] - 2026-07-04 +### Changed +- Incremented package version and updated documentation/README. + +## [0.2.0] - 2026-07-04 +### Added +- Added `hsargs`, `hsexit` primitives, and host bundler mode. + +## [0.1.1] - 2026-07-03 +### Added +- Added `hseval` host evaluation primitive. + +## [0.1.0] - 2026-07-03 +### Added +- Initial project arrangement and package setup for Clyx. diff --git a/README.md b/README.md index d7358df..6defe53 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Clyx aims for maximum portability and can be implemented in any modern runtime e The core spec of Clyx is mostly stable but the standard library is still a work-in-progress. -The most recent Clyx version is **0.3.6**. The version is bumped every time the language core words (aka primitives), the standard library or the REPL get updated. The primitive set is expected to be indefinitely frozen once the version number reaches 1.0. +The most recent Clyx version is **0.3.7**. The version is bumped every time the language core words (aka primitives), the standard library or the REPL get updated. The primitive set is expected to be indefinitely frozen once the version number reaches 1.0. ## Language features diff --git a/clyx-python/pyproject.toml b/clyx-python/pyproject.toml index fd97332..a80f7ee 100644 --- a/clyx-python/pyproject.toml +++ b/clyx-python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "clyx" -version = "0.3.6" +version = "0.3.7" description = "Clyx programming language interpreter" readme = "README.md" requires-python = ">=3.7"