all repos — hex @ 6004cb6ad7d74e49f3df6678e0ddd29cd602c213

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

Fixes.
h3rald h3rald@h3rald.com
Tue, 24 Dec 2024 15:12:16 +0100
commit

6004cb6ad7d74e49f3df6678e0ddd29cd602c213

parent

9359ff502d2608058d1bb590baf6b195921b97a1

2 files changed, 72 insertions(+), 7 deletions(-)

jump to
M CHANGELOG.mdCHANGELOG.md

@@ -1,7 +1,72 @@

<article> <h2>Changelog</h2> <ul> +<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.3.0">v0.3.0 &mdash; <em>Under Development</em></h3> + +<h4>Breaking Changes</h4> +<ul> + <li>Removed the native symbols %:filter%%, %:clear%%, and %:each%%.</li> + <li>Bytecode: some opcodes changes values; programs compiled with tbe previous version must be recompiled.</li> +</ul> + +<h4>New Features</h4> +<ul> + <li>Added symbol <a href="https://hex.2c.fyi/spec#operator-symbol">::</a> to define operators (immediately-dequoted quotations).</li> + <li>Added symbol <a href="https://hex.2c.fyi/spec#symbols-symbol">symbols</a> to get a list of all stored symbols</li> + <li>Added symbol <a href="https://hex.2c.fyi/spec#throw-symbol">throw</a> to throw an error.</li> + <li>Increased the size of the STDIN buffer to 16Kb.</li> +</ul> + +<h4>Fixes</h4> +<ul> + <li><a href="https://hex.2c.fyi/spec#lessthanequal-symbol"><=</a> now returns correct results.</li> +</ul> + +<h4>Chores</h4> +<ul> + <li>Updated Vim syntax highlighting (%:hex.vim%%).</li> +</ul> +<h3 id="v0.2.0">v0.2.0 &mdash; 2024-12-20</h3> + +<h4>New Features</h4> +<ul> + <li>Implemented a virtual machine with a bytecode compiler and interpreter.</li> + <li><a href="https://hex.2c.fyi/spec#read-symbol">read</a>, <a href="https://hex.2c.fyi/spec#write-symbol">write</a>, <a href="https://hex.2c.fyi/spec#append-symbol">append</a> now support reading and writing from/to binary files as well.</li> + <li><a href="https://hex.2c.fyi/spec#eval-symbol">!</a> can now evaluate a quotation of integers as hex bytecode.</li> + <li>Increased maximum stack size to 256 items.</li> + <li>Improved and consolidated error messages and debug messages.</li> +</ul> + +<h4>Fixes</h4> +<ul> + <li>Ensured that <a href="https://hex.2c.fyi/spec#dec-symbol">dec</a> is able to print negative integers in decimal format.</li> + <li>Ensured that symbol identifiers cannot be longer than 256 characters.</li> + <li>Ensured that all symbols are correctly added to the stack trace.</li> +</ul> + +<h4>Chores</h4> +<ul> + <li>Split the source code to different files, and now relying on an <a + href="https://github.com/h3rald/hex/blob/master/scripts/amalgamate.sh">amalgamate.sh</a> script to + concatenate them together before compiling</li> +</ul> +<h3 id="#v0.1.0">v0.1.0 &mdash; 2024-12-14</h3> + +<p>Initial release, featuring:</p> +<ul> + <li>A multi-platform executable for the <em>hex</em> interpreter.</li> + <li>Integrated REPL.</li> + <li>Integrated help and manual.</li> + <li>Debug mode.</li> + <li>0x40 (64) native symbols.</li> + <li>Support for 32bit hexadecimal integers, strings, and quotations (lists).</li> + <li>A complete <a href="https://hex.2c.fyi">web site</a> with more documentation and even an interactive playground. + </li> +</ul> + </article>
M scripts/web.hexscripts/web.hex

@@ -45,7 +45,7 @@ "<span class=\"hex-integer\">0x"

"<span class=\"hex-symbol\">" "</span>" "<code>" - "</code" + "</code>" ) "highlight-replacements" : ; Highlight syntax in text

@@ -132,12 +132,12 @@ "" "releases-content" :

( releases len "_releases_count" : ; Reverse releases order - (_releases_count 0x0 <) + (_releases_count 0x0 >) ( releases _releases_count 0x1 - get "id-release" : ; Update releases-content d-releases "/" id-release cat cat read releases-content swap cat "releases-content" : - _count 0x1 - "_releases_count" : + _releases_count 0x1 - "_releases_count" : ) while "_releases_count" #

@@ -146,12 +146,12 @@ ) "process-releases" ::

; Create changelog toc ( - "" "changelog-toc" : ;external + "" "changelog-toc" : ; external releases len "_gct_count" : ; Reverse releases order - (_gct_count 0x0 <) + (_gct_count 0x0 >) ( - releases _gct_count get ".html" "" replace "id-release" : + releases _gct_count 0x1 - get ".html" "" replace "id-release" : changelog-toc ("<li><a href=\"#v" id-release "\">v" id-release "</a></li>\n") () map "" join cat