Skip to content

Releases: kriol-lang/kriol

v1.16.2-alpha+build1

v1.16.2-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.16.2 Alpha - Build 1

A patch release that brings Kriol to macOS: a release build for Apple silicon,
an installer that sets it up, and the build and test fixes that make it work.

- **Kriol now ships for macOS on Apple silicon.** Each release includes a
  `macos-arm64` archive that runs on a Mac without Homebrew. It does not compile
  to WebAssembly yet. (#20, @edilson14; @anaximeno)
- **`install.sh` installs on macOS.** It picks the right archive for the
  machine, also from a shell running under Rosetta, and says clearly when there
  is no build for the platform. Linking programs needs the Xcode Command Line
  Tools (`xcode-select --install`). (@anaximeno)
- **`install.sh` verifies what it downloads** against the release
  `SHA256SUMS.txt`, and stops before extracting a truncated or swapped
  archive. (#21, @kidiatoliny)

- The runtime bitcode now embeds with Apple clang, which rejects `#embed`
  files that start with a byte above 0x7F. (@anaximeno)
- The C and C++ compilers given to CMake are no longer replaced by the newest
  clang found. (@anaximeno)
- `run_tests.sh` runs on macOS. (#20, @edilson14; @anaximeno)

- A contributing guide is now available in CONTRIBUTING.md. (@anaximeno)

Thanks to everyone who contributed to this release:

- @edilson14
- @kidiatoliny
- @anaximeno

v1.16.1-alpha+build2

v1.16.1-alpha+build2 Pre-release
Pre-release

Choose a tag to compare

Version 1.16.1 Alpha - Build 2

A patch release of correctness fixes in the semantic analyser and the code
generator, plus a fix that makes the Windows test suite report real results again.

- **Recursive record fields no longer crash the compiler.** A `molda` field whose
  type is the record being declared, directly or through an array, is rejected
  with its own diagnostic, and a field of unknown type is no longer added to the
  record. (#14, @kidiatoliny)
- **Global initializers that read later globals are rejected,** including through
  a function call or mutual recursion, reported once per global. (#19, @kidiatoliny)
- **Generated globals are prefixed with `kriol.g.`,** so a Kriol global name can
  no longer clash with a C library or runtime symbol. (#17, @kidiatoliny)
- **The source name string moved to `__kriol.source_name`,** keeping it out of the
  user function namespace. (#18, @kidiatoliny)
- **Record storage sizes are computed once** instead of per use, and saturate
  instead of overflowing on doubling chains. (#16, @kidiatoliny)
- **The Windows test fixtures are no longer read as CRLF.** The runners check out
  with `core.autocrlf=true` and the repository had no `.gitattributes`, so every
  `.stdout` and `.stdin` fixture arrived with CRLF line endings while
  `run_tests.ps1` normalized only what a program wrote. The exact comparison
  failed for every test whose fixture contains a newline. Fixtures are now marked
  as binary, and a fixture is normalized when read. (@anaximeno)

- The Windows CI test step now fails when `run_tests.ps1` fails, instead of
  having its exit status overwritten by the commands that follow it.
  (#15, @kidiatoliny)
- A failed Windows program test reports why: that it did not compile and the
  compiler diagnostics, that it timed out, or its exit status, its stderr and the
  line of its output that differs from the fixture. (@anaximeno)

- The README links the four-minute presentation video. (@anaximeno)
- A changelog is now kept in CHANGELOG.md.

Thanks to everyone who contributed to this release:

- @kidiatoliny - for the fixes to the semantic analyser, the code generator
  and the Windows CI step
- @anaximeno

v1.16.0-alpha+build2

v1.16.0-alpha+build2 Pre-release
Pre-release

Choose a tag to compare

Version 1.16.0 Alpha - Build 2

v1.14.0-alpha+build1

v1.14.0-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.14.0 Alpha - Build 1

v1.13.1-alpha+build1

v1.13.1-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.13.1 Alpha - Build 1

v1.13.0-alpha+build1

v1.13.0-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.13.0 Alpha - Build 1

v1.10.0-alpha+build2

v1.10.0-alpha+build2 Pre-release
Pre-release

Choose a tag to compare

Version 1.10.0 Alpha - Build 2

v1.9.2-alpha+build1

v1.9.2-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.9.2 Alpha

v1.9.1-alpha+build1

v1.9.1-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.9.1 Alpha

v1.9.0-alpha+build1

v1.9.0-alpha+build1 Pre-release
Pre-release

Choose a tag to compare

Version 1.9.0 Alpha