rust/doc/tutorial/setup.md
Marijn Haverbeke fedb775fbb Add hacks to extract and compile tutorial code
Not included in the build by default, since it's fragile and kludgy. Do
something like this to run it:

    cd doc/tutorial
    RUSTC=../../build/stage2/bin/rustc bash test.sh

Closes #1143
2011-11-22 16:12:23 +01:00

1.8 KiB

Getting started

Installation

FIXME Fill this in when the installation package is finished.

Compiling your first program

Rust program files are, by convention, given the extension .rs. Say we have a file hello.rs containing this program:

use std;
fn main(args: [str]) {
    std::io::println("hello world from " + args[0] + "!");
}

If the Rust compiler was installed successfully, running rustc hello.rs will produce a binary called hello (or hello.exe).

If you modify the program to make it invalid (for example, remove the use std line), and then compile it, you'll see an error message like this:

## notrust
hello.rs:2:4: 2:20 error: unresolved modulename: std
hello.rs:2     std::io::println("hello world!");
               ^~~~~~~~~~~~~~~~

The Rust compiler tries to provide useful information when it runs into an error.

Anatomy of a Rust program

In its simplest form, a Rust program is simply a .rs file with some types and functions defined in it. If it has a main function, it can be compiled to an executable. Rust does not allow code that's not a declaration to appear at the top level of the file—all statements must live inside a function.

Rust programs can also be compiled as libraries, and included in other programs. The use std directive that appears at the top of a lot of examples imports the standard library. This is described in more detail later on.

Editing Rust code

There are Vim highlighting and indentation scrips in the Rust source distribution under src/etc/vim/. An Emacs mode can be found at https://github.com/marijnh/rust-mode.

Other editors are not provided for yet. If you end up writing a Rust mode for your favorite editor, let us know so that we can link to it.