General programming language for low-level performant program.
- nix users can use this
nix-shell -p meson wezterm llvmPackages_17.libllvm ninja
- install llvm version >17.0
- ubuntu/debian users use this
wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh ./llvm.sh 17 # run as root - install meson and ninja (
python3 -m pip install --user meson ninja) - actually building
mkdir build # or whatever equivalent of this on Windows meson setup build meson compile -v -C build
- Look at
spec.mdfor the spec of the language- (TODO)
docs/**/*.mdfor documentation of libraries and the compiler lib/env_args.{cpp,h}for arguments of the program (kapuc compiler)src/kapucfor the compiler stagesrc/kapuc/{lex,parse}.{c,h}for syntax/parser
- (TODO)
src/kapu/for the main package manager/build system
- Before making pr, make sure
- You run
clang-formatwith all of the files you modified (or simpler,git clang-format --stagedfor staged changes) - You make sure the build is successful
- (TODO) check clang-tidy with
clang-tidy --warnings-as-errors=* ./src/kapuc/*.{c,h} ./lib/env_args.{cpp,h}
- You run
- Windows
- Probably have an linking issues on build, no testing were done on Windows.
- Cannot be built with
cl.exe(Visual Studio C Compiler), please use Cygwin if you are on Windows or use WSL. (TODO: this could work? we could remove posix parts out but why)