- Using llvm toolchain
- Generate llvm IR
- Part of the runtime library is written in C, other write in gcool.
- Use Fat Pointer
- Special optimization for primitive types(Int, Float, Bool, Std, NullType), they will not use heap memory(place data directly in object pointer).
- user define operator.
- garbage collection
dependencies: llvm-13, google-test, Ninja, c++20
mkdir build
cd build
cmake .. -G Ninjaset CMakeCache.txt GTEST_DIR
ninjacd ./example/gcoolUsage make ./program