about summary refs log tree commit diff
path: root/doc/tutorial/setup.md
blob: 1ec77b5630e863ebed91e9cebfa9ef7e9542c6a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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](mod.html).

## 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][rust-mode].

[rust-mode]: 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.