aboutsummaryrefslogtreecommitdiffstats
path: root/docs/HACKING_QUICKSTART.md
diff options
context:
space:
mode:
authorDelan Azabani <dazabani@igalia.com>2023-10-26 16:22:14 +0800
committerGitHub <noreply@github.com>2023-10-26 08:22:14 +0000
commita3d2f0c586e97e26906bd2327395186bf140f49b (patch)
treeb21cbb63ae0695b93e6ef569691ef2fbbaf2b264 /docs/HACKING_QUICKSTART.md
parent88234309b04057d7474e51131a806105032acc28 (diff)
downloadservo-a3d2f0c586e97e26906bd2327395186bf140f49b.tar.gz
servo-a3d2f0c586e97e26906bd2327395186bf140f49b.zip
Enable debug assertions for all builds other than official releases (#30509)
* Run main and try jobs with debug assertions * use single quotes in workflow expressions * set force-debug-assertions in main.yml * set force-debug-assertions as part of decision job * fix typo in MachCommands.build * fix more hardcoded profile names * fix tidy * split cargo_profile_option on windows * Fix running servoshell and unit tests through a symlink * rename steps to make them less confusing * fix more hardcoded cargo profile options * fix missing inputs in linux-wpt and mac-wpt * make filename an inherent method of Resource * rework release-with-debug-assertions profile to production profile * rework resource logic to eliminate std_test_override * set production flag in nightly release builds * clean up servobuild.example and windows.yml * oops forgot to check in embedder_traits/build.rs * fix mach test-unit behaviour through symlink * unit tests only need current_dir and ancestors * fix macOS package smoketest breakage * expect css/css-color/currentcolor-003 to crash under layout 2013 * fix more references to {force,release-with}-debug-assertions * fix local build failures under --profile production
Diffstat (limited to 'docs/HACKING_QUICKSTART.md')
-rw-r--r--docs/HACKING_QUICKSTART.md14
1 files changed, 12 insertions, 2 deletions
diff --git a/docs/HACKING_QUICKSTART.md b/docs/HACKING_QUICKSTART.md
index 5efca5a2377..24960afb131 100644
--- a/docs/HACKING_QUICKSTART.md
+++ b/docs/HACKING_QUICKSTART.md
@@ -35,9 +35,19 @@ Building Servo is quite easy. Install the prerequisites described in the [README
*Note: on Mac, you might run into an SSL issue while compiling. You'll find a solution to this problem [here](https://github.com/sfackler/rust-openssl/issues/255).*
-The `-d` option means "debug build". You can also build with the `-r` option which means "release build". Building with `-d` will allow you to use a debugger (lldb). A `-r` build is more performant. Release builds are slower to build.
+There are three main build profiles, which you can build and use independently of one another:
-You can use and build a release build and a debug build in parallel.
+* debug builds, which allow you to use a debugger (lldb)
+* release builds, which are slower to build but more performant
+* production builds, which are used for official releases only
+
+| profile | mach option | optimised? | debug<br>info? | debug<br>assertions? | finds resources in<br>current working dir? |
+|---|---|---|---|---|---|
+| debug | `-d` | no | yes | yes | yes |
+| release | `-r` | yes | no | yes(!) | yes |
+| production | `--profile production` | yes | yes | no | no |
+
+You can change these settings in a servobuild file (see [servobuild.example](../servobuild.example)) or in the root [Cargo.toml](../Cargo.toml).
## Running Servo