boo-lang/boo
{ "createdAt": "2010-05-06T19:45:31Z", "defaultBranch": "master", "description": "The Boo Programming Language.", "fullName": "boo-lang/boo", "homepage": "", "language": "C#", "name": "boo", "pushedAt": "2022-07-21T09:42:58Z", "stargazersCount": 897, "topics": [], "updatedAt": "2025-11-21T01:48:43Z", "url": "https://github.com/boo-lang/boo"}The Boo Programming Language (c) 2009 Rodrigo B. de Oliveira (rbo@acm.org)
Prerequisites
Section titled “Prerequisites”Windows
Section titled “Windows”- .NET 4.5
- Visual C++ Build Tools*
* Boo is built with NAnt, which must be built from sources, which requires NMake, which comes with the Visual C++ Build Tools.
Mac/Linux
Section titled “Mac/Linux”- Mono 4.2.x (4.2.4 is the latest and recommended)
- Bash
Build Tools
Section titled “Build Tools”You can install compatible versions of the required tools into the build-tools directory, where the build scripts will execute them from, by running the bootstrap script.
Windows
Section titled “Windows”The bootstrap script is a PowerShell script; however, it must be run from a x86 Native Tools Command Prompt:
# FROM A x86 NATIVE TOOLS COMMAND PROMPTpowershell .\build-tools\bootstrapMac/Linux
Section titled “Mac/Linux”./build-tools/bootstrapBuilding Boo requires Mono 4.2.x, which is not likely to be your “Current” version of Mono. To avoid having to switch your current version every time you want to work on Boo, you can specify the version to use when you run the bootstrap script. The build scripts will then use that version of Mono, regardless of your current version.
./build-tools/bootstrap [<mono version>]Building
Section titled “Building”To build the repository, run the nant script:
# Windows (PowerShell).\nant [<target>]# Mac/Linux./nant [<target>]With no target specified, this will build the repository (code and tests) incrementally. To clean and build the repository from scratch, run the “rebuild” target. This will also cause the ast classes and parser to be regenerated (needs a java vm)
To run the unit tests that have already been built with nant, run the nunit script:
# Windows (PowerShell).\nunit# Mac/Linux./nunitTo build and test the entire repository, the same way the CI build does, run the ci script:
# Windows (PowerShell).\ci# Mac/Linux./ciHow to Start
Section titled “How to Start”For a brief description of the project and its goals
take a look at docs/BooManifesto.sxw.
extras/boox contains a sweet little tool you can use
to get yourself acquainted with the language.
src/ contains all the source code for the runtime and
compiler components.
tests/ contains all the unit tests.
testcases/integration is a good source of information
on the language features.
lib/ contains project dependencies such as antlr.
bin/ contains the latest version that passed all the tests
and could be successfully used to rebuild the system.
Running and compiling code
Section titled “Running and compiling code”To execute a boo script run:
booi <script> [args]For instance:
booi examples/hw.booYou can also have booi to read from stdin by typing:
booi -You can generate .net assemblies by using booc (either
the booc.exe utility or the booc nant task):
booc -output:build/hello.exe examples/hw.booIf you want to simply see the transformations applied to your code by the compiler use the boo pipeline, run:
booc -p:boo examples/replace.booMore Information
Section titled “More Information”Boo development Google group: https://groups.google.com/forum/#!forum/boolang
Boo community Discord: https://discord.gg/J4Guxadwma