An open API service indexing awesome lists of open source software.

https://github.com/qatlang/qat

A modern reimagination of systems programming... by @AldrinMathew
https://github.com/qatlang/qat

compiler low-level programming-language system-programming

Last synced: about 1 month ago
JSON representation

A modern reimagination of systems programming... by @AldrinMathew

Awesome Lists containing this project

README

          


Qat website badge
Youtube badge
Discord badge
Reddit badge
Github badge

![Qat cover image](./media/qat_cover_wide.png)


Open Collective badge
BuyMeACoffee badge
Ko-Fi badge
Paypal badge


**qat** is closer to your machine's heart. A superfast, modern systems language for reliable & maintainable code...

### Focus-points of `qat`

- Changes in data are obvious by design
- Advanced compile-time execution & configuration
- Safe pointer types
- Built-in memory management features
- Expressive & flexible syntax
- Simplistic approach to systems programming
- Modular & customisable build process

If you are facing issues with the language, [create an issue](https://github.com/qatlang/qat/issues/new/choose).

### Building the project

Requirements:

- CMake 3.16.3 minimum - Latest recommended
- LLVM 20 (llvm + lld + clang) - Static libraries
- Boost 1.86.0 (Boost.Filesystem) - Static libraries
- icu4c 74.x (libicudata + libicuuc) - Static libraries

#### NOTICE FOR BUILDING

> Building this project requires a specific build of LLVM. The build configuration of LLVM is broken when lld libraries are enabled - Dependencies like `zlib` and `zstd` are not found and linked properly when they are provided as static libraries. I had to modify the CMake configuration to build LLVM without errors.

Make sure that the LLVM, Boost and icu4c builds are in release mode, if you are building those yourself.

To configure the CMake project, run `cmake -DCMAKE_INSTALL_PREFIX="${HOME}/dev/qat" -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR="/path/to/llvm" -DCMAKE_CXX_COMPILER="clang++-19" -DBOOST_DIR="/path/to/boost" -DCMAKE_C_COMPILER="clang-19" -DCMAKE_C_COMPILER_WORKS=1 -DCMAKE_CXX_COMPILER_WORKS=1 -DBUILD_SHARED_LIBS=false -GNinja -S src/ -B build/`

To build, run `cmake --build build --config Release --target install`

The above command installs the language in the directory `${HOME}/dev/qat`, which is the recommended installation path for unix-like systems. Feel free to make changes to the above configuration to suit your needs.

### License

This project is published under the [**Public Source Licence**](https://github.com/qatlang/qat/blob/main/LICENSE) and is solely maintained by [Aldrin Mathew](https://github.com/AldrinMathew).