mirror of
https://github.com/exaloop/codon.git
synced 2025-06-03 15:03:52 +08:00
* Upgrade to LLVM 15 (WIP) * Call `setPresplitCoroutine()` on coro LLVM funcs * Use new pass manager * Update deps * Update docs * Fix exceptions on M1 * Add libunwind * Use Orc and JITLink for "codon run" * JITLink integration * Fix callback * Fix strbuf, fix GC root registration * Fix test init * Fix llvm function * Fix pickle, float atomics * Add TargetLibraryAnalysis * Use new LLVM pass manager in GPU codegen * Fix libunwind linking * Fix libunwind * Fix GPU passes * Don't link libunwind explicitly * Bump version * Update plugins for new pass manager * Fix bash error * Fix GPU GV extraction * Move simd module to experimental folder * Update file read * Add benchmark programs * Add dynamic tuple * Fix parser tuple slicing bug * Make DynamicTuple interoperable with Tuple * Fix DynamicTuple GPU interop * Dockerize builds * Simplify CMake * Revert "Simplify CMake" This reverts commit 08d2920349b5033750b54b4fb7aaa9bac264b750. Co-authored-by: Ibrahim Numanagić <ibrahimpasa@gmail.com>
39 lines
1.1 KiB
Markdown
39 lines
1.1 KiB
Markdown
Unless you really need to build Codon for whatever reason, we strongly
|
|
recommend using pre-built binaries if possible.
|
|
|
|
# Dependencies
|
|
|
|
Codon uses an LLVM fork based on LLVM 15. To build it, you can do:
|
|
|
|
``` bash
|
|
git clone --depth 1 -b codon https://github.com/exaloop/llvm-project
|
|
mkdir -p llvm-project/llvm/build
|
|
cd llvm-project/llvm/build
|
|
cmake .. \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DLLVM_INCLUDE_TESTS=OFF \
|
|
-DLLVM_ENABLE_RTTI=ON \
|
|
-DLLVM_ENABLE_ZLIB=OFF \
|
|
-DLLVM_ENABLE_TERMINFO=OFF \
|
|
-DLLVM_TARGETS_TO_BUILD=all
|
|
make
|
|
make install
|
|
```
|
|
|
|
# Build
|
|
|
|
The following can generally be used to build Codon. The build process
|
|
will automatically download and build several smaller dependencies.
|
|
|
|
``` bash
|
|
mkdir build
|
|
(cd build && cmake .. -DCMAKE_BUILD_TYPE=Release \
|
|
-DLLVM_DIR=$(llvm-config --cmakedir) \
|
|
-DCMAKE_C_COMPILER=clang \
|
|
-DCMAKE_CXX_COMPILER=clang++)
|
|
cmake --build build --config Release
|
|
```
|
|
|
|
This should produce the `codon` executable in the `build` directory, as
|
|
well as `codon_test` which runs the test suite.
|