rust/src
Tomasz Miąsko 3ab596514a Improve linking of crates with circular dependencies
Previously, the code responsible for handling the cycles between crates
introduces through weak lang items, would keep a set of missing language
items:

* extending it with items missing from the current crate,
* removing items provided by the current crate,
* grouping the crates when the set changed from non-empty back to empty.

This could produce incorrect results, if a lang item was missing from a
crate that comes after the crate that provides it (in the loop iteration
order). In that case the grouping would not take place.

The changes here address this specific failure scenario by keeping track
of two separate sets of crates. Those that are required to link successfully,
and those that are available for linking.

Verified using test case from 69368.
2020-03-03 13:11:19 +01:00
..
bootstrap Rollup merge of #69624 - ehuss:toolstate-beta-regress, r=Mark-Simulacrum 2020-03-02 13:42:43 +01:00
build_helper
ci Rollup merge of #68863 - pietroalbini:azure-macos-10.15, r=Mark-Simulacrum 2020-02-19 18:12:07 +01:00
doc Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
etc Rollup merge of #69049 - pthariensflame:improvement/imgbot, r=GuillaumeGomez 2020-02-13 02:52:53 +01:00
liballoc Rollup merge of #69569 - matthiaskrgr:nonminimal_bool, r=mark-Simulacrum 2020-03-01 17:23:30 +01:00
libarena
libcore Rollup merge of #69617 - DutchGhost:master, r=LukasKalbertodt 2020-03-02 13:42:38 +01:00
libfmt_macros
libgraphviz Add option to dot::render for monospace font 2020-02-09 10:33:06 -08:00
libpanic_abort
libpanic_unwind Drop cfg(bootstrap) code 2020-01-31 12:31:09 -05:00
libproc_macro
libprofiler_builtins
librustc Remove chalk integration 2020-03-02 18:11:53 -05:00
librustc_apfloat
librustc_ast Rename syntax in librustc_ast/README.md 2020-03-01 23:56:03 +01:00
librustc_ast_lowering Rollup merge of #69580 - matthiaskrgr:map_clone, r=Centril 2020-03-01 19:28:12 +09:00
librustc_ast_passes Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_ast_pretty Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_attr Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_builtin_macros Rollup merge of #69580 - matthiaskrgr:map_clone, r=Centril 2020-03-01 19:28:12 +09:00
librustc_codegen_llvm Rollup merge of #69569 - matthiaskrgr:nonminimal_bool, r=mark-Simulacrum 2020-03-01 17:23:30 +01:00
librustc_codegen_ssa Improve linking of crates with circular dependencies 2020-03-03 13:11:19 +01:00
librustc_codegen_utils Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_data_structures use is_empty() instead of len() == x to determine if structs are empty. 2020-02-28 15:16:27 +01:00
librustc_driver Auto merge of #69442 - jakevossen5:master, r=Mark-Simulacrum 2020-03-02 03:16:22 +00:00
librustc_error_codes Auto merge of #69442 - jakevossen5:master, r=Mark-Simulacrum 2020-03-02 03:16:22 +00:00
librustc_errors Rollup merge of #69623 - Centril:fix-69396-tmp, r=petrochenkov 2020-03-02 13:42:41 +01:00
librustc_expand Rollup merge of #69580 - matthiaskrgr:map_clone, r=Centril 2020-03-01 19:28:12 +09:00
librustc_feature Revert "Mark attributes consumed by check_mod_attrs as normal" 2020-02-27 00:00:00 +00:00
librustc_fs_util
librustc_hir Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_incremental Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_index index ReEmpty by universe 2020-02-06 15:58:00 -05:00
librustc_infer Remove chalk integration 2020-03-02 18:11:53 -05:00
librustc_interface Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_lexer Spelling error "represening" to "representing" 2020-02-13 11:14:21 -05:00
librustc_lint Auto merge of #69380 - Zoxc:parent-module, r=michaelwoerister 2020-03-01 14:21:03 +00:00
librustc_llvm use char instead of &str for single char patterns 2020-02-27 14:57:22 +01:00
librustc_macros librustc_macros: remove redundant single component path import 2020-02-24 14:56:30 +01:00
librustc_metadata Auto merge of #69432 - petrochenkov:alldeps, r=eddyb 2020-03-02 00:07:06 +00:00
librustc_mir Auto merge of #69257 - RalfJung:layout-visitor, r=eddyb 2020-03-02 09:37:35 +00:00
librustc_mir_build Auto merge of #69380 - Zoxc:parent-module, r=michaelwoerister 2020-03-01 14:21:03 +00:00
librustc_parse Rollup merge of #69579 - petrochenkov:noprevspan, r=Centril 2020-03-01 19:28:10 +09:00
librustc_passes Auto merge of #69612 - Dylan-DPC:rollup-f180gcc, r=Dylan-DPC 2020-03-01 17:39:05 +00:00
librustc_plugin_impl Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00
librustc_privacy Auto merge of #69380 - Zoxc:parent-module, r=michaelwoerister 2020-03-01 14:21:03 +00:00
librustc_resolve Auto merge of #69432 - petrochenkov:alldeps, r=eddyb 2020-03-02 00:07:06 +00:00
librustc_save_analysis Rollup merge of #69605 - JohnTitor:opt-def-id, r=petrochenkov 2020-03-01 19:28:15 +09:00
librustc_session Remove chalk integration 2020-03-02 18:11:53 -05:00
librustc_span Rollup merge of #69580 - matthiaskrgr:map_clone, r=Centril 2020-03-01 19:28:12 +09:00
librustc_target Auto merge of #69257 - RalfJung:layout-visitor, r=eddyb 2020-03-02 09:37:35 +00:00
librustc_traits Remove chalk integration 2020-03-02 18:11:53 -05:00
librustc_ty Remove chalk integration 2020-03-02 18:11:53 -05:00
librustc_typeck Fix use of has_infer_types 2020-03-01 21:42:34 +00:00
librustdoc Auto merge of #69612 - Dylan-DPC:rollup-f180gcc, r=Dylan-DPC 2020-03-01 17:39:05 +00:00
libserialize Inline various simple emit_* and read_* methods in Decoder. 2020-02-18 16:46:50 +11:00
libstd Rollup merge of #69569 - matthiaskrgr:nonminimal_bool, r=mark-Simulacrum 2020-03-01 17:23:30 +01:00
libterm
libtest Rollup merge of #69580 - matthiaskrgr:map_clone, r=Centril 2020-03-01 19:28:12 +09:00
libunwind
llvm-project@9f65ad0573 update llvm to silence gcc 9 warnings 2020-02-26 10:27:01 +08:00
rtstartup
rustc
rustllvm Auto merge of #69144 - Dylan-DPC:rollup-apt6zjj, r=Dylan-DPC 2020-02-13 22:20:58 +00:00
stdarch@dea57529b3 stdarch: update submodule. 2020-02-01 22:04:18 -05:00
test Remove chalk integration 2020-03-02 18:11:53 -05:00
tools Update cargo, clippy 2020-03-02 12:25:29 -08:00
README.md
stage0.txt Bump rustfmt and stage0 2020-01-31 12:31:09 -05:00

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.