all repos — hex @ f4dcdf299ac9cdce36396ffa3e7be56bf0276dbf

A tiny, minimalist, slightly-esoteric concatenative programming lannguage.

Preparing for 0.7.0 release.
h3rald h3rald@h3rald.com
Wed, 04 Mar 2026 17:34:07 +0100
commit

f4dcdf299ac9cdce36396ffa3e7be56bf0276dbf

parent

508d3a40dce79a9207032f49828374f8be523949

5 files changed, 41 insertions(+), 5 deletions(-)

jump to
M CHANGELOG.mdCHANGELOG.md

@@ -1,6 +1,7 @@

<article> <h2>Changelog</h2> <ul> +<li><a href="#v0.7.0">v0.7.0</a></li> <li><a href="#v0.6.0">v0.6.0</a></li> <li><a href="#v0.5.0">v0.5.0</a></li> <li><a href="#v0.4.1">v0.4.1</a></li>

@@ -8,6 +9,23 @@ <li><a href="#v0.4.0">v0.4.0</a></li>

<li><a href="#v0.3.0">v0.3.0</a></li> <li><a href="#v0.2.0">v0.2.0</a></li> <li><a href="#v0.1.0">v0.1.0</a></li> +</ul> +<h3 id="v0.7.0">v0.7.0 &mdash; 2026-03-04</h3> + +<h4>Fixes</h4> +<ul> + <li>Fixed several memory leaks in the <a href="https://hex.2c.fyi/spec#if-symbol">if</a>, <a href="https://hex.2c.fyi/spec#try-symbol">try</a>, <a href="https://hex.2c.fyi/spec#error-symbol">error</a>, <a href="https://hex.2c.fyi/spec#args-symbol">args</a>, <a href="https://hex.2c.fyi/spec#get-symbol">get</a>, and <a href="https://hex.2c.fyi/spec#run-symbol">run</a> symbols.</li> + <li>Fixed memory leaks in bytecode interpretation of integers, strings, and native symbols.</li> + <li>Fixed memory leaks in CLI argument handling.</li> + <li>Fixed a potential crash in <a href="https://hex.2c.fyi/spec#equal-symbol">==</a> when comparing symbols with non-symbol types.</li> + <li>Fixed the <a href="https://hex.2c.fyi/spec#run-symbol">run</a> symbol to use dynamically allocated buffers instead of fixed-size buffers for command output.</li> + <li>Fixed bytecode string length decoding loop.</li> + <li>Fixed bytecode user symbol index to use 2-byte little-endian encoding.</li> +</ul> + +<h4>Chores</h4> +<ul> + <li>Increased test coverage.</li> </ul> <h3 id="v0.6.0">v0.6.0 &mdash; 2025-11-09</h3>
A releases/0.7.0.html

@@ -0,0 +1,17 @@

+<h3 id="v0.7.0">v0.7.0 &mdash; 2026-03-04</h3> + +<h4>Fixes</h4> +<ul> + <li>Fixed several memory leaks in the {{sym-if}}, {{sym-try}}, {{sym-error}}, {{sym-args}}, {{sym-get}}, and {{sym-run}} symbols.</li> + <li>Fixed memory leaks in bytecode interpretation of integers, strings, and native symbols.</li> + <li>Fixed memory leaks in CLI argument handling.</li> + <li>Fixed a potential crash in {{sym-==}} when comparing symbols with non-symbol types.</li> + <li>Fixed the {{sym-run}} symbol to use dynamically allocated buffers instead of fixed-size buffers for command output.</li> + <li>Fixed bytecode string length decoding loop.</li> + <li>Fixed bytecode user symbol index to use 2-byte little-endian encoding.</li> +</ul> + +<h4>Chores</h4> +<ul> + <li>Increased test coverage.</li> +</ul>
M scripts/web.hexscripts/web.hex

@@ -2,8 +2,8 @@ #!/usr/bin/env hex

"./lib/utils.hbx" read "utils.hbx" ! -"2025" "meta-year" : -"0.6.0" "meta-release" : +"2026" "meta-year" : +"0.7.0" "meta-release" : "web/assets" "d-assets" : "web/templates" "d-templates" : "web/contents" "d-contents" :

@@ -22,7 +22,7 @@

; Symbols to substitute with the corresponding links ("map" "debug" "split" "run" "get" "puts" ":" "::" "." "#" "==" "'" "swap" "dup" "while" "+" "*" "-" "each" "cat" "throw" "drop" "sub" -"symbols" "print" "read" "dec" "write" "append" "!" +"symbols" "print" "read" "dec" "write" "append" "!" "try" "error" "args" "<=" "if" "timestamp") "symbol-links" : ;; Syntax highlighting

@@ -102,6 +102,7 @@ "t-content" :

t-symbol "t-href" : ; Handle "special" symbols (t-symbol ":" ==)("store" "t-href" :) when + (t-symbol "==" ==)("equal" "t-href" :) when (t-symbol "<=" ==)("lessthanequal" "t-href" :) when (t-symbol "." ==)("i" "t-href" :) when (t-symbol "." ==)("i" "t-href" :) when
M src/hex.csrc/hex.c

@@ -23,7 +23,7 @@ #include <sys/wait.h>

#endif // Constants -#define HEX_VERSION "0.6.0" +#define HEX_VERSION "0.7.0" #define HEX_STDIN_BUFFER_SIZE 16384 #define HEX_INITIAL_REGISTRY_SIZE 512 #define HEX_REGISTRY_SIZE 4096
M src/hex.hsrc/hex.h

@@ -20,7 +20,7 @@ #include <sys/wait.h>

#endif // Constants -#define HEX_VERSION "0.6.0" +#define HEX_VERSION "0.7.0" #define HEX_STDIN_BUFFER_SIZE 16384 #define HEX_INITIAL_REGISTRY_SIZE 512 #define HEX_REGISTRY_SIZE 4096