Skip to content

Releases: leostera/caramel

New Stdlib modules: Binary, Calendar, Erlang, Ets, Lists, Maps, and more

14 Oct 20:08
901c977
Compare
Choose a tag to compare
  • Lots of work on the Stdlib, as visible in
    issue #8.

  • External definitions now can override the name they will use in the
    generated source code with their string value

  • Parser supports arbitrarily parenthesized expressions


The idea for this pre-release is to start testing out how the Stdlib
feels to write some small programs and scan 1) whether some obvious FFIs
are missing, and 2) how straightforward it is to write new ones.

Internal Refactors

06 Oct 08:17
cfe7460
Compare
Choose a tag to compare
Internal Refactors Pre-release
Pre-release

The internal modules for the compiler and the typing experiments are
split now, and the Erlang support is unified in a single library that
only depends on the standard library and the Sexplib library for
deriving Sexp representations.

The goals here are:

  • make the codebase easier to hack on in general -- there's still work
    to do here, as I think the ideal structure would be flatter than it is
    right now.

  • prepare the Erlang library for continued work -- extending the lexer
    with positioning information on every read token will help parametrize
    the AST with contextual information. This would aid in error
    reporting.

  • establish clearer compilation and type checking paths:

    • from OCaml to Erlang,
    • from OCaml Lambda to Core Erlang,
    • from Erlang to Native binaries.

Republish v0.0.4 now using host triplets

05 Oct 11:01
10aed6d
Compare
Choose a tag to compare
v0.0.4-triples

dist: use valid gcc host triples in release names

First release packaging a Stdlib

01 Oct 20:00
56e85d5
Compare
Choose a tag to compare
Pre-release
First release shipping with a tiny Stdlib!

Now you don't really need OCaml installed for Caramel to be able to
compile some ML and typecheck some Erlang

Rerelease v0.0.3 including a Linux+musl binary

30 Sep 12:56
a4030ba
Compare
Choose a tag to compare
v0.0.3-musl

New release naming and a linux+musl binary

Small updates and start splitting goals/targets

29 Sep 21:02
a383708
Compare
Choose a tag to compare

What's new:

  • compilation should have much nicer errors when dealing with
    unsupported features and expression at the value and type level
  • new command for type-checking erlang: caramelc check
  • --target flag is now available, and supports core, erl and
    native targets
  • --dump-ast flag is now documented and hooked up to core erlang
    backend
  • string concatenation should support arbitrarily complex expressions
    now
  • license was updated in binary file to point to BSD 3-clause too

First release with CI built binaries!

29 Sep 17:54
34b120a
Compare
Choose a tag to compare
Pre-release
v0.0.2-bin

ci: set tarball name for windows separately

First release! :tada:

26 Sep 19:23
54089c8
Compare
Choose a tag to compare
First release! :tada: Pre-release
Pre-release

Too much to note here right now, but I'll eventually write some proper release notes. So far this bootstraps the following:

  1. OCaml to Erlang compiler, so you can throw some OCaml at it and it'll spit out Erlang. Check the examples folders. All of the .erl files in there have been generated in this way.

  2. Erlang typechecker, so if your Erlang has type-errors it'll fail and you'll see why. This is highly experimental but its somewhat functioning. It should work fine for single process interactions (So no send+recv). For send+recv type safety have a look first at the tests in the ./tests/typechecker folder.

For the time being, the following binaries should be enough to get you up and running and messing around with it on a Linux machine.