all repos — min @ 88d3e899ee4ec8ea4be902017fc9358af749b38f

A small but practical concatenative programming language.

Formatted changelog.
h3rald h3rald@h3rald.com
Wed, 17 Jun 2026 07:02:37 +0200
commit

88d3e899ee4ec8ea4be902017fc9358af749b38f

parent

c08fe2b4dae4b6ed989a03e8a29cb027ddb57ca7

1 files changed, 62 insertions(+), 176 deletions(-)

jump to
M CHANGELOG.mdCHANGELOG.md

@@ -1,4 +1,6 @@

-# v0.48.0 - 2026-06-03 +## Changelog + +### v0.48.0 (2026-06-03) BREAKING CHANGES

@@ -20,17 +22,13 @@ - Fixed setSigil incorrectly calling setSymbol.

- Improved handling of hash bang. - No longer using (unoptimised) tail-recursion for symbol resolution, now doing iterative lookups. -Changes - -# v0.47.1 - 2026-05-22 +### v0.47.1 (2026-05-22) Fixes and Improvements - Now differentiating between null and unknown symbols. -Changes - -# v0.47.0 - 2026-05-22 +### v0.47.0 (2026-05-22) New Features

@@ -48,9 +46,7 @@ - Updated vendor library paths to include architecture information as well.

- Fixed resolution of static libraries based on min sources rather than current project. - Upgraded OpenSSL to version 4.0.0. -Changes - -# v0.46.0 - 2024-10-28 +### v0.46.0 (2024-10-28) BREAKING CHANGES

@@ -68,9 +64,7 @@ - Enhanced the tokenizer symbol to provide additional information for symbols.

- Enhanced min shell highlighting to support dot notation, sigils, autopop, global symbols. - Enhanced Vim syntax file to support latest constructs. -Changes - -# v0.45.0 - 2024-10-26 +### v0.45.0 (2024-10-26) BREAKING CHANGES

@@ -147,9 +141,7 @@ Fixes and Improvements

- Upgraded OpenSSL to v3.3.2. -Changes - -# v0.44.0 - 2024-06-18 +### v0.44.0 (2024-06-18) BREAKING CHANGES

@@ -179,9 +171,7 @@ Fixes and Improvements

- Fixed tokenize symbol (wasn’t processing commands correctly) -Changes - -# v0.43.1 - 2024-05-03 +### v0.43.1 (2024-05-03) Fixes and Improvements

@@ -189,9 +179,7 @@ - Upgraded OpenSSL to version 3.3.0.

