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:
main.golo: basic template for a GoloScript scriptchat.agent.golo: template for creating a conversational agent
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:
- Collections
- Dynamic Objects
- Structures
- REPL
- Project Templates
- The Getting Started guide has also been updated.
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