The Boo Programming Language.
C# Java Boo GAP HTML Makefile Other
Failed to load latest commit information.
.settings monolipse settings Apr 7, 2010
bin update binaries Oct 29, 2013
docs original boo manifesto pdf for posterity Sep 25, 2015
examples update examples to latest syntax Oct 4, 2010
extras Include from import in vim syntax Nov 19, 2012
gradle/wrapper gradle build script Oct 25, 2012
lib fixed bug in antlr csharp generator outputing AST related variables w… Nov 2, 2013
performance optimal operator implementation for string/char membership test Apr 20, 2011
scripts Merge pull request #77 from drslump/mono-build-fixes Nov 4, 2013
src A few minor fixes to make the recent imported changes work. Jan 21, 2017
tests Fixing failing test cases. Jan 21, 2017
tools/RetargetAssembly dump RetargetAssembly version number now that [AssemblyVersion] is fr… Mar 25, 2013
.gitignore ignore Jun 10, 2013
.project monolipse support Jan 17, 2009
.travis.yml Alias gmcs to mcs Dec 22, 2015
AUTHORS Update the authors file Jul 24, 2008 Add some ghetto makefiles for people to create binary packages of boo… Apr 29, 2005 Update links Dec 19, 2015 Modified grammar to support safe access unary operator Nov 13, 2012
booc remove dependency to hard-coded ~/dotnet/ directory for building on Feb 16, 2007
booi remove dependency to hard-coded ~/dotnet/ directory for building on Feb 16, 2007
build.gradle read package version from version.txt Mar 25, 2013 use $libdir instead of `$prefix/lib' (patch by Paul Lange) Aug 3, 2009 Upped mono to 4.2.1 for the Travis build Dec 22, 2015
gradlew gradle build script Oct 25, 2012
gradlew.bat gradle build script Oct 25, 2012
il remove dependency to hard-coded ~/dotnet/ directory for building on Feb 16, 2007
il.bat better slicing semantics for strings Sep 10, 2004
license.txt bin update after latest changes Oct 20, 2009 remove System.Core.dll dependency from Boo.Lang.dll for good by using… Jan 19, 2011
notice.txt bin update after latest changes Oct 20, 2009
settings.gradle make into a proper project and publish it … Dec 3, 2012
todo.txt todo cleanup May 17, 2010
version.txt move version number to version.txt so it can be read by both nant and… Mar 25, 2013

Build Status

The Boo Programming Language (c) 2009 Rodrigo B. de Oliveira (


Just type:


to build the project.

nant test

will also run all the unit tests.

mono users might want to do this instead:

nant compile-tests && nunit-console tests/build/*Tests.dll  

to rebuild everything from scratch:

nant rebuild

the rebuild target will also cause the ast classes and parser to be regenerated (needs a java vm).

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

To execute a boo script run:

booi <script> [args]

For instance:

booi examples/    

You 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/    

If you want to simply see the transformations applied to your code by the compiler use the boo pipeline, run:

booc -p:boo examples/    

More Information!forum/boolang