- Nimble metadata are now specified statically in the min.nimble file (Fixes #193). - Minor documentation fixes. -Changes - -# v0.43.0 - 2024-02-04 +### v0.43.0 (2024-02-04) BREAKING CHANGES

@@ -210,9 +198,7 @@ - Added check to prevent installing local managed modules in the HOME directory or $HOME/mmm.

- Changed tokenize symbol so that it returns the full token, including delimiters (for strings and comments). - Fixed regression in min compile command introduced in the previews version due to parses changes. -Changes - -# v0.42.0 - 2023-12-02 +### v0.42.0 (2023-12-02) BREAKING CHANGES

@@ -234,9 +220,7 @@

- Fixed help symbol and min help command to correctly report sigil documentation. - Documented ~ (alias and sigil for lambda-bind) symbol. -Changes - -# v0.41.0 - 2023-11-24 +### v0.41.0 (2023-11-24) BREAKING CHANGES

@@ -254,9 +238,7 @@

- Auto-completions for files and folders now automatically end with ". - The min shell no longer attempts to auto-complete executables (it never worked properly anyway). -Changes - -# v0.40.0 - 2023-10-08 +### v0.40.0 (2023-10-08) BREAKING CHANGES

@@ -277,26 +259,20 @@ - Now requiring checksums unless OpenSSL is used.

- Prepended std/ to standard library modules. - REPL tab-completions are now sorted alphabetically. -Changes - -# v0.39.2 - 2023-08-15 +### v0.39.2 (2023-08-15) Fixes and Improvements - Removed depentency unnecessary dependency on nifty. - Now compiling using --mm:refc to decrease memory usage. -Changes - -# v0.39.1 - 2023-08-02 +### v0.39.1 (2023-08-02) Fixes and Improvements Fixed compilation errors with Nim 2.0. -Changes - -# v0.39.0 - 2023-07-31 +### v0.39.0 (2023-07-31) New Features

@@ -308,18 +284,14 @@ Fixes and Improvements

- Fixed OpenSSL support on Windows. -Changes - -# v0.38.1 - 2023-07-23 +### v0.38.1 (2023-07-23) Fixes and Improvements - Recompiled OpenSSL on Linux and macOS to match Windows configuration and reduce size. - Now compressing executables using upx to reduce size. -Changes - -# v0.38.0 - 2023-07-21 +### v0.38.0 (2023-07-21) New Features

@@ -336,9 +308,7 @@ - Fixed problem with hardcoded relative paths to third-party libraries that prevented installing via nimble.

- Removed filename/line/column from generated Nim code when compiling. - Upgraded OpenSSL to v3.1.1. -Changes - -# v0.37.0 - 2022-01-01 +### v0.37.0 (2022-01-01) New Features

@@ -350,7 +320,7 @@ - Added dget-raw operator to retrieve information on an element of a dictionary without evaluating it.

- Added set-sym operator to set an element of a quotation to a symbol (specified as a string). -- Added dset-sym operator to set a key of a dictionary to a symbol (specified as a string). ### Fixes and Improvements +- Added dset-sym operator to set a key of a dictionary to a symbol (specified as a string). ##### Fixes and Improvements - Miscellaneous documentation fixes.

@@ -364,9 +334,7 @@ - set now actually creates a copy of the specified quotation.

- Documented previously-undocumented type operator. -Changes - -# v0.36.0 - 2021-11-14 +### v0.36.0 (2021-11-14) BREAKING CHANGES

@@ -399,9 +367,7 @@

- Fixed Nim 1.6.0 compilation warnings. - string values are now properly escaped when printed. -Changes - -# v0.35.1 - 2021-04-23 +### v0.35.1 (2021-04-23) Fixes and Improvements

@@ -409,9 +375,7 @@ - Fixed problem with print symbol (Linux only if compiled with musl)

- Minor performance improvements on dictionary management - Upgraded OpenSSL to v1.1.1k -Changes - -# v0.35.0 - 2021-03-20 +### v0.35.0 (2021-03-20) BREAKING CHANGES

@@ -425,17 +389,13 @@ Fixes and Improvements

- Removed conditional compilations related to mini and lite variants as they are no longer needed. -Changes - -# v0.34.1 - 2021-03-13 +### v0.34.1 (2021-03-13) Fixes - Fixed search symbol to always return a quotation containing the same number of elements (1 + number of captures). If no matches are found, the quotation contains empty strings. -Changes - -# v0.34.0 - 2021-03-13 +### v0.34.0 (2021-03-13) BREAKING CHANGES

@@ -450,9 +410,7 @@

- Now including statically-linked PCRE v8.44 library used for regular expression support. - Upgraded OpenSSL to v1.1.1j. -Changes - -# v0.33.0 - 2021-02-13 +### v0.33.0 (2021-02-13) Breaking changes

@@ -471,9 +429,7 @@

- #144 - The symbol type? is now able to check if a value satisfies a type expression, not only a simple type. Note however that it is now necessary to prepend dictionary types with dict: (as in type expressions). - #141 - A new quotesym symbol has been added to transform a string into a quoted symbol. This is equivalent to the behavior of the ’ sigil. -Changes - -# v0.32.0 - 2021-02-06 +### v0.32.0 (2021-02-06) Fixes

@@ -565,9 +521,7 @@ ) ::

Note that: * Type aliases be used to create an alias for any type expression. * Aliased type expressions can contain standard min types, dictionary types, type classes, and even other type aliases. * The typealias operator actually creates lexically-scoped, typealias:-prefixed symbols that can be sealed, unsealed, and deleted exactly like other symbols. -Changes - -# v0.31.0 - 2021-02-06 +### v0.31.0 (2021-02-06) - Implemented “auto-popping” by adding ! at the end of any symbol (#104). - Removed all symbols ending with ! as auto-popping will work instead.

@@ -603,9 +557,7 @@ - seal -> seal-symbol

- sealed? -> sealed-symbol? - unseal -> unseal-symbol -Changes - -# v0.30.0 - 2021-01-23 +### v0.30.0 (2021-01-23) - Added support for Scheme-style block comments using hashpipe style: #| ... |#. - Implemented support for documentation comments (;; or #|| ... ||#) placed right after an operator definition.

@@ -618,15 +570,11 @@ - Added product, med, avg and range operators to num module (thanks @drkameleon!).

- Added Dockerfile (thanks @drkameleon!). - Implemented integrated help system for all native symbols. -Changes - -# v0.29.1 - 2021-01-18 +### v0.29.1 (2021-01-18) - Fixes #98. -Changes - -# v0.29.0 - 2021-01-17 +### v0.29.0 (2021-01-17) - Added dsinit! symbol. - Added sealed? and sealed-sigil? symbols.

@@ -638,22 +586,16 @@ - Added stringlike? symbol.

