||7 months ago|
|cmake||8 months ago|
|docs||8 months ago|
|include||7 months ago|
|resources||8 months ago|
|scripts||11 months ago|
|src||8 months ago|
|tools||8 months ago|
|.clang-format||11 months ago|
|.clang-tidy||9 months ago|
|.dockerignore||8 months ago|
|.gitignore||8 months ago|
|.ignore_sanitize||1 year ago|
|CMakeLists.txt||7 months ago|
|LICENSE||12 months ago|
|README.org||8 months ago|
|builder||7 months ago|
|dev.org||9 months ago|
- Serene lang
- How to build
- Get Help
Setup development environment
Setup the githook and install dependencies using the following commands:
You would need the following dependencies to start get started with Serene development
- LLVM (LLVM Instructions coming up.)
- doxygen (If you want to build the docs as well)
- CCache (If you want faster builds specially with the LLVM)
Important Note: We're trying to keep Serene up to date with the LLVM release cycle till we get
to our first release. So we use the development version of the LLVM. Currently we are using
aff028f7d8322c625422febd3d8b9794746cdc5b commit as our reference.
MLIR is a part of the LLVM project and in order to build it we need to build the LLVM itself as well. Here is a quick guide to build the latest version of the LLVM and MLIR.
## YES we're using the development version of MLIR git clone https://github.com/llvm/llvm-project.git mkdir llvm-project/build cd llvm-project/build cmake -G Ninja ../llvm \ -DCMAKE_INSTALL_PREFIX=/your/target/path \ -DLLVM_PARALLEL_COMPILE_JOBS=7 \ -DLLVM_PARALLEL_LINK_JOBS=1 \ -DLLVM_BUILD_EXAMPLES=ON \ -DLLVM_TARGETS_TO_BUILD="X86" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DLLVM_CCACHE_BUILD=ON \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DLLVM_ENABLE_PROJECTS='clang;lldb;lld;mlir;clang-tools-extra;compiler-rt' \ -DCMAKE_C_COMPILER=clang \ # If you have clang installed already -DCMAKE_CXX_COMPILER=clang++ \ # If you have clang installed already -DLLVM_ENABLE_LLD=ON cmake --build . cmake --build . --target check-mlir cmake -DCMAKE_INSTALL_PREFIX=/your/target/location -P cmake_install.cmake
You need to have
lld installed to compile the LLVM with the above command. Also if you
are not using
ccache just remove the option related to it from the above command.
If you're using Emacs as your development environment just install
Heads up for devs
While you're working on Serene be mindful of:
DEBUGmode we dynamically link against
libsandue to the fact that we build the
libsereneas a shared lib by default. This means we need to
libclang_rtbefore we run any executable. If you're using the
builderscript you're all set otherwise you can run an executable like:
LD_PRELOAD=$(clang -print-file-name=libclang_rt.asan-x86_64.so) /path/to/executable
How to build
In order to build for development (Debug mode) just use
./builder build to setup the build and build
the project once and then you can just use
./builder compile to build the changed files only.
Check out the
builder script for more subcommands and details.
Copyright (c) 2019-2022 Sameer Rahmani <email@example.com>
Serene is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
If you need help or you just want to hangout, you can find us at:
- IRC: #serene-lang on the libera chat server
- Matrix Network: https://matrix.to/#/#serene:matrix.org?via=matrix.org&via=gitter.im
- MailingList: https://www.freelists.org/list/serene