This commit is contained in:
xushiwei
2024-05-06 12:31:55 +08:00
parent 99d74ce4b6
commit 02b1d5ed84
2 changed files with 35 additions and 0 deletions

View File

@@ -9,3 +9,38 @@ llgo - A Go compiler based on LLVM
[![Language](https://img.shields.io/badge/language-Go+-blue.svg)](https://github.com/goplus/gop)
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](https://github.com/goplus/gop).
## How to install
Follow these steps to generate the `llgo` command (its usage is the same as the `go` command):
### on macOS
```sh
brew update # execute if needed
brew install llvm@17
go install -v ./...
```
### on Linux
```sh
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
```sh
cd <demo-directory> # eg. cd _demo/genints
llgo run .
```