rust/src
Alex Crichton b47c9690d2 bootstrap: Merge the libtest build step with libstd
Since its inception rustbuild has always worked in three stages: one for
libstd, one for libtest, and one for rustc. These three stages were
architected around crates.io dependencies, where rustc wants to depend
on crates.io crates but said crates don't explicitly depend on libstd,
requiring a sysroot assembly step in the middle. This same logic was
applied for libtest where libtest wants to depend on crates.io crates
(`getopts`) but `getopts` didn't say that it depended on std, so it
needed `std` built ahead of time.

Lots of time has passed since the inception of rustbuild, however,
and we've since gotten to the point where even `std` itself is depending
on crates.io crates (albeit with some wonky configuration). This
commit applies the same logic to the two dependencies that the `test`
crate pulls in from crates.io, `getopts` and `unicode-width`. Over the
many years since rustbuild's inception `unicode-width` was the only
dependency picked up by the `test` crate, so the extra configuration
necessary to get crates building in this crate graph is unlikely to be
too much of a burden on developers.

After this patch it means that there are now only two build phasese of
rustbuild, one for libstd and one for rustc. The libtest/libproc_macro
build phase is all lumped into one now with `std`.

This was originally motivated by rust-lang/cargo#7216 where Cargo was
having to deal with synthesizing dependency edges but this commit makes
them explicit in this repository.
2019-08-23 16:46:11 -07:00
..
bootstrap bootstrap: Merge the libtest build step with libstd 2019-08-23 16:46:11 -07:00
build_helper Apply clippy::redundant_field_names suggestion 2019-08-22 12:02:02 +02:00
ci Auto merge of #63521 - newpavlov:redox_builder, r=pietroalbini 2019-08-23 08:58:24 +00:00
doc Auto merge of #63175 - jsgf:argsfile, r=jsgf 2019-08-22 06:14:49 +00:00
etc
grammar
liballoc Fix formatting. 2019-08-22 13:06:39 +02:00
libarena Deny `unused_lifetimes` through rustbuild 2019-07-28 18:47:02 +03:00
libcore Auto merge of #63808 - Rosto75:master, r=KodrAus 2019-08-23 05:11:41 +00:00
libfmt_macros Rollup merge of #63121 - estebank:formatting-pos, r=alexcrichton 2019-08-03 00:09:06 +02:00
libgraphviz Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
libpanic_abort redox: convert to target_family unix 2019-08-06 16:18:23 -06:00
libpanic_unwind libpanic_unwind: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
libproc_macro bootstrap: Merge the libtest build step with libstd 2019-08-23 16:46:11 -07:00
libprofiler_builtins Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc Rollup merge of #63796 - estebank:opaque_future, r=Centril 2019-08-22 15:15:43 +02:00
librustc_apfloat Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_asan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_ast_borrowck Do not downgrade NLL errors for bind_by_move_pattern_guards when AST says it is OK. 2019-07-30 06:43:06 +02:00
librustc_codegen_llvm Auto merge of #63635 - oli-obk:default-slice-dangles, r=eddyb 2019-08-18 13:22:38 +00:00
librustc_codegen_ssa Remove SyntaxContext from {ast, hir}::{GlobalAsm, InlineAsm} 2019-08-17 09:12:32 +01:00
librustc_codegen_utils Rollup merge of #63559 - eddyb:v0-mangling-off-by-1, r=estebank 2019-08-17 11:13:45 +02:00
librustc_data_structures Handle cfg(bootstrap) throughout 2019-08-14 05:39:53 -04:00
librustc_driver Auto merge of #63175 - jsgf:argsfile, r=jsgf 2019-08-22 06:14:49 +00:00
librustc_errors syntax_pos: `NO_EXPANSION`/`SyntaxContext::empty()` -> `SyntaxContext::root()` 2019-08-15 20:38:12 +03:00
librustc_fs_util Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_incremental Rename `ItemImplKind::Type` to `ItemImplKind::TyAlias` 2019-08-04 20:16:41 +01:00
librustc_interface Deprecate using rustc_plugin without the rustc_driver dylib. 2019-08-20 00:21:32 +02:00
librustc_lexer remove composite tokens support from the lexer 2019-08-19 21:59:09 +03:00
librustc_lint Deprecate using rustc_plugin without the rustc_driver dylib. 2019-08-20 00:21:32 +02:00
librustc_llvm Rollup merge of #63621 - jgalenson:dndebug, r=alexcrichton 2019-08-17 11:13:47 +02:00
librustc_lsan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_macros Handle cfg(bootstrap) throughout 2019-08-14 05:39:53 -04:00
librustc_metadata rustc_metadata: replace LazySeq<T> with Lazy<[T]>. 2019-08-20 18:36:05 +03:00
librustc_mir Auto merge of #63497 - eddyb:miri-subst, r=oli-obk 2019-08-20 04:14:51 +00:00
librustc_msan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_passes `r#type` -> `ty` 2019-08-21 14:32:38 +03:00
librustc_plugin Restore the rustc_plugin crate in the sysroot 2019-08-20 13:30:50 +02:00
librustc_privacy review comments 2019-08-21 16:11:01 -07:00
librustc_resolve resolve/expand: Rename some things for clarity and add comments 2019-08-21 11:53:39 +03:00
librustc_save_analysis syntax_pos: Introduce a helper for checking whether a span comes from expansion 2019-08-15 20:38:12 +03:00
librustc_target Rollup merge of #63604 - Wind-River:master, r=alexcrichton 2019-08-16 18:22:28 +02:00
librustc_traits Fiddle param env through to `try_eval_bits` in most places 2019-08-05 17:48:05 +02:00
librustc_tsan Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
librustc_typeck Rollup merge of #63209 - Centril:stabilize-async-await, r=cramertj 2019-08-20 19:42:18 +02:00
librustdoc Rollup merge of #63782 - GuillaumeGomez:theme-switch-fix, r=kinnison 2019-08-22 15:15:40 +02:00
libserialize Use associated_type_bounds where applicable - closes #61738 2019-08-08 22:39:15 +02:00
libstd Auto merge of #63815 - sebastinez:sebastinez-doc-#63792, r=jonas-schievink 2019-08-23 12:40:32 +00:00
libsyntax Rollup merge of #63717 - petrochenkov:eager, r=matthewjasper 2019-08-21 17:31:39 +02:00
libsyntax_ext Remove SyntaxContext from {ast, hir}::{GlobalAsm, InlineAsm} 2019-08-17 09:12:32 +01:00
libsyntax_pos Auto merge of #62948 - matklad:failable-file-loading, r=petrochenkov 2019-08-18 04:37:01 +00:00
libterm bootstrap: Merge the libtest build step with libstd 2019-08-23 16:46:11 -07:00
libtest bootstrap: Merge the libtest build step with libstd 2019-08-23 16:46:11 -07:00
libunwind Rollup merge of #63595 - semarie:openbsd-sparc64, r=alexcrichton 2019-08-16 18:22:26 +02:00
llvm-emscripten@7f23313edf
llvm-project@48818e9f5d Update LLVM submodule 2019-08-09 19:17:18 +02:00
rtstartup
rustc
rustllvm
stdarch@4791ba85e7 Update stdarch submodule 2019-07-23 17:19:32 +02:00
test Rollup merge of #63796 - estebank:opaque_future, r=Centril 2019-08-22 15:15:43 +02:00
tools bootstrap: Merge the libtest build step with libstd 2019-08-23 16:46:11 -07:00
README.md doc: the content has since been moved to the guide 2019-08-06 03:03:45 +02:00
stage0.txt Bump to 1.39 2019-08-13 07:16:04 -04:00

README.md

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc guide.

There is also useful content in this README: https://github.com/rust-lang/rust/tree/master/src/librustc/infer/lexical_region_resolve.