Skip to content

v5

Pre-release
Pre-release

Choose a tag to compare

@VoidbornGames VoidbornGames released this 22 Aug 00:14
· 5 commits to main since this release

Gen 5 - the big rewrite

HumanScript is now H Sharp (H#), and the language was rebuilt from the ground up.

The syntax is C#-like: braces, semicolons, typed functions, $"interpolated {strings}". The old English keywords (remember x is 5, say, end) are gone for good.

The real change is underneath: no garbage collector, ever. Strings and lists have exactly one owner, assigning moves the value, and touching it afterwards is a compile error. Everything on the heap is freed at its last use, decided at compile time. There's a mem() builtin that reports live allocations; a correct program prints 0, and the test suite checks exactly that.

Also in this release:

  • static types with var inference for locals
  • try/catch, missing files and out-of-bounds indexes land in catch
  • foreach, compound assignment (+= and friends)
  • lists own their elements; function params are borrowed unless marked move
  • cross-compiling via -platform win64|linux64|osx64 (defaults to your OS)
  • rebuilt test suite running the full pipeline per test

Heads up: old .hs programs won't compile - this is a clean break. See the README for the new syntax.