Releases: leostera/caramel
New Stdlib modules: Binary, Calendar, Erlang, Ets, Lists, Maps, and more
-
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
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
v0.0.4-triples dist: use valid gcc host triples in release names
First release packaging a Stdlib
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
v0.0.3-musl New release naming and a linux+musl binary
Small updates and start splitting goals/targets
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 supportscore
,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!
v0.0.2-bin ci: set tarball name for windows separately
First release! :tada:
Too much to note here right now, but I'll eventually write some proper release notes. So far this bootstraps the following:
-
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. -
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.