Skip to content

V-1.1.1

Pre-release
Pre-release

Choose a tag to compare

@ideumi ideumi released this 14 Aug 14:28

Released on Aug 14, 2026

What's New:

- corelib:
	- added libquery.chh

	- libstrings.chh: moved Reverse(value) to libquery.chh and improved it
	- libstrings.chh: Format and TrimLeft no longer walk the string one character at a time

	- libbytes.chh: BytesToHex no longer builds its result by concatenation

	- libhttp.chh: the plain and TLS servers now share one connection worker and accept loop
	- libhttp.chh: bug: a Content-Length that is not a number raised RTError
	- libhttp.chh: HttpServeTLS now returns err on an empty cert or key path

- values:
	- strings now store their rune count, so len(value), indexing, slicing and copying are much faster

- builtins:
	- indexof(value, search) no longer walks the string when it is all ASCII
	- charat(value, index) no longer allocates a new string for the character
	- list(value) on a string no longer allocates a string per character
	- slice(value, start, end) now shares one bounds check between strings, lists and bytes

- orchestrator:
	- deadlock: let blocking primitives supply their own liveness test instead of the detector knowing each one
	- an actor now releases its engine as soon as it finishes rather than when something waits on it

- repl:
	- adjusted the prompt color to match other cli tools

- bytecode:
	- compiled files no longer store source positions

- parser:
	- rename ifExprC to elseExpr

- disassembler:
	- bug: a chunk whose code ended mid instruction printed a bad operand

- other:
	- various cleanups in the codebase
	- go.mod bumped to 1.26.5

FYI Breaking:

- Reverse(value) has moved from libstrings.chh to libquery.chh, the functions produce the same results, so load("libquery.chh"); should fix it for you

- the bytecode format is now version 2 due to the source position change. Anything compiled with 1.1.0 no longer runs and should be recompiled.

- a runtime error from a compiled program no longer names a file or a line. You should run your program from source when you need a position.

- compiling the same code under a different file name now gives the same binary, see 'chippy doc bytecode'

256774e0453506adae6ad75d647812527186faba2d4877f72093ba388ae0ac24 chippy-1.1.1-linux-aarch64.tar.xz
9948f293190a63327a55a7d0fb4c4a0681238d8f1d17cfac1f5add12f8542b28 chippy-1.1.1-linux-x86_64.tar.xz