Boo 编程语言。
The Boo Programming Language (c) 2009 Rodrigo B. de Oliveira ([email protected])
Requires the .NET 10 SDK.
dotnet build Boo.slnx
dotnet test Boo.slnx
The C# core builds first and produces booc, which then compiles the Boo
libraries. The booc, booi and booish scripts run what it produced, with
.cmd versions of each for Windows; set BOO_CONFIGURATION=Release for a
release build.
Both generators write files that are committed, so this is only needed after editing their inputs.
scripts/regenerate-ast.sh # after ast.model.boo or scripts/Templates
scripts/regenerate-parser.sh # after BooLexer.g4 or BooParser.g4, needs java
CI covers Ubuntu, macOS and Windows, all glibc. To check Alpine as well:
scripts/test-alpine.sh
It runs the suite in a dotnet 10 Alpine container through podman.
scripts/build-deb.sh
Writes a self contained .deb to artifacts/, built in a container through
podman. It carries the .NET runtime, so it depends only on the C library and
ICU, and is built for whichever architecture podman is running.
For a brief description of the project and its goals
take a look at docs/BooManifesto.sxw.
src/ contains all the source code for the runtime and
compiler components.
tests/ contains all the unit tests.
tests/testcases/integration is a good source of information
on the language features.
To execute a boo script run:
booi [args]
For instance:
booi examples/misc/now.boo
You can also have booi to read from stdin by typing:
booi -
You can generate .net assemblies by using booc:
booc -output:hello.exe examples/misc/now.boo
If you want to simply see the transformations applied to your code by the compiler use the boo pipeline, run:
booc -p:boo examples/misc/replace.boo
To see the IL a source file compiles to, run:
./il examples/misc/now.boo
On Windows use il.cmd. Disassembly uses ilspycmd, restored from
.config/dotnet-tools.json on first run.
Boo development Google group: https://groups.google.com/forum/#!forum/boolang
Boo community Discord: https://discord.gg/J4Guxadwma
暂无开放 Issues,或尚未同步最近议题。