dependabot[bot] cf67795ff4 build(deps): bump golang.org/x/tools from 0.20.0 to 0.21.0
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-07 00:59:11 +00:00
2024-05-07 07:22:49 +08:00
2024-04-25 07:37:04 +08:00
2024-05-07 00:15:06 +08:00
2024-05-06 08:21:47 +08:00
2024-05-07 00:15:06 +08:00
2024-04-27 06:41:24 +08:00
2024-05-05 21:35:26 +08:00
2024-05-06 19:42:18 +08:00
2024-05-07 07:22:49 +08:00
2024-05-07 07:22:49 +08:00
2024-05-07 07:22:49 +08:00
2023-12-10 10:43:28 +08:00
2024-05-06 23:13:20 +08:00

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 _demo directory contains our demos (it start with _ to prevent the go command from compiling it):

  • hello: call C printf to print Hello world
  • concat: call C fprintf with stderr, and Go variadic function
  • qsort: call C function with a callback (eg. qsort)
  • genints: various forms of closure usage (including C function, recv.method and anonymous function)

How to run demos

cd <demo-directory>  # eg. cd _demo/genints
llgo run .
Description
A Go compiler based on LLVM in order to better integrate Go with the C ecosystem including Python and JavaScript
Readme Apache-2.0 63 MiB
Languages
LLVM 66.3%
Go 18.9%
Assembly 13.2%
C 1.2%
Python 0.1%
Other 0.1%