Files
llgo/README.md
xushiwei 02b1d5ed84 README
2024-05-06 12:31:55 +08:00

1.7 KiB

llgo - A Go compiler based on LLVM

Build Status Go Report Card GitHub release Coverage Status GoDoc Language

This is a Go compiler based on LLVM in order to better integrate Go with the C ecosystem. It's a subproject of the Go+ project.

How to install

Follow these steps to generate the llgo command (its usage is the same as the go command):

on macOS

brew update  # execute if needed
brew install llvm@17
go install -v ./...

on Linux

echo 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-17 main' | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update  # execute if needed
sudo apt-get install --no-install-recommends llvm-17-dev
go install -v ./...

Demo

The examples of llgo are all in the _demo directory (it start with _ to prevent the go command from compiling it):

  • _demo/genints: closure usage in llgo

How to run demos

cd <demo-directory>  # eg. cd _demo/genints
llgo run .