Skip to content

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 17:14
· 1 commit to main since this release
Release v1.10.0

FEATURES
- crymble-web build --release is now LLVM-optimized (-O3): in the browser an app's own frame work runs
  2.6 to 5.9 times faster, and pages are about 40% smaller (Embrace 7.9 -> 5.1 MB, 1.85 MB gzipped).
  A release compile takes about 1.7 times longer; builds without --release stay quick (-O0).
- After updating, run bin/crymble-web setup once: the toolchain's compiler is rebuilt (a few minutes).
  crymble-web, tools/wasm/spec.sh and an app's own checks now refuse a toolchain built from anything
  else (tools/wasm/setup.sh --check), naming the stale step.

BUGFIXES
- Web builds could copy an object only partly (dup) or get its size wrong when one of its fields is
  typed by a generic module whose struct appears later in the program - in Embrace, Enter on a
  reference cell crashed the browser tab. A Crystal compiler bug (upstream too, on every target): the
  toolchain patch now computes these sizes from complete types, and a size that would still be wrong
  stops the build with an error naming it.

CLEANUP
- README and docs: the browser version is tested in Chromium and Firefox (Safari not yet).
- tools/wasm/spec.sh and check.sh run every part twice, unoptimized and optimized; new checks for
  exceptions in optimized code and for object sizes typed early.