README
This commit is contained in:
22
README.md
22
README.md
@@ -10,6 +10,22 @@ llgo - A Go compiler based on LLVM
|
|||||||
|
|
||||||
LLGo is a Go compiler based on LLVM in order to better integrate Go with the C ecosystem including Python. It's a subproject of [the Go+ project](https://github.com/goplus/gop).
|
LLGo is a Go compiler based on LLVM in order to better integrate Go with the C ecosystem including Python. It's a subproject of [the Go+ project](https://github.com/goplus/gop).
|
||||||
|
|
||||||
|
LLGo aims to expand the boundaries of Go/Go+, providing limitless possibilities such as:
|
||||||
|
|
||||||
|
* Game development
|
||||||
|
* AI and data science
|
||||||
|
* WebAssembly
|
||||||
|
* Embedded development
|
||||||
|
* ...
|
||||||
|
|
||||||
|
How can these be achieved?
|
||||||
|
|
||||||
|
```
|
||||||
|
LLGo := Go + C + Python
|
||||||
|
```
|
||||||
|
|
||||||
|
LLGo is compatible with **C and Python** through the language's **Application Binary Interface (ABI)**, while LLGo is compatible with Go through its **syntax (source code)**.
|
||||||
|
|
||||||
|
|
||||||
## C standard libary support
|
## C standard libary support
|
||||||
|
|
||||||
@@ -194,11 +210,7 @@ Here are some examples related to them:
|
|||||||
|
|
||||||
## Go syntax support
|
## Go syntax support
|
||||||
|
|
||||||
Most of the Go syntax is already supported. Except for the following, which needs to be improved:
|
All Go syntax is already supported. Here are some examples:
|
||||||
|
|
||||||
* map (Very limited support)
|
|
||||||
|
|
||||||
Here are some examples related to Go syntax:
|
|
||||||
|
|
||||||
* [concat](_demo/concat/concat.go): define a variadic function
|
* [concat](_demo/concat/concat.go): define a variadic function
|
||||||
* [genints](_demo/genints/genints.go): various forms of closure usage (including C function, recv.method and anonymous function)
|
* [genints](_demo/genints/genints.go): various forms of closure usage (including C function, recv.method and anonymous function)
|
||||||
|
|||||||
Reference in New Issue
Block a user