GoloScript v0.0.3 is out!

šŸ¤“ GoloScript v0.0.3 - dev.20260131.🦊

New Features and Changes

Project Templates

GoloScript now offers templates to quickly start a new project:

Dynamic REPL

The REPL now displays the current GoloScript version at startup (instead of a hardcoded ā€œv0.1ā€):

Golo REPL v0.0.3 | dev.20260131
Type 'exit' to quit

golo>

Documentation Updates

I’m working on the documentation and checking examples to ensure they are up-to-date with the latest features and fixes. This is a work in progress.

Published:


Bug Fixes

Fix: set deduplication (fix/sets, PR #78)

Problem: set[1, 2, 3, 2, 1] returned [1, 2, 3, 2, 1] instead of [1, 2, 3]. The set builtin was not deduplicating elements.

Cause: when set[...] is used with literal values (without foreach), the parser transforms it into a function call set(...). The set builtin in builtins.go simply returned the arguments without deduplication, unlike the CollectionComprehension path which correctly called createSet().

Fix: the set builtin now calls createSet(args) instead of &object.Array{Elements: args}.

Modified file: evaluator/builtins.go

Fix: boolean equality with is/isnt (fix/bool-is-empty, PR #76)

Problem: conditions like isEmpty() is true, contains(x) is false, or containsKey(k) is true were not working. The result was always false.

Cause: the methods isEmpty(), contains(), and containsKey() (for Tuple, Array, and Map) were creating new &object.Boolean{Value: ...} objects instead of using the singletons object.TRUE / object.FALSE. The is operator uses Go reference equality (==), so a new Boolean{Value: true} is never == object.TRUE.

Fix: 7 occurrences in evaluator/functions.go replaced with nativeBoolToBooleanObject(expr) which returns the correct singletons.

Modified file: evaluator/functions.go

Fix: subTuple and substring with inclusive end (fix/subtuple-range, PR #77)

Problem: [1, 2, 3, 4, 5]: subTuple(1, 3) returned [2, 3] instead of [2, 3, 4]. Similarly, "Hello World": substring(0, 4) returned "Hell" instead of "Hello". The end index was exclusive (Go convention), but the language expected an inclusive index.

Cause: the subTuple and substring/substr functions in evaluator/functions.go were directly using Go indices (exclusive end slicing).

Fix: added +1 to the end index to make it inclusive, and adjusted boundary checks.

Modified files: evaluator/functions.go, documentation and examples updated across 8 doc files and 5 example files.

Fix: confirmation bug (fix/confirm, PR #74)

Fixed a bug in the confirmation mechanism.


Repository

https://codeberg.org/TypeUnsafe/golo-script

Built with ā¤ļø by the GoloScript community šŸ»ā€ā„ļø

Ā© 2026 GoloScript Project | Built with Gu10berg

Subscribe: šŸ“” RSS | āš›ļø Atom