Concoct is an imperative, dynamically-typed, interpreted, general-purpose programming language written in C.
🚧 Note: This project is very much a work in progress. The interpreter is not yet functional. Have a look at the roadmap.
For more information about Concoct, please see the wiki.
- A C compiler that supports the C99 standard (Clang, GCC, MinGW, MSVC >=2015)
- CMake (>=3.1.0)
- make/gmake (if using Linux/Unix, Cygwin, or MinGW)
-
Install prerequisites: Debian/Ubuntu:
apt-get install cmake gcc git make
CentOS/Fedora/RHEL:
yum install cmake gcc git make
FreeBSD:
pkg install clang cmake git make
-
Obtain the source code via
git
or download a zip archive:git clone https://github.com/Concoctist/concoct.git
Or:
wget https://github.com/Concoctist/concoct/archive/master.zip && unzip master.zip
-
In the top-level directory where
CMakeLists.txt
exists, create a build directory:mkdir bld && cd bld
-
Generate the
Makefile
(you can alternatively useccmake
here if you prefer):cmake ..
-
Build Concoct:
make
-
There should now be a
concoct
executable under thebin
directory if the build was successful:$ ./concoct -v Concoct v0.1.0 rev 148 (d976be2) (64-bit Linux) (Debug) built at 00:46 on 01-02-2022
-
Install the prerequisite software. This includes Visual Studio >=2015 with the "Desktop development with C++" workload as shown below. The aforementioned workload should include CMake. You can also optionally install Git and add the executable to your path:
-
Clone the Concoct source code. This can be done via Visual Studio or by using a git client of your choice:
Or:
-
Generate the CMake cache:
-
Build Concoct:
-
If the build was successful,
concoct.exe
should now exist in your output directory:
-
Build image:
podman build -t concoct -f Containerfile
-
Run container:
podman run -it localhost/concoct
Feel free to submit an issue if you require assistance or would like to make a feature request. You are also welcome to join us on Matrix at https://matrix.concoct.ist/. Any contributions such as build testing, creating bug reports or feature requests, and submitting pull requests are appreciated. Our code style guidelines can be found in the "Coding Convention" section of CONTRIBUTING.md. Please see the fork and pull guide for direction if you are not certain how to submit a pull request.