All Projects → kai-language → Kai

kai-language / Kai

An expressive low level programming language

Programming Languages

swift
15916 projects
language
365 projects

Projects that are alternatives of or similar to Kai

Rhine Ml
🏞 an OCaml compiler for an untyped lisp
Stars: ✭ 621 (+813.24%)
Mutual labels:  compiler, llvm
Grin
GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Stars: ✭ 834 (+1126.47%)
Mutual labels:  compiler, llvm
Llvmswift
A Swift wrapper for the LLVM C API (version 9.0.1)
Stars: ✭ 641 (+842.65%)
Mutual labels:  compiler, llvm
Scala Native
Your favorite language gets closer to bare metal.
Stars: ✭ 4,053 (+5860.29%)
Mutual labels:  compiler, llvm
Zion
A statically-typed strictly-evaluated garbage-collected readable programming language.
Stars: ✭ 33 (-51.47%)
Mutual labels:  compiler, llvm
Enzyme
High-performance automatic differentiation of LLVM.
Stars: ✭ 418 (+514.71%)
Mutual labels:  compiler, llvm
Numba
NumPy aware dynamic Python compiler using LLVM
Stars: ✭ 7,090 (+10326.47%)
Mutual labels:  compiler, llvm
Bfc
An industrial-grade brainfuck compiler
Stars: ✭ 340 (+400%)
Mutual labels:  compiler, llvm
Lyca
programming language compiler w/ llvm
Stars: ✭ 9 (-86.76%)
Mutual labels:  compiler, llvm
Cfl
a Compileable statically typed Functional programming Language
Stars: ✭ 7 (-89.71%)
Mutual labels:  compiler, llvm
Bytecoder
Rich Domain Model for JVM Bytecode and Framework to interpret and transpile it.
Stars: ✭ 401 (+489.71%)
Mutual labels:  compiler, llvm
Llvm Tutorial Standalone
DEPRECATED (Use: https://github.com/llvm-hs/llvm-hs-kaleidoscope )
Stars: ✭ 38 (-44.12%)
Mutual labels:  compiler, llvm
Nlvm
LLVM-based compiler for the Nim language
Stars: ✭ 380 (+458.82%)
Mutual labels:  compiler, llvm
Langcraft
Compiler from LLVM IR to Minecraft datapacks.
Stars: ✭ 495 (+627.94%)
Mutual labels:  compiler, llvm
Sericum
(Toy) Compiler Infrastructure influenced by LLVM written in Rust
Stars: ✭ 366 (+438.24%)
Mutual labels:  compiler, llvm
Gocaml
🐫 Practical statically typed functional programming language implementation with Go and LLVM
Stars: ✭ 653 (+860.29%)
Mutual labels:  compiler, llvm
Soll
SOLL is a new compiler for generate Ewasm from solidity and yul. See a demo here: https://asciinema.org/a/ezJqNLicn5fya02zwu4VXIo8a
Stars: ✭ 329 (+383.82%)
Mutual labels:  compiler, llvm
Staticscript
🎉🎉🎉 A new statically typed programming language, syntactically like TypeScript.
Stars: ✭ 337 (+395.59%)
Mutual labels:  compiler, llvm
Ldc
The LLVM-based D Compiler.
Stars: ✭ 937 (+1277.94%)
Mutual labels:  compiler, llvm
Unlisp Llvm
Compiler for a toy Lisp language
Stars: ✭ 33 (-51.47%)
Mutual labels:  compiler, llvm

Kai Programming Language

Gitter chat

An expressive low level programming language.

Documentation

Read the docs at docs.kai-lang.org

Featured projects

Have you built something cool? Feel free to share it here!

  • KaiNES: A pure-Kai NES emulator.
  • KaiVM: A register-based VM and disassembler.
  • Kinit: A minimal init system.

Download and Install

MacOS

You can download and install Kai through our homebrew tap.

brew install kai-language/tap/kai

Linux

In the future, Kai will offer official binary distribution through apt and other package managers. See building Kai.

Building Kai

Before you can begin building Kai, you must install the following dependencies:

  • Swift 4.0
  • LLVM 4 or higher
  • libgit2

Swift 4

On Mac, the preferred way to install Swift 4 is by installing Xcode. After installing Xcode, make sure to run it once and say yes to installing the command-line tools.

LLVM

By far, the easiest way to install LLVM on Mac is through brew. After setting up brew, run the following to install the correct version of LLVM:

brew install llvm

Using LLVM with Swift Package Manager

Now that LLVM is installed, append the directory to your path in ~/.bash_profile

/usr/local/opt/llvm/bin

In order for Swift Package Manager to build against LLVM's libraries, we need to setup a pkg-config file. Thankfully, LLVMSwift has a script for this:

Grab the script by running swift package update in Kai's root directory. Then, run:

swift .build/checkouts/LLVMSwift.git-<version-here>/utils/make-pkgconfig.swift

LibGit2

Just like LLVM, libgit2 can be installed through brew.

brew install libgit2
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].