Go to file
Elliott Slaughter 3f0d207b32 gc: Add stack walker for new garbage collector.
Safe points are exported in a per-module list via the crate map. A C
runtime call walks the crate map at startup and aggregates the list of
safe points for the program.

Currently the GC doesn't actually deallocate memory on malloc and
free. Adding the GC at this stage is primarily of testing value.

The GC does attempt to clean up exchange heap and stack-allocated
resource on failure.

A result of this patch is that the user now needs to be careful about
what code they write in destructors, because the GC and/or failure
cleanup may need to call destructors. Specifically, calls to malloc
are considered unsafe and may result in infinite loops or segfaults.
2012-09-07 09:21:21 -07:00
doc Update docs to not refer to the of clause in an impl 2012-09-06 16:19:34 -07:00
man Update version on man page. 2012-07-12 12:43:20 -07:00
mk gc: Add stack walker for new garbage collector. 2012-09-07 09:21:21 -07:00
src gc: Add stack walker for new garbage collector. 2012-09-07 09:21:21 -07:00
.gitignore Update .gitignore 2012-08-21 17:08:40 -07:00
.gitmodules
AUTHORS.txt Fix Ivano's name in AUTHORS.txt 2012-09-06 12:29:20 -07:00
configure Add experimental JIT compiler 2012-08-31 16:20:35 -07:00
LICENSE.txt Compress metadata section. Seems a minor speed win, major space win. 2012-08-28 14:50:39 -07:00
Makefile.in Refactor trans to replace lvalue and friends with Datum. 2012-09-06 06:11:12 -07:00
README.md 0.2 -> 0.3 2012-07-10 11:53:22 -07:00
RELEASES.txt Tweak release notes. 2012-07-10 19:06:58 -07:00

The Rust Programming Language

This is a compiler for Rust, including standard libraries, tools and documentation.

Installation

The Rust compiler is slightly unusual in that it is written in Rust and therefore must be built by a precompiled "snapshot" version of itself (made in an earlier state of development). As such, source builds require that:

  • You are connected to the internet, to fetch snapshots.

  • You can at least execute snapshot binaries of one of the forms we offer them in. Currently we build and test snapshots on:

    • Windows (7, server 2008 r2) x86 only
    • Linux 2.6.x (various distributions) x86 and x86-64
    • OSX 10.6 ("Snow leopard") or 10.7 ("Lion") x86 and x86-64

You may find other platforms work, but these are our "tier 1" supported build environments that are most likely to work. Further platforms will be added to the list in the future via cross-compilation.

To build from source you will also need the following prerequisite packages:

  • g++ 4.4 or clang++ 3.x
  • python 2.6 or later
  • perl 5.0 or later
  • gnu make 3.81 or later
  • curl

Assuming you're on a relatively modern Linux/OSX system and have met the prerequisites, something along these lines should work:

$ tar -xzf rust-0.3.tar.gz
$ cd rust-0.3
$ ./configure
$ make && make install

When complete, make install will place the following programs into /usr/local/bin:

  • rustc, the Rust compiler
  • rustdoc, the API-documentation tool
  • cargo, the Rust package manager

In addition to a manual page under /usr/local/share/man and a set of host and target libraries under /usr/local/lib/rustc.

The install locations can be adjusted by passing a --prefix argument to configure. Various other options are also supported, pass --help for more information on them.

License

Rust is primarily distributed under the terms of the MIT license, with portions covered by various BSD-like licenses.

See LICENSE.txt for complete terms of copyright and redistribution.

More help

The tutorial is a good starting point.