Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 07:21
· 79 commits to main since this release
ea25d48

The first release: the front end of the Synod compiler. It reads, checks
the form of, and formats Synod source for specification v0.2.0. Running
programs (synod run) comes in a later release.

Added

  • synod fmt [paths…] rewrites .synod files into canonical form;
    --check lists the files that would change and exits 1.
  • synod check [paths…] reports syntax, indentation, header and
    canonical-form errors, with a hint showing the canonical line;
    --json prints the synod-check/1 format.
  • synod version prints the language, compiler and format versions; the
    compiler line shows the release tag and the commit it was built from.
  • Lexer and parser for the whole structure grammar: indentation blocks,
    comments, continuation lines (else, otherwise), holes, typed
    collections, members, import paths.
  • Canonical formatting: numbers, durations and colors respelled; single-item
    parentheses removed; not (…) rewritten to the direct operator; imports
    hoisted and sorted; blank lines and comments laid out.
  • Binaries for macOS (arm64, amd64, universal), Linux (amd64, arm64) and
    Windows (amd64, arm64); install with Homebrew
    (brew install synodlang/tap/synod), Scoop, install.sh or
    go install. See https://synodlang.github.io/install/.

Known limitations

  • Binaries are not code-signed: macOS and Windows warn when they are
    downloaded with a browser. Package managers and install.sh avoid this.
  • Phrase resolution, types and contexts are not checked yet.