llgo

LLVM-based compiler for Go

  • Owner: go-llvm/llgo
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

llgo

This project has moved to llvm.org. Any contributions or bug reports should be sent there. Please refer to the llgo readme for more information.

llgo is a Go frontend for LLVM, written in Go.

llgo is under active development. It compiles and passes most of the standard library test suite and a substantial portion of the gc test suite, but there are some corner cases that are known not to be handled correctly yet. Nevertheless it can compile modestly substantial programs (including itself; it is self hosting on x86-64 Linux).

Progress will be reported on the mailing list.

Installation

llgo requires:

Note that Ubuntu Precise is one Linux distribution which does not package a sufficiently new CMake or C++ toolchain.

If you built a newer GCC following the linked instructions above, you will need to set the following environment variables before proceeding:

export PATH=/path/to/gcc-inst/bin:$PATH
export LD_LIBRARY_PATH=/path/to/gcc-inst/lib64:$LD_LIBRARY_PATH
export CC=`which gcc`
export CXX=`which g++`
export LIBGO_CFLAGS=--gcc-toolchain=/path/to/gcc-inst

To build and install llgo:

# Ensure $GOPATH is set.
go get -d github.com/go-llvm/llgo/cmd/gllgo
$GOPATH/src/llvm.org/llvm/bindings/go/build.sh -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=host
cd $GOPATH/src/github.com/go-llvm/llgo
make install prefix=/path/to/prefix j=N  # where N is the number of cores on your machine.

Running

We install two binaries to $prefix/bin: llgo and llgo-go.

llgo is the compiler binary. It has a command line interface that is intended to be compatible to a large extent with gccgo.

llgo-go is a command line wrapper for go. It works like the regular go command except that it uses llgo to build.

Main metrics

Overview
Name With Ownergo-llvm/llgo
Primary LanguageGo
Program languageMakefile (Language Count: 4)
Platform
License:Other
所有者活动
Created At2011-11-05 14:23:32
Pushed At2015-01-05 01:15:37
Last Commit At2015-01-05 09:15:37
Release Count1
Last Release Name0.2 (Posted on )
First Release Name0.2 (Posted on )
用户参与
Stargazers Count1.3k
Watchers Count65
Fork Count80
Commits Count1k
Has Issues Enabled
Issues Count87
Issue Open Count22
Pull Requests Count131
Pull Requests Open Count0
Pull Requests Close Count9
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private