The Boo Programming Language.
Clone or download
masonwheeler Delete build.cmd
Internal file that shouldn't have gotten checked in.
Latest commit 5e5cbb5 Jul 18, 2018
Permalink
Failed to load latest commit information.
.settings monolipse settings Apr 7, 2010
bin update binaries Oct 29, 2013
build-tools Create bootstrap script for PowerShell to setup build tools Jun 19, 2017
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 Minor cosmetic tweak. This is finally working! Jan 22, 2018
src Fixing an order-of-operations problem Mar 9, 2018
tests Don't convert Nullable to Value for a non-type-inferred Return Mar 6, 2018
tools/RetargetAssembly dump RetargetAssembly version number now that [AssemblyVersion] is fr… Mar 25, 2013
.gitignore Separate nant and nunit and scripts Jun 13, 2017
.project monolipse support Jan 17, 2009
.travis.yml Updating build scripts again. Let's see if this works... Jan 22, 2018
AUTHORS Update the authors file Jul 24, 2008
Makefile.am Add some ghetto makefiles for people to create binary packages of boo… Apr 29, 2005
README.md Spelling fix Dec 4, 2017
appveyor.yml Add AppVeyor build configuration Jun 19, 2017
ast.model.boo Adding async/await support to the Boo language! May 16, 2017
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
ci Separate nant and nunit and scripts Jun 13, 2017
ci.ps1 Create bootstrap script for PowerShell to setup build tools Jun 19, 2017
configure.in.in use $libdir instead of `$prefix/lib' (patch by Paul Lange) Aug 3, 2009
default.build Updating the build script Dec 17, 2017
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
micro-profile.build remove System.Core.dll dependency from Boo.Lang.dll for good by using… Jan 19, 2011
nant Separate nant and nunit and scripts Jun 13, 2017
nant.ps1 Create bootstrap script for PowerShell to setup build tools Jun 19, 2017
notice.txt bin update after latest changes Oct 20, 2009
nunit Separate nant and nunit and scripts Jun 13, 2017
nunit.ps1 Create bootstrap script for PowerShell to setup build tools Jun 19, 2017
settings.gradle make rewrite-wp8-references.boo 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

README.md

Build Status

The Boo Programming Language (c) 2009 Rodrigo B. de Oliveira (rbo@acm.org)

Prerequisites

Windows

* Boo is built with NAnt, which must be built from sources, which requires NMake, which comes with the Visual C++ Build Tools.

Mac/Linux

  • Mono 4.2.x (4.2.4 is the latest and recommended)
  • Bash

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

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 PROMPT
powershell .\build-tools\bootstrap

Mac/Linux

./build-tools/bootstrap

Mac

Building 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

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
./nunit

To build and test the entire repository, the same way the CI build does, run the ci script:

# Windows (PowerShell)
.\ci
# Mac/Linux
./ci

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/hw.boo	

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/hw.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/replace.boo	

More Information

http://boo-lang.org/ https://groups.google.com/forum/#!forum/boolang

Contributors

See: https://github.com/boo-lang/boo/graphs/contributors