{"repo":"goplus/xgo","free":true,"listed":false,"github":"https://github.com/goplus/xgo","clone":"git clone https://github.com/goplus/xgo.git","description":"XGo is a programming language that reads like plain English. But it's also incredibly powerful — it lets you leverage assets from C/C++, Go, Python, and JavaScript/TypeScript, creating a unified software engineering ecosystem. Our vision is to enable everyone to become a builder of the world.","language":"Go","stars":9447,"topics":["ai-native","data-science","golang","goplus","low-code","programming-language","scientific-computing","stem","stem-education","xgo"],"license":"Apache-2.0","category":"programming_language","readme_excerpt":"<div align=\"center\">\n<p></p>\n<p>\n    <img width=\"80\" src=\"https://xgo.dev/favicon.svg\">\n</p>\n<h1>The XGo Programming Language</h1>\n\n\n[xgo.dev](https://xgo.dev) | [Docs](doc/docs.md) | [XGo vs. Go](doc/xgo-vs-go.md) | [Tutorials](https://tutorial.xgo.dev) | [Playground](https://play.xgo.dev) | [XGo REPL (iXGo)](https://repl.xgo.dev) | [Contributing & compiler design](doc/contributing.md)\n</div>\n\n<div align=\"center\">\n<!--\n[![VSCode](https://img.shields.io/badge/vscode-XGo-teal.svg)](https://github.com/gopcode/vscode-goplus)\n[![Discord](https://img.shields.io/discord/983646982100897802?label=Discord&logo=discord&logoColor=white)](https://discord.gg/mYjWCJDcAr)\n[![Interpreter](https://img.shields.io/badge/interpreter-iXGo-seagreen.svg)](https://github.com/goplus/ixgo)\n-->\n\n[![Build Status](https://github.com/goplus/xgo/actions/workflows/go.yml/badge.svg)](https://github.com/goplus/xgo/actions/workflows/go.yml)\n[![Coverage Status](https://codecov.io/gh/goplus/xgo/branch/main/graph/badge.svg)](https://codecov.io/gh/goplus/xgo)\n[![GitHub release](https://img.shields.io/github/v/tag/goplus/xgo.svg?label=release)](https://github.com/goplus/xgo/releases)\n[![Discord](https://img.shields.io/badge/Discord-online-success.svg?logo=discord&logoColor=white)](https://discord.com/invite/mYjWCJDcAr)\n\n</div>\n\nXGo is a programming language that reads like plain English. But it's also incredibly powerful — it lets you leverage assets from C/C++, Go, Python, and JavaScript/TypeScript, creating a unified software engineering ecosystem.\n\n```\nXGo := C * Go * Python * JavaScript + Scratch\n```\n\nOur vision is to **enable everyone to become a builder of the world**.\n\n#### Easy to learn\n\n* Simple and easy to understand\n* Smaller syntax set than Go and Python in best practices\n\n#### Ready for large projects\n\n* Integrate C/C++, Go, Python, and JavaScript/TypeScript into a unified ecosystem\n* Derived from Go and easy to build large projects from its good engineering foundation\n\nThe XGo programming language is designed for engineering, STEM education, and data science.\n\n* **For engineering**: working in the simplest language that can be mastered by children.\n* **For STEM education**: studying an engineering language that can be used for work in the future.\n* **For data science**: communicating with engineers in the same language.\n\nFor more details, see [Quick Start](doc/docs.md).\n\n\n## Key Features of XGo\n\n* Approaching natural language expression and intuitive (see [How XGo simplifies Go's expressions](#how-xgo-simplifies-gos-expressions)).\n* Smallest but Turing-complete syntax set in best practices (see [The XGo Mini Specification](doc/spec-mini.md)).\n* Fully compatible with [Go](https://github.com/golang/go) and can mix Go/XGo code in the same package (see [The XGo Full Specification](doc/spec.md) and [Go/XGo Hybrid Programming](doc/docs.md#gogo-hybrid-programming)).\n* Integrating with the C ecosystem including Python/JavaScript and providing limitless possibilities based on [LLGo](https://github.com/goplus/llgo) (see [Importing C/C++ and Python libraries](#importing-cc-and-python-libraries)).\n* Does not support DSL (Domain-Specific Languages), but supports SDF (Specific Domain Friendliness) (see [XGo Classfiles](#xgo-classfiles) and [Domain Text Literals](doc/domian-text-lit.md)).\n\n\n## How XGo simplifies Go's expressions\n\nDifferent from the function call style of most languages, XGo recommends command style code:\n\n```coffee\nprintln \"Hello world\"\n```\n\nTo emphasize our preference for command style, we introduce `echo` as an alias for `println`:\n\n```coffee\necho \"Hello world\"\n```\n\nFor more discussion on coding style, see https://tutorial.xgo.dev/hello-world.\n\nCode style is just the first step. We have made many efforts to make the code more intuitive and closer to natural language expression. These include:\n\n| Go code | XGo code | Note |\n| ---- | ---- | ---- |\n| package main<br><br>import \"fmt\"<br><br>func main() {<br>&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println(\"Hi\")<br>} | import \"fmt\"<br><br>fmt.Println(\"Hi\")<br> | Program structure: XGo allows omitting `package main` and `func main` |\n| fmt.Println(\"Hi\") | echo(\"Hi\") | [More builtin functions](doc/builtin.md): It simplifies the expression of the most common tasks |\n| fmt.Println(\"Hi\") | echo \"Hi\" | [Command-line](doc/fncall.md) style code: It reduces the number of parentheses in the code as much as possible, making it closer to natural language |\n| name := \"Ken\"<br>fmt.Printf(<br>&nbsp;&nbsp;\"Hi %s\\n\", name) | name := \"Ken\"<br>echo \"Hi ${name}\" | [Goodbye printf](doc/goodbye-printf.md), use `${expr}` in [string](doc/string.md) literals |\n| a := []int{1, 2, 3} | a := [1, 2, 3] | [List/Slice](doc/slice.md) literals |\n| a = append(a, 4)<br>a = append(a, 5, 6, 7) | a <- 4<br>a <- 5, 6, 7 | Append values to a list |\n| a := map[string]int{<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Monday\": 1,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Tuesday\": 2,<br>} | a := {<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Monday\": 1,<br>&nbsp;&nbsp;&nbsp;&nbsp;\"Tuesday\": 2,<br>} | [Map](doc/map.md) literals |\n| OnStart(func() {<br>&nbsp;&nbsp;&nbsp;&nbsp;...<br>}) | onStart => {<br>&nbsp;&nbsp;&nbsp;&nbsp;...<br>} | [Lambda](doc/func-closure.md) expressions |\n| Play(\"1.mp3\", &Options{Loop: true}) | play \"1.mp3\", loop = true | Python-like [keyword arguments](doc/func-closure.md#keyword-arguments) (kwargs) |\n| type LogLevel string<br><br>const (<br>&nbsp;&nbsp;&nbsp;&nbsp;Info&nbsp;&nbsp;&nbsp;LogLevel = \"info\"<br>&nbsp;&nbsp;&nbsp;&nbsp;Warn&nbsp;LogLevel = \"warn\"<br>&nbsp;&nbsp;&nbsp;&nbsp;Error LogLevel = \"error\"<br>) | type LogLevel const (<br>&nbsp;&nbsp;&nbsp;&nbsp;Info&nbsp;&nbsp;&nbsp;= \"info\"<br>&nbsp;&nbsp;&nbsp;&nbsp;Warn&nbsp;= \"warn\"<br>&nbsp;&nbsp;&nbsp;&nbsp;Error = \"error\"<br>) | Simplified [enum type](doc/enum.md) declaration |\n| type Rect struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;Width&nbsp; float64<br>&nbsp;&nbsp;&nbsp;&nbsp;Height float64<br>}<br> | type Rect (width, height float64) | [Tuples vs. Structs](doc/struct-vs-tuple.md): We encourage using tuples to implement UDTs instead of structs. |\n| type Rect struct {<br>&nbsp;&nbsp;&nbsp;&nbsp;Width&nbsp; float64<br>&nbsp;&nbsp;&nbsp;&nbsp;Height float64<br>}<br><br>func (this *Rect) Area() float64 { <br>&nbsp;&nbsp;&nbsp;&nbsp;return this.Width * this.Height<br>} | var (<br>&nbsp;&nbsp;&nbsp;&nbsp;Width&nbsp; float64<br>&nbsp;&nbsp;&nbsp;&nbsp;Height float64<br>)<br><br>func Area() float64 { <br>&nbsp;&nbsp;&nbsp;&nbsp;return Width * Height<br>} | [XGo Classfiles](doc/classfile.md): We can express OOP with global variables and functions. |\n\nFor more details, see [The XGo Mini Specification](doc/spec-mini.md).\n\n\n## Importing C/C++ and Python libraries\n\nXGo can choose different Go compilers as its underlying support. Currently known supported Go compilers include:\n\n* [go](https://go.dev/) (The official Go compiler supported by Google)\n* [llgo](https://github.com/goplus/llgo) (The Go compiler supported by the XGo team)\n* [tinygo](https://tinygo.org/) (A Go compiler for small places)\n\nCurrently, XGo defaults to using [go](https://go.dev/) as its underlying support, but in the future, it will be [llgo](https://github.com/goplus/llgo).\n\nLLGo is a Go compiler based on [LLVM](https://llvm.org/) in order to better integrate Go with the C ecosystem including Python and JavaScript. It aims to expand the boundaries of Go/XGo, providing limitless possibilities such as:\n\n* Game development\n* AI and data science\n* WebAssembly\n* Embedded development\n* ...\n\nIf you wish to use [llgo](https://github.com/goplus/llgo), specify the `-llgo` flag when initializing an XGo module:\n\n```sh\nxgo mod init -llgo YourModulePath\n```\n\nThis will generate a `go.mod` file with the following contents (It may vary slightly depending on the versions of local XGo and LLGo):\n\n```go\nmodule YourModulePath\n\ngo 1.21 // llgo 1.0\n\nrequire github.com/goplus/lib v0.2.0\n```\n\nBased on LLGo, XGo can import libraries written in C/C++ and Python.\n\nHere is an example (see [chello](demo/_llgo/chello/hello.xgo)) of printing `Hello world` using C's `printf`:\n\n```go\nimport \"c\"\n\nc.printf c\"Hello world\\n\"\n```\n\nHere, `c\"Hello world\\n\"` is a syntax supported by XGo, representing a null-terminated C-style string.\n\nTo run this example, you can:\n\n```sh\ncd YourModulePath  # set work directory to your module\nxgo mod tidy       # for generating go.sum file\nxgo run .\n```\n\nAnd here is an example (see [pyhello](demo/_llgo/pyhello/hello.xgo)) of printing `Hello world` using Python's `print`:\n\n```go\nimport \"py/std\"\n\nstd.print py\"Hello world\"\n```\n\nHere, `py\"Hello world\"` is a syntax supported by XGo, representing a Python string.\n\nHere are more examples of XGo calling C/C++ and Python libraries:\n\n* [pytensor](demo/_llgo/pytensor/tensor.xgo): a simple demo using [py/torch](https://pkg.go.dev/github.com/goplus/lib/py/torch)\n* [tetris](demo/_llgo/tetris/tetris.xgo): a tetris game based on [c/raylib](https://pkg.go.dev/github.com/goplus/lib/c/raylib)\n* [sqlitedemo](demo/_llgo/sqlitedemo/sqlitedemo.xgo): a demo using [c/sqlite](https://pkg.go.dev/github.com/goplus/lib/c/sqlite)\n\nTo find out more about LLGo/XGo's support for C/C++ and Python in detail, please refer to homepage of [llgo](https://github.com/goplus/llgo).\n\n\n## XGo Classfiles\n\n```\nOne language can change the whole world.\nXGo is a \"DSL\" for all domains.\n```\n\nRob Pike once said that if he could only introduce one feature to Go, he would choose `interface` instead of `goroutine`. `classfile` (and `class framework`) is as important to XGo as `interface` is to Go.\n\nIn the design philosophy of XGo, we do not recommend `DSL` (Domain Specific Language). But `SDF` (Specific Domain Friendliness) is very important. The XGo philosophy about `SDF` is:\n\n```\nDon't define a language for specific domain.\nAbstract domain knowledge for it.\n```\n\nXGo introduces `classfile` and `class framework` to abstract domain knowledge.\n\n* [What's Classfile?](doc/classfile.md#whats-classfile)\n* [Dive into XGo Classfiles](doc/classfile.md)\n\nSound a bit abstrac","default_branch":"main","files":962,"tree":[".gitattributes",".github/ISSUE_TEMPLATE/bug-report.yml",".github/ISSUE_TEMPLATE/config.yml",".github/ISSUE_TEMPLATE/enhancement.yml",".github/codecov.yml",".github/dependabot.yml",".github/workflows/check_goreleaser_config.py",".github/workflows/go.yml",".github/workflows/release-build.yml",".github/xgopilot.yml",".gitignore",".goreleaser.yaml","CLAUDE.md","CODE_OF_CONDUCT.md","Dockerfile","LICENSE","Makefile","README.md","all.bash","all.bat","ast/ast.go","ast/ast_xgo.go","ast/commentmap.go","ast/filter.go","ast/filter_test.go","ast/fromgo/gopast.go","ast/fromgo/gopast_test.go","ast/fromgo/typeparams/typeparams_go117.go","ast/fromgo/typeparams/typeparams_go118.go","ast/fromgo/typeparams_test.go","ast/gopq/dom.go","ast/gopq/gopq.go","ast/gopq/helper.go","ast/goptest/gopq.go","ast/import.go","ast/mod/deps.go","ast/print.go","ast/resolve.go","ast/scope.go","ast/togo/goast.go","ast/togo/goast_test.go","ast/walk.go","ast/walk_test.go","builtin/doc.xgo","cl/_nofmt/tupletype1/in.xgo","cl/_nofmt/tupletype1/out.go","cl/_testc/hello/in.xgo","cl/_testc/hello/out.go","cl/_testgo/types/in.xgo","cl/_testgo/types/out.go","cl/_testjs/hello/in.xgo","cl/_testjs/hello/out.js","cl/_testnext/.keep","cl/_testpy/_matrix/in.xgo","cl/_testpy/hello/in.xgo","cl/_testpy/hello/out.go","cl/_testpy/pycall/in.xgo","cl/_testpy/pycall/out.go","cl/_testspx/autolambda/Kai.spx","cl/_testspx/autolambda/out.go","cl/_testspx/basic/Game.tgmx","cl/_testspx/basic/Kai.tspx","cl/_testspx/basic/out.go","cl/_testspx/clsinit1/Rect.gox","cl/_testspx/clsinit1/out.go","cl/_testspx/clsinit2/Rect.gox","cl/_testspx/clsinit2/out.go","cl/_testspx/clsinitembed/Bar_prompt.gox","cl/_testspx/clsinitembed/Foo_prompt.gox","cl/_testspx/clsinitembed/main_mcp.gox","cl/_testspx/clsinitembed/out.go","cl/_testspx/execgsh/demo.gsh","cl/_testspx/execgsh/out.go","cl/_testspx/flat1/helper.tflat","cl/_testspx/flat1/main.tflat","cl/_testspx/flat1/out.go","cl/_testspx/flat2/main.tflat","cl/_testspx/flat2/out.go","cl/_testspx/flat2/tasks.tflat","cl/_testspx/flat2/utils.tflat","cl/_testspx/flat3/main.tflat","cl/_testspx/flat3/out.go","cl/_testspx/gshself/demo.gsh","cl/_testspx/gshself/out.go","cl/_testspx/init/init.tspx","cl/_testspx/init/out.go","cl/_testspx/multiworks/foo_prompt.gox","cl/_testspx/multiworks/hello_tool.gox","cl/_testspx/multiworks/main_mcp.gox","cl/_testspx/multiworks/out.go","cl/_testspx/newobj/Kai_spx.gox","cl/_testspx/newobj/main_spx.gox","cl/_testspx/newobj/out.go","cl/_testspx/nogame/bar.tspx","cl/_testspx/nogame/out.go","cl/_testspx/singlework/Kai_spx.gox","cl/_testspx/singlework/main_spx.gox","cl/_testspx/singlework/out.go","cl/_testspx/xgoinit_dup/Spr_spx.gox","cl/_testspx/xgoinit_dup/main_spx.gox","cl/_testspx/xgoinit_dup/out.go","cl/_testxgo/_matrix/in.xgo","cl/_testxgo/append1/in.xgo","cl/_testxgo/append1/out.go","cl/_testxgo/append2/in.xgo","cl/_testxgo/append2/out.go","cl/_testxgo/autoref-2484/in.xgo","cl/_testxgo/autoref-2484/out.go","cl/_testxgo/builtin/in.xgo","cl/_testxgo/builtin/out.go","cl/_testxgo/deco1/in.xgo","cl/_testxgo/deco1/out.go","cl/_testxgo/deco2/in.xgo","cl/_testxgo/deco2/out.go","cl/_testxgo/deco3/in.xgo","cl/_testxgo/deco3/out.go","cl/_testxgo/domaintext-html/in.xgo","cl/_testxgo/domaintext-html/out.go","cl/_testxgo/domaintext-huh/in.xgo","cl/_testxgo/domaintext-huh/out.go","cl/_testxgo/domaintext-json/in.xgo","cl/_testxgo/domaintext-json/out.go","cl/_testxgo/domaintext-md/go.mod","cl/_testxgo/domaintext-md/go.sum","cl/_testxgo/domaintext-md/in.xgo","cl/_testxgo/domaintext-md/out.go","cl/_testxgo/domaintext-regexp/in.xgo","cl/_testxgo/domaintext-regexp/out.go","cl/_testxgo/domaintext-tpl/in.xgo","cl/_testxgo/domaintext-tpl/out.go","cl/_testxgo/domaintpl/in.xgo","cl/_testxgo/domaintpl/out.go","cl/_testxgo/dql1/in.xgo","cl/_testxgo/dql1/out.go","cl/_testxgo/dql2/in.xgo","cl/_testxgo/dql2/out.go","cl/_testxgo/dql3/in.xgo","cl/_testxgo/dql3/out.go","cl/_testxgo/dql4/in.xgo","cl/_testxgo/dql4/out.go","cl/_testxgo/dql5/in.xgo","cl/_testxgo/dql5/out.go","cl/_testxgo/dql6/in.xgo","cl/_testxgo/dql6/out.go","cl/_testxgo/dql7/in.xgo","cl/_testxgo/dql7/out.go","cl/_testxgo/enum1/in.xgo","cl/_testxgo/enum1/out.go","cl/_testxgo/enum2/in.xgo","cl/_testxgo/enum2/out.go","cl/_testxgo/enum3/in.xgo","cl/_testxgo/enum3/out.go","cl/_testxgo/enum4/in.xgo","cl/_testxgo/enum4/out.go","cl/_testxgo/enum5/in.xgo","cl/_testxgo/enum5/out.go","cl/_testxgo/enum6/in.xgo","cl/_testxgo/enum6/out.go","cl/_testxgo/enumlines-rdr/in.xgo","cl/_testxgo/enumlines-rdr/out.go","cl/_testxgo/enumlines-stdin/in.xgo","cl/_testxgo/enumlines-stdin/out.go","cl/_testxgo/errwrap1/in.xgo","cl/_testxgo/errwrap1/out.go","cl/_testxgo/errwrap2/in.xgo","cl/_testxgo/errwrap2/out.go","cl/_testxgo/errwrap3/in.xgo","cl/_testxgo/errwrap3/out.go","cl/_testxgo/fatal/in.xgo","cl/_testxgo/fatal/out.go","cl/_testxgo/for-in/in.xgo","cl/_testxgo/for-in/out.go","cl/_testxgo/for-phrase-basic/in.xgo","cl/_testxgo/for-phrase-basic/out.go","cl/_testxgo/for-phrase-udt1/in.xgo","cl/_testxgo/for-phrase-udt1/out.go","cl/_testxgo/for-phrase-udt2/in.xgo","cl/_testxgo/for-phrase-udt2/out.go","cl/_testxgo/for-phrase-udt3/in.xgo","cl/_testxgo/for-phrase-udt3/out.go","cl/_testxgo/for-phrase-udt4/in.xgo","cl/_testxgo/for-phrase-udt4/out.go","cl/_testxgo/for-range-basic/in.xgo","cl/_testxgo/for-range-basic/out.go","cl/_testxgo/for-range-func/in.xgo","cl/_testxgo/for-range-func/out.go","cl/_testxgo/for-range-int/in.xgo","cl/_testxgo/for-range-int/out.go","cl/_testxgo/for-range-udt/in.xgo","cl/_testxgo/for-range-udt/out.go","cl/_testxgo/implicit-cast-2439/in.xgo","cl/_testxgo/implicit-cast-2439/out.go","cl/_testxgo/kwargs1/in.xgo","cl/_testxgo/kwargs1/out.go","cl/_testxgo/kwargs2/in.xgo","cl/_testxgo/kwargs2/out.go","cl/_testxgo/kwargs3/in.xgo","cl/_testxgo/kwargs3/out.go","cl/_testxgo/kwargs4/in.xgo","cl/_testxgo/kwargs4/out.go","cl/_testxgo/kwargs5/in.xgo","cl/_testxgo/kwargs5/out.go","cl/_testxgo/kwargs6/in.xgo","cl/_testxgo/kwargs6/out.go","cl/_testxgo/list-compr1/in.xgo","cl/_testxgo/list-compr1/out.go","cl/_testxgo/list-compr2/in.xgo","cl/_testxgo/list-compr2/out.go","cl/_testxgo/map-compr-cond1/in.xgo","cl/_testxgo/map-compr-cond1/out.go","cl/_testxgo/map-compr-cond2/in.xgo","cl/_testxgo/map-compr-cond2/out.go","cl/_testxgo/map-compr1/in.xgo","cl/_testxgo/map-compr1/out.go","cl/_testxgo/map-field-access1/in.xgo","cl/_testxgo/map-field-access1/out.go","cl/_testxgo/map-field-access2/in.xgo","cl/_testxgo/map-field-access2/out.go","cl/_testxgo/newexpr/in.xgo","cl/_testxgo/newexpr/out.go","cl/_testxgo/optparam/in.xgo","cl/_testxgo/optparam/out.go","cl/_testxgo/optparam2/in.xgo","cl/_testxgo/optparam2/out.go","cl/_testxgo/overload-func1/in.xgo","cl/_testxgo/overload-func1/out.go","cl/_testxgo/overload-func2/in.xgo","cl/_testxgo/overload-func2/out.go","cl/_testxgo/overload-func3/in.xgo","cl/_testxgo/overload-func3/out.go","cl/_testxgo/overload-intf/in.xgo","cl/_testxgo/overload-intf/out.go","cl/_testxgo/overload-method/in.xgo","cl/_testxgo/overload-method/out.go","cl/_testxgo/overload-op1/in.xgo","cl/_testxgo/overload-op1/out.go","cl/_testxgo/overload-op2/in.xgo","cl/_testxgo/overload-op2/out.go","cl/_testxgo/rangeexpr/in.xgo","cl/_testxgo/rangeexpr/out.go","cl/_testxgo/repeatuntil/in.xgo","cl/_testxgo/repeatuntil/out.go","cl/_testxgo/select-compr-twovalue1/in.xgo","cl/_testxgo/select-compr-twovalue1/out.go","cl/_testxgo/select-compr-twovalue2/in.xgo","cl/_testxgo/select-compr-twovalue2/out.go","cl/_testxgo/select-compr1/in.xgo","cl/_testxgo/select-compr1/out.go","cl/_testxgo/structtag/in.xgo","cl/_testxgo/structtag/out.go","cl/_testxgo/tuplelit/in.xgo","cl/_testxgo/tuplelit/out.go","cl/_testxgo/tupletype/in.xgo","cl/_testxgo/tupletype/out.go","cl/_testxgo/type-args-template-recv-mthd/in.xgo","cl/_testxgo/type-args-template-recv-mthd/out.go","cl/_testxgo/type-as-args/in.xgo","cl/_testxgo/type-as-args/out.go","cl/_testxgo/type-as-fnargs/in.xgo","cl/_testxgo/type-as-fnargs/out.go","cl/_testxgo/unit/in.xgo","cl/_testxgo/unit/out.go","cl/builtin.go","cl/builtin_test.go","cl/c.go","cl/classfile.go","cl/cltest/cltest.go","cl/cltest/cltest_gengo.go","cl/cltest/cltest_genjs.go","cl/cltest/error_msg.go","cl/cltest/recorder.go","cl/cltest/spx.go","cl/compile.go","cl/compile_spx_test.go","cl/compile_test.go","cl/compile_testdir_test.go","cl/compile_xgo_test.go","cl/error_msg_test.go","cl/expr.go","cl/internal/.gitignore","cl/internal/dql/dql.go","cl/internal/flat/classfile.go","cl/internal/gop-in-go/foo/foo.xgo","cl/internal/gop-in-go/foo/foo_test.xgo","cl/internal/gop-in-go/foo/footest_test.xgo","cl/internal/huh/huh.go","cl/internal/llgo-hello/hello.go","cl/internal/mcp/classfile.go","cl/internal/overload/bar/bar.go","cl/internal/overload/foo/foo.go","cl/internal/overload/intf/intf.go","cl/internal/spx/game.go","cl/internal/spx/pkg/pkg.go","cl/internal/spx/sprite.go","cl/internal/spx2/spx2.go","cl/internal/spx3/jwt/jwt.go","cl/internal/spx3/spx3.go","cl/internal/spx4/game.go","cl/internal/spx4/pkg/pkg.go","cl/internal/spx4/sprite.go","cl/internal/test/case.go","cl/internal/test/match.go","cl/internal/testutil/testutil.go","cl/internal/typeargs/typeargs.go","cl/internal/typesutil/api.go","cl/internal/typesutil/api_test.go","cl/internal/typesutil/mode.go","cl/internal/typesutil/mode_go123.go","cl/internal/unit/unit.go","cl/outline/outline.go","cl/recorder.go","cl/run_test.go","cl/stmt.go","cl/type_and_var.go","cl/typeparams.go","cl/typeparams_test.go","cmd/chore/goptestgo/goptestgo.go","cmd/chore/xgobuiltingen/builtin.gox","cmd/chore/xgobuiltingen/builtingen.gox","cmd/chore/xgobuiltingen/helper.xgo","cmd/chore/xgobuiltingen/reference.gox","cmd/chore/xgofullspec/fullspec.xgo","cmd/chore/xgominispec/minispec.xgo","cmd/hdq/fetch_cmd.gox","cmd/hdq/list_cmd.gox","cmd/hdq/main_app.gox","cmd/hdq/xgo_autogen.go","cmd/internal/base/base.go","cmd/internal/base/pass.go","cmd/internal/bug/bug.go","cmd/internal/build/build.go","cmd/internal/clean/clean.go","cmd/internal/deps/deps.go","cmd/internal/doc/doc.go","cmd/internal/env/env.go","cmd/internal/gengo/go.go","cmd/internal/gopfmt/fmt.go","cmd/internal/gopget/get.go","cmd/internal/help/help.go","cmd/internal/install/install.go","cmd/internal/list/list.go","cmd/internal/mod/download.go","cmd/internal/mod/init.go","cmd/internal/mod/mod.go","cmd/internal/mod/tidy.go","cmd/internal/run/run.go","cmd/internal/serve/serve.go","cmd/internal/test/test.go","cmd/internal/test/testflag.go","cmd/internal/version/ver.go","cmd/internal/watch/watch.go","cmd/make.go","cmd/make_test.go","cmd/xgo/bug_cmd.gox","cmd/xgo/build_cmd.gox","cmd/xgo/clean_cmd.gox","cmd/xgo/doc_cmd.gox","cmd/xgo/env_cmd.gox","cmd/xgo/fmt_cmd.gox","cmd/xgo/get_cmd.gox","cmd/xgo/go_cmd.gox","cmd/xgo/install_cmd.gox","cmd/xgo/main_app.gox","cmd/xgo/mod_cmd.gox","cmd/xgo/mod_download_cmd.gox","cmd/xgo/mod_init_cmd.gox","cmd/xgo/mod_tidy_cmd.gox","cmd/xgo/pack_cmd.gox","cmd/xgo/run_cmd.gox","cmd/xgo/serve_cmd.gox","cmd/xgo/test_cmd.gox","cmd/xgo/version_cmd.gox","cmd/xgo/watch_cmd.gox","cmd/xgo/xgo_autogen.go","demo/_llgo/callpy/callpy.xgo","demo/_llgo/chello/hello.xgo","demo/_llgo/cpphello/cpphello.xgo","demo/_llgo/defer/defer.xgo","demo/_llgo/errors/errors.xgo","demo/_llgo/go.mod","demo/_llgo/go.sum","demo/_llgo/goroutine/goroutine.xgo","demo/_llgo/hello/hello.xgo","demo/_llgo/hellollgo/README.md","demo/_llgo/hellollgo/hello.xgo","demo/_llgo/matrix/matrix.xgo","demo/_llgo/pyhello/hello.xgo","demo/_llgo/pymax/pymax.xgo","demo/_llgo/pyprint/print.xgo","demo/_llgo/pytensor/tensor.xgo","demo/_llgo/qsort/qsort.xgo","demo/_llgo/reflect/reflect.xgo","demo/_llgo/sqlitedemo/sqlitedemo.xgo","demo/_llgo/statistics/statistics.xgo","demo/_llgo/tetris/tetris.xgo","demo/_tinygo/blink/blink.xgo","demo/_tinygo/go.mod","demo/_tinygo/sortdemo/sort.xgo","demo/clsinit/Rect.gox","demo/domaintext/domaintext.xgo"],"storefront":"/r/goplus","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/goplus/xgo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}