Purely functional programming with lisp-syntax. Less infix, more parens!
Visit https://carth.pink/ for an overview of the language and more info.
Just as a little disclaimer: this project is in the very early stages of development, so there are no guarantees of stability etc.
This is a high-level overview of what is planned for the language, and some of the points are just tentative. See TODO.org for more extensive list of planned features and more detailed descriptions.
To build the project and install the
carth binary, the core library,
and the standard library, simply run
make install, which defaults to
installing the binary in
~/.local/bin, the core library in
~/.local/lib, and the modules of the Carth standard library in
At compiler runtime, the dependencies are
libgc, which are linked into the executables
produced by Carth.
Carth must further be able to find the core library and standard library
modules, so you must have added the directory of the installed core
~/.local/lib) to your
variable, the directory of the installed standard library (default
~/.carth/mod) to your
CARTH_MODULE_PATH environment variable.
# General help carth help carth -h carth --help # Help for a specific subcommand carth help c # Compile and run a program with default output filename carth c examples/fizzbuzz.carth ./out # Run with the JIT compiler carth run examples/fizzbuzz.carth # Compile a program with a specific output filename carth c -o examples/fizzbuzz examples/fizzbuzz.carth ./examples/fizzbuzz
Carth is released under the AGPL license, version 3 or later. See LICENSE.
Note that by default, all programs written in Carth will have to be distributed under the AGPLv3 license as well, as not just the compiler itself, but also the standard library you include and the core library you link with are AGPLv3 licensed. Technically you could write your own standard library and core library with some non-copyleft license to avoid this, but I hope you won't! ;)
Copyright (C) 2020 Johan Johansson
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.