- Implemented support for generics in operator signatures - Now listing what items are polluting the stack. -Changes - -# v0.28.1 - 2021-01-10 +### v0.28.1 (2021-01-10) - Fixed implementation of the while symbol, as it polluted the stack in some cases. Thanks @baykus871 for noticing that something was wrong! -Changes - -# v0.27.1 - 2021-01-02 +### v0.27.1 (2021-01-02) - Fixed handling of escaped “/” characters in regex operator. - Fixed fatal error in REPL. -Changes - -# v0.27.0 - 2020-12-31 +### v0.27.0 (2020-12-31) Happy New Year! 🎊 ✨🍾

@@ -666,9 +608,7 @@ - Fixed unwanted stack pollution in to-yaml operator.

- Added check to prevent required modules from polluting the stack. - Added nossl flag to compile without openssl (otherwise enabled by default). -Changes - -# v0.26.0 - 2020-12-25 +### v0.26.0 (2020-12-25) Merry Christmas! 🎄🎁🍾

@@ -683,9 +623,7 @@ - Added expect-empty-stack (=-=) symbol.

- Added null data type, added null? symbol. - Added reverse-expect-dequote (--) symbol. -Changes - -# v0.25.0 - 2020-12-19 +### v0.25.0 (2020-12-19) - Added support for sigils on double-quoted strings. - Added support for arbitrary strings as dictionary keys.

@@ -698,9 +636,7 @@ - Added clear symbol to clear the screen.

- Added the mapkey and the unmapkey symbols to configure key mappings. - Fixed execution of scripts from stdin (when running min with no parameters). -Changes - -# v0.24.0 - 2020-12-12 +### v0.24.0 (2020-12-12) - Added the possibility to “compile” min files into single executables. This is achieved by converting the specified min file to its raw Nim code equivalent and then calling the Nim compiler (which in turns calls the C compiler). - Added compiled? symbol which returns true if the program has been compiled.

@@ -710,9 +646,7 @@ - Added mini? symbol which returns true if min was compiled specifying -d:mini.

- Now distributing precompiled litemin and minimin executables as well. - Moved puts, puts! and gets from io module to lang module. -Changes - -# v0.23.0 - 2020-12-07 +### v0.23.0 (2020-12-07) - Added apply-interpolate (alias: =%) operator. - Documented that it is possible also to interpolate with named placeholders, like this: "Current Directory: $pwd" ("pwd" .) =%

@@ -728,37 +662,27 @@ - Addes prefix and suffix operators to prepens and append one string to another.

BONUS! Are you using Visual Studio Code? check out the new official extension for the min programming language! -Changes - -# v0.22.0 - 2020-11-29 +### v0.22.0 (2020-11-29) - Linux binaries are now statically linked with musl for improved portability (fixed all REPL problems) - Added infix-dequote (alias: ><) and prefix-dequote (alias: >>) symbols. -Changes - -# v0.21.1 - 2020-10-31 +### v0.21.1 (2020-10-31) Recompiled with Nim v1.4.0. -Changes - -# v0.21.0 - 2020-10-03 +### v0.21.0 (2020-10-03) - Renamed stored-symbols into saved-symbols for consistency reasons. - Added system! (alias !!) to execute a command without pushing the return value on the stack. - Dequoting now makes sure that the quoted program doesn’t get modified if executed multiple times. - Created native binaries for all supported platforms, without cross-compiling. -Changes - -# v0.20.1 - 2020-08-30 +### v0.20.1 (2020-08-30) - Fixes #62. -Changes - -# v0.20.0 - 2020-06-17 +### v0.20.0 (2020-06-17) - with now works properly with ordinary modules as well as ROOT. - Exposed new scope symbol to access the current scope as a module.

@@ -770,58 +694,42 @@ - Modified type? symbol to support also primitive types.

- Added type symbol to retrieve the type of a value. - Added documentation page to clarify dictionaries, types, scopes and modules. -Changes - -# v0.19.6 - 2020-01-10 +### v0.19.6 (2020-01-10) - Fixed/improved documentation (thanks @zenon!) - Fixed start-server symbol to properly work with dictionaries -Changes - -# v0.19.5 - 2019-09-29 +### v0.19.5 (2019-09-29) - Fixed compilation errors and most warnings on Nim v1.0.0. - Fixed travis CI script. - Fixed REPL mode (been broken for a while). -Changes - -# v0.19.4 - 2019-08-25 +### v0.19.4 (2019-08-25) - Fixed compilation errors on Nim v0.20.2. -Changes - -# v0.19.3 - 2018-12-09 +### v0.19.3 (2018-12-09) - Fixed nimble installation -Changes - -# v0.19.2 - 2018-11-24 +### v0.19.2 (2018-11-24) - Fixed CI build. - No longer parsing nimble file to retrieve package information. -Changes - -# v0.19.1 - 2018-11-18 +### v0.19.1 (2018-11-18) - Fixed compilation errors with Nim 0.19.1. - Moved tasks to min.nimble -Changes - -# v0.19.0 - 2018-08-12 +### v0.19.0 (2018-08-12) - Removed development mode (-d switch); now running with expect checks enabled always. The minor performance increase was not worth giving up type checks. - Changed the way dictionaries are processed. They are now parsed like other data types, and copied by value whenever they are interpreted. This fixes a lot of problems related with dictionaries when used in cycles. - [lang module] apply can now be used on a dictionary to evaluete all its symbols. -Changes - -# v0.18.0 - 2018-07-08 +### v0.18.0 (2018-07-08) - min can now also be installed via nimble (thanks SolitudeSF). - Fixed timestamp operator (thanks SolitudeSF).

