Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a post on the build system #20

Merged
merged 1 commit into from Jul 22, 2015
Merged

Conversation

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Jul 21, 2015

r? @metajack

Wrote this up from some notes I was already preparing on Servo's build system for @alexcrichton anyway :-)

Review on Reviewable


## Things we'd like to fix in the future

It would be great if there was a single Cargo.toml file and it was at the toplevel of the Servo repo. It's confusing to people familiar with Rust projects, who go looking for a Cargo.toml file and can't find them.

This comment has been minimized.


* `mach test-wpt` runs the cross-browser W3C Web Platform Tests, which primarily test DOM features.

* `mach test-css` runs the cross-browser CSS WG refernce tests, which are a version of the reference tests that are intended to work across many browsers.

This comment has been minimized.

@jdm

jdm Jul 21, 2015

Member

s/refernce/reference/

### mach bootstrap

The steps that mach will handle before issuing a normal `cargo build` command are:
* Downloading the correct versions of the cargo and rustc tools. Servo uses most of the unstable features in Rust, which change pretty frequently. We also test the edges of feature compatibility and so are the first ones to notice many changes that did not at first seem as if they would break anyone. Further, we build a custom version of the tools that additionally supports cross-compilation targeting Android (and ARM in the near future). A random local install of the Rust toolchain is pretty unlikely to work with Servo.

This comment has been minimized.

@Manishearth

Manishearth Jul 21, 2015

Member

Servo uses most of the unstable features in Rust

I'd say this has changed. We use some of the most unstable features of Rust, but actually our unstable usage is pretty low other than plugins and some APIs here and there.

local install of the Rust toolchain is pretty unlikely to work with Servo

I wonder if we split plugins into lints and expansion (expansion plugins are generally more stable) and made it possible to turn lints off, we might get a decently large error box around the rustc version.


* `mach test-css` runs the cross-browser CSS WG reference tests, which are a version of the reference tests that are intended to work across many browsers.

* `mach test-unit` runs the Rust unit tests embedded in Servo crates. We do not have many of these, except for basic tests of per-crate functionality.

This comment has been minimized.

@Manishearth

Manishearth Jul 21, 2015

Member

Might be worth mentioning that we don't have many of these because wpt and css cover most bases.

@larsbergstrom
Copy link
Contributor Author

larsbergstrom commented Jul 22, 2015

r? @SimonSapin @Ms2ger

I think I've addressed everybody's comments - should I squash & land this?

@Manishearth
Copy link
Member

Manishearth commented Jul 22, 2015

lgtm, r=me

@larsbergstrom larsbergstrom force-pushed the larsbergstrom:gh-pages branch from 04d2cbb to 0ba77eb Jul 22, 2015
larsbergstrom added a commit that referenced this pull request Jul 22, 2015
Add a post on the build system
@larsbergstrom larsbergstrom merged commit c325603 into servo:gh-pages Jul 22, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants
You can’t perform that action at this time.