@@ -830,9 +738,7 @@ - Added development mode (-d switch); now running with expect checks disabled by default.

- Refactoring/improvement: no longer saving scopes with all quotations. - Performance improvements. -Changes - -# v0.17.0 - 2018-06-03 +### v0.17.0 (2018-06-03) New Features

@@ -842,9 +748,7 @@ - Added new type? symbol to the logic module to check for typed dictionaries.

- Added new set-type symbol to the lang module to specify the type for a dictionary. - expect now supports type unions: ("string|quot") expect -Breaking Changes - -- The old quote-based dictionary format (es.: (("a" 1) ("b" 2))) is no longer considered a dictionary. +Breaking - The old quote-based dictionary format (es.: (("a" 1) ("b" 2))) is no longer considered a dictionary. - dictionary? returns true only if the native type of the value is a dictionary. - dget, dset, dhas?, ddel, dvalues, dkeys, dpick now only operate on native dictionaries and have been moved to a new dict module, along with their corresponding sigils. - dsort symbol has been removed (all dictionaries are sorted by key).

@@ -857,48 +761,36 @@ - [sys module] run now operates on native dictionaries.

- JSON objects are now deserialized to dictionaries, and to-json can be used on any type of data. - Dictionaries are now serialized to JSON objects. -Changes - -# v0.16.0 - 2018-05-20 +### v0.16.0 (2018-05-20) - Added take and drop operators to the seq module. - Mentioned how to get syntax highlighting in Vim and Sublime Text - Minor documentation fixes. -Changes - -# v0.15.2 - 2018-04-29 +### v0.15.2 (2018-04-29) - Fixed unhandled exception in withScope (#27) - Regenerated min developer guide using HastyScribe v1.10.0. -Changes - -# v0.15.1 - 2018-03-17 +### v0.15.1 (2018-03-17) - Fixed current directory handling when cd is used. - Fixed command help to specify correct loglevel values. -Changes - -# v0.15.0 - 2018-03-10 +### v0.15.0 (2018-03-10) - Added randomize operator to initialize the random number generator with a seed based on the current timestamp. - Added a substr operator and enhanced the split operator to support string splitting using an empty string. - Re-implemented aes operator using the tiny-AES-c library. This operator now uses the CTR mode of operation for encrypting and decrypting strings. -Changes - -# v0.14.0 - 2018-02-18 +### v0.14.0 (2018-02-18) - Implemented a new http module, providing basic support for making HTTP requests and creating simple HTTP servers. - Added lite? operator in lang module to check whether min was compiled in lite more or not. - Modified min’s prelude so that non-included modules will not be imported. - Fixed a few errors in the documentation. -Changes - -# v0.13.0 - 2017-11-19 +### v0.13.0 (2017-11-19) - Implemented a new net module, providing support for operations on sockets. - (seq module) Implemented quote-map operator to quote all elements of a quotation.

@@ -907,18 +799,14 @@ - (logic module) The == can now be used with non-homogeneous types.

- (lang module) Implemented read and parse operators to parse strings into quotations. - Additional minor fixes. -Changes - -# v0.12.0 - 2017-10-29 +### v0.12.0 (2017-10-29) - Implemented new math module (thanks @PMunch). - Improved support for floating-point numbers (thanks @PMunch). - Implemented support for dynamic libraries (thanks @PMunch). - Added support for sharpbang. -Changes - -# v0.11.0 - 2017-08-06 +### v0.11.0 (2017-08-06) - Added new ? sigil for symbol dhas?. - Moved / and % sigils to seq module.

@@ -931,9 +819,7 @@ - Added dpick symbol to create a dictionary from another one containing only a subset of keys.

- Added last symbol to retrieve the last element of a quotation. - Fixed SIGSEGV issue with tap and tap! operator -Changes - -# v0.10.0 - 2017-07-30 +### v0.10.0 (2017-07-30) - Moved apply to the lang module. - Fixed error message in try symbol.