Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e203c4d
cmplt
Apersoma Mar 19, 2026
2448f7d
removed FIXMEs
Apersoma Mar 19, 2026
2697924
Do not pass `-no-pie` on Windows
mati865 Jul 23, 2026
0ec97c2
Remove unnecessary fmt::Display use for overflow assertion
fereidani Aug 8, 2026
9be1177
Miri: give the incremental session a chance to finish
RalfJung Aug 8, 2026
e8c3f61
fix unused features in Miri tests
RalfJung Aug 8, 2026
f61d317
rustc-book: update sys-v abi link
vilgotf Aug 9, 2026
c1bfb4b
Improve overflow check code generation further
fereidani Aug 8, 2026
dd905cd
std: Adjust cfgs again for TLS on WASI
alexcrichton Aug 10, 2026
0166f50
Add rust_analyzer to check-cfg names
dronavallipranav Aug 10, 2026
1d06f70
Allow running an arbitrary number of try jobs per PR
Kobzol Aug 11, 2026
91de2e3
tests/run-make-cargo/thumb-none-cortex-m: bump `cortex-m` dependency
japaric Aug 11, 2026
6408d38
Add -Zwasm-proc-macro flag
Mark-Simulacrum Aug 10, 2026
4789fa3
Update check-cfg documentation
dronavallipranav Aug 11, 2026
b588ef3
Move rustc_session cstore module to its own crate
mejrs Aug 11, 2026
38ef4c8
No longer mention the removed generic
ada4a Aug 11, 2026
5dc184c
rustdoc: Fix invalid CSS classes generated for notable items
GuillaumeGomez Aug 11, 2026
65d9d0e
split off hir::definitions
mejrs Aug 11, 2026
16c0574
Ensure TLS accesses don't call the global allocator through panic
maxdexh Aug 11, 2026
5c8e769
remove libc dependency
mejrs Aug 11, 2026
03c3d00
Make inputs to `ParenthesizedArgs` a `ThinVec<Param>` in the compiler
JonathanBrouwer Aug 11, 2026
8dac1c6
Fix errors in tooling
JonathanBrouwer Aug 11, 2026
bd5ccd3
Improve `rewrite_generic_args` to take pattern into account
JonathanBrouwer Aug 11, 2026
2e63745
Add rustfmt regression test
JonathanBrouwer Aug 11, 2026
37c704b
move over test
mejrs Aug 11, 2026
d794aaa
Rollup merge of #160620 - mati865:no-no-pie-windows, r=bjorn3
JonathanBrouwer Aug 11, 2026
48e7d90
Rollup merge of #160731 - fereidani:sync_overflow_check, r=joboet
JonathanBrouwer Aug 11, 2026
db92d44
Rollup merge of #160760 - RalfJung:miri-incremental, r=bjorn3
JonathanBrouwer Aug 11, 2026
7f3952a
Rollup merge of #160854 - Mark-Simulacrum:wasm-macro-partial, r=bjorn…
JonathanBrouwer Aug 11, 2026
10d8fb2
Rollup merge of #160868 - alexcrichton:adjust-wasi-tls-again, r=clarf…
JonathanBrouwer Aug 11, 2026
abf89e1
Rollup merge of #160894 - Kobzol:try-job-nolimit, r=Mark-Simulacrum
JonathanBrouwer Aug 11, 2026
d4dd9cc
Rollup merge of #154065 - Apersoma:stabilize-fN-bits, r=tgross35
JonathanBrouwer Aug 11, 2026
31a3a6a
Rollup merge of #160790 - vilgotf:sysv-abi, r=mejrs
JonathanBrouwer Aug 11, 2026
4802008
Rollup merge of #160878 - dronavallipranav:add-rust-analyzer-cfg, r=U…
JonathanBrouwer Aug 11, 2026
acc22c8
Rollup merge of #160909 - ferrocene:ja/bump-cortex-m-version, r=mejrs
JonathanBrouwer Aug 11, 2026
660b380
Rollup merge of #160920 - ada4a:ada/push-lsklksypvrqk, r=lqd
JonathanBrouwer Aug 11, 2026
addd03f
Rollup merge of #160921 - GuillaumeGomez:notable-items, r=Urgau
JonathanBrouwer Aug 11, 2026
7857906
Rollup merge of #160924 - mejrs:split_cstore, r=JonathanBrouwer
JonathanBrouwer Aug 11, 2026
dee1cf2
Rollup merge of #160934 - maxdexh:fix-thread-local-global-alloc-reent…
JonathanBrouwer Aug 11, 2026
130310a
Rollup merge of #160937 - JonathanBrouwer:param_ast, r=ytmimi
JonathanBrouwer Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 25 additions & 5 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3817,6 +3817,7 @@ dependencies = [
"rustc_abi",
"rustc_ast",
"rustc_codegen_ssa",
"rustc_crate_store",
"rustc_data_structures",
"rustc_errors",
"rustc_fs_util",
Expand Down Expand Up @@ -3853,6 +3854,7 @@ dependencies = [
"rustc_arena",
"rustc_ast",
"rustc_attr_parsing",
"rustc_crate_store",
"rustc_data_structures",
"rustc_errors",
"rustc_fs_util",
Expand Down Expand Up @@ -3903,6 +3905,19 @@ dependencies = [
"tracing",
]

[[package]]
name = "rustc_crate_store"
version = "0.0.0"
dependencies = [
"rustc_abi",
"rustc_attr_ir",
"rustc_data_structures",
"rustc_hir_id",
"rustc_macros",
"rustc_serialize",
"rustc_span",
]

[[package]]
name = "rustc_data_structures"
version = "0.0.0"
Expand Down Expand Up @@ -4091,15 +4106,13 @@ name = "rustc_hir"
version = "0.0.0"
dependencies = [
"bitflags",
"odht",
"rustc_abi",
"rustc_arena",
"rustc_ast",
"rustc_attr_ir",
"rustc_data_structures",
"rustc_error_messages",
"rustc_errors",
"rustc_hashes",
"rustc_hir_id",
"rustc_index",
"rustc_lint_defs",
Expand Down Expand Up @@ -4139,11 +4152,14 @@ dependencies = [
name = "rustc_hir_id"
version = "0.0.0"
dependencies = [
"odht",
"rustc_data_structures",
"rustc_hashes",
"rustc_index",
"rustc_macros",
"rustc_serialize",
"rustc_span",
"tracing",
]

[[package]]
Expand Down Expand Up @@ -4253,6 +4269,7 @@ dependencies = [
"rustc_codegen_llvm",
"rustc_codegen_ssa",
"rustc_const_eval",
"rustc_crate_store",
"rustc_data_structures",
"rustc_errors",
"rustc_expand",
Expand Down Expand Up @@ -4381,6 +4398,7 @@ dependencies = [
"rustc_abi",
"rustc_ast",
"rustc_attr_parsing",
"rustc_crate_store",
"rustc_data_structures",
"rustc_errors",
"rustc_expand",
Expand Down Expand Up @@ -4414,6 +4432,7 @@ dependencies = [
"rustc_arena",
"rustc_ast",
"rustc_ast_ir",
"rustc_crate_store",
"rustc_data_structures",
"rustc_error_messages",
"rustc_errors",
Expand Down Expand Up @@ -4577,6 +4596,7 @@ dependencies = [
"rustc_ast",
"rustc_ast_lowering",
"rustc_attr_parsing",
"rustc_crate_store",
"rustc_data_structures",
"rustc_errors",
"rustc_expand",
Expand Down Expand Up @@ -4642,10 +4662,10 @@ name = "rustc_public"
version = "0.1.0-preview"
dependencies = [
"rustc_abi",
"rustc_crate_store",
"rustc_hir",
"rustc_middle",
"rustc_public_bridge",
"rustc_session",
"rustc_span",
"rustc_target",
"scoped-tls",
Expand All @@ -4659,11 +4679,11 @@ name = "rustc_public_bridge"
version = "0.0.0"
dependencies = [
"rustc_abi",
"rustc_crate_store",
"rustc_data_structures",
"rustc_hir",
"rustc_hir_pretty",
"rustc_middle",
"rustc_session",
"rustc_span",
"rustc_target",
]
Expand Down Expand Up @@ -4753,7 +4773,6 @@ dependencies = [
"rustc_feature",
"rustc_fs_util",
"rustc_hashes",
"rustc_hir",
"rustc_lint_defs",
"rustc_macros",
"rustc_serialize",
Expand Down Expand Up @@ -4855,6 +4874,7 @@ dependencies = [
"itertools",
"rustc_abi",
"rustc_ast",
"rustc_crate_store",
"rustc_data_structures",
"rustc_errors",
"rustc_hir",
Expand Down
12 changes: 12 additions & 0 deletions bootstrap.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -944,6 +944,18 @@
# because bootstrap will attempt to download the JSON docs data for this commit from its CI.
#rust.stdlib-semver-baseline = "<commit-sha>"

# Enables building a wasm proc macro compatible toolchain.
#
# This requires building an additional standard library for a different target and adding it
# to the sysroot before running tests, and so needs special handling in bootstrap. Currently
# off by default.
#
# This currently opts compiletest into running/building proc-macro tests via wasm.
#
# The implementation for this has not finished landing, so you probably don't
# want to enable this right now.
#rust.wasm-proc-macros = false

# =============================================================================
# Distribution options
#
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_abi/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2383,7 +2383,7 @@ pub enum AbiFromStrErr {
NoExplicitUnwind,
}

// NOTE: This struct is generic over the FieldIdx and VariantIdx for rust-analyzer usage.
// NOTE: This struct is generic over the FieldIdx for rust-analyzer usage.
#[derive(PartialEq, Eq, Hash, Clone, Debug)]
#[cfg_attr(feature = "nightly", derive(StableHash))]
pub struct VariantLayout<FieldIdx: Idx> {
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast/src/ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ pub struct ParenthesizedArgs {
pub span: Span,

/// `(A, B)`
pub inputs: ThinVec<Box<Ty>>,
pub inputs: ThinVec<Param>,

/// ```text
/// Foo(A, B) -> C
Expand All @@ -364,7 +364,7 @@ impl ParenthesizedArgs {
.inputs
.iter()
.cloned()
.map(|input| AngleBracketedArg::Arg(GenericArg::Type(input)))
.map(|input| AngleBracketedArg::Arg(GenericArg::Type(input.ty)))
.collect();
AngleBracketedArgs { span: self.inputs_span, args }
}
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast_lowering/src/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -512,8 +512,8 @@ impl<'hir> LoweringContext<'_, 'hir> {
// compatibility, even in contexts like an impl header where
// we generally don't permit such things (see #51008).
let ParenthesizedArgs { span, inputs, inputs_span, output } = data;
let inputs = self.arena.alloc_from_iter(inputs.iter().map(|ty| {
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::FnTraitParam))
let inputs = self.arena.alloc_from_iter(inputs.iter().map(|param| {
self.lower_ty(&param.ty, ImplTraitContext::Disallowed(ImplTraitPosition::FnTraitParam))
}));
let output_ty = match output {
// Only allow `impl Trait` in return position. i.e.:
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_ast_passes/src/ast_validation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1771,7 +1771,7 @@ impl Visitor<'_> for AstValidator<'_> {
}
}
GenericArgs::Parenthesized(data) => {
walk_list!(self, visit_ty, &data.inputs);
walk_list!(self, visit_param, &data.inputs);
if let FnRetTy::Ty(ty) = &data.output {
// `-> Foo` syntax is essentially an associated type binding,
// so it is also allowed to contain nested `impl Trait`.
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_ast_pretty/src/pprust/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1212,7 +1212,7 @@ impl<'a> PrintState<'a> for State<'a> {

ast::GenericArgs::Parenthesized(data) => {
self.word("(");
self.commasep(Inconsistent, &data.inputs, |s, ty| s.print_type(ty));
self.commasep(Inconsistent, &data.inputs, |s, param| s.print_param(param, false));
self.word(")");
self.print_fn_ret_ty(&data.output);
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_codegen_llvm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ rustc-demangle = "0.1.28"
rustc_abi = { path = "../rustc_abi" }
rustc_ast = { path = "../rustc_ast" }
rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }
rustc_crate_store = { path = "../rustc_crate_store" }
rustc_data_structures = { path = "../rustc_data_structures" }
rustc_errors = { path = "../rustc_errors" }
rustc_fs_util = { path = "../rustc_fs_util" }
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_llvm/src/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ use rustc_abi::{self as abi, ExternAbi, HasDataLayout as _};
use rustc_ast::Mutability;
use rustc_codegen_ssa::common::TypeKind;
use rustc_codegen_ssa::traits::*;
use rustc_crate_store::DllImport;
use rustc_data_structures::stable_hash::{StableHash, StableHasher};
use rustc_hashes::Hash128;
use rustc_hir::def::DefKind;
use rustc_hir::def_id::DefId;
use rustc_middle::bug;
use rustc_middle::mir::interpret::{GlobalAlloc, PointerArithmetic, Scalar};
use rustc_middle::ty::{Instance, TyCtxt};
use rustc_session::cstore::DllImport;
use rustc_session::{PointerAuthAddressDiscriminator, PointerAuthSchema};
use tracing::debug;

Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_codegen_ssa/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ rustc_abi = { path = "../rustc_abi" }
rustc_arena = { path = "../rustc_arena" }
rustc_ast = { path = "../rustc_ast" }
rustc_attr_parsing = { path = "../rustc_attr_parsing" }
rustc_crate_store = { path = "../rustc_crate_store" }
rustc_data_structures = { path = "../rustc_data_structures" }
rustc_errors = { path = "../rustc_errors" }
rustc_fs_util = { path = "../rustc_fs_util" }
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_ssa/src/back/link/raw_dylib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ use std::io::{BufWriter, Write};
use std::path::{Path, PathBuf};

use rustc_abi::Endian;
use rustc_crate_store::{DllImport, DllImportSymbolType};
use rustc_data_structures::base_n::{CASE_INSENSITIVE, ToBaseN};
use rustc_data_structures::fx::{FxHashMap, FxIndexMap};
use rustc_data_structures::stable_hash::StableHasher;
use rustc_hashes::Hash128;
use rustc_hir::attrs::NativeLibKind;
use rustc_session::Session;
use rustc_session::cstore::{DllImport, DllImportSymbolType};
use rustc_span::Symbol;
use rustc_target::spec::Arch;

Expand Down
3 changes: 2 additions & 1 deletion compiler/rustc_codegen_ssa/src/back/linker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,8 @@ impl<'a> Linker for GccLinker<'a> {
LinkOutputKind::StaticNoPicExe => {
// `-static` works for both gcc wrapper and ld.
self.link_or_cc_arg("-static");
if !self.is_ld && self.is_gnu {
// noop on windows w/ gcc, warning w/ clang
if !self.is_ld && self.is_gnu && !self.sess.target.is_like_windows {
self.cc_arg("-no-pie");
}
}
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_ssa/src/back/symbol_export.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use std::collections::hash_map::Entry::*;

use rustc_abi::{CanonAbi, X86Call};
use rustc_ast::expand::allocator::{AllocatorKind, NO_ALLOC_SHIM_IS_UNSTABLE, global_fn_name};
use rustc_crate_store::CrateDepKind;
use rustc_data_structures::unord::UnordMap;
use rustc_hir as hir;
use rustc_hir::def::DefKind;
Expand All @@ -17,7 +18,6 @@ use rustc_middle::ty::{
};
use rustc_middle::util::Providers;
use rustc_session::config::CrateType;
use rustc_session::cstore::CrateDepKind;
use rustc_span::Span;
use rustc_symbol_mangling::mangle_internal_symbol;
use rustc_target::spec::{Arch, Os, TlsModel};
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_ssa/src/common.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#![allow(non_camel_case_types)]

use rustc_crate_store::{DllCallingConvention, DllImport, DllImportSymbolType};
use rustc_hir::attrs::PeImportNameType;
use rustc_hir::attrs::lang_items::LangItem;
use rustc_middle::mir::interpret::{GlobalAlloc, PointerArithmetic, Scalar};
use rustc_middle::ty::layout::TyAndLayout;
use rustc_middle::ty::{self, Instance, ScalarInt, TyCtxt};
use rustc_middle::{bug, span_bug};
use rustc_session::cstore::{DllCallingConvention, DllImport, DllImportSymbolType};
use rustc_span::Span;
use rustc_target::spec::{CfgAbi, Env, Os, Target};

Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_codegen_ssa/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ use std::path::{Path, PathBuf};
use std::sync::Arc;

use rustc_abi::Size;
use rustc_crate_store::{self as cstore, CrateSource};
use rustc_data_structures::fx::{FxHashSet, FxIndexMap};
use rustc_data_structures::unord::{UnordMap, UnordSet};
use rustc_hir::CRATE_HIR_ID;
Expand All @@ -38,7 +39,6 @@ use rustc_serialize::opaque::{FileEncoder, MemDecoder};
use rustc_serialize::{Decodable, Decoder, Encodable, Encoder};
use rustc_session::Session;
use rustc_session::config::{CrateType, OutputFilenames, OutputType};
use rustc_session::cstore::{self, CrateSource};
use rustc_session::lint::builtin::LINKER_MESSAGES;
use rustc_span::{Span, Symbol};

Expand Down Expand Up @@ -207,7 +207,7 @@ bitflags::bitflags! {
}
}

// This is the same as `rustc_session::cstore::NativeLib`, except:
// This is the same as `rustc_crate_store::NativeLib`, except:
// - (important) the `foreign_module` field is missing, because it contains a `DefId`, which can't
// be encoded with `FileEncoder`.
// - (less important) the `verbatim` field is a `bool` rather than an `Option<bool>`, because here
Expand Down
15 changes: 15 additions & 0 deletions compiler/rustc_crate_store/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[package]
name = "rustc_crate_store"
version = "0.0.0"
edition = "2024"

[dependencies]
# tidy-alphabetical-start
rustc_abi = { path = "../rustc_abi" }
rustc_attr_ir = { path = "../rustc_attr_ir" }
rustc_data_structures = { path = "../rustc_data_structures" }
rustc_hir_id = { path = "../rustc_hir_id" }
rustc_macros = { path = "../rustc_macros" }
rustc_serialize = { path = "../rustc_serialize" }
rustc_span = { path = "../rustc_span" }
# tidy-alphabetical-end
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,13 @@ use std::path::PathBuf;
use rustc_abi::ExternAbi;
use rustc_attr_ir::{CfgEntry, NativeLibKind, PeImportNameType};
use rustc_data_structures::sync::{self, AppendOnlyIndexVec, FreezeLock};
// FIXME: Can we not depend on `rustc_hir` here? :)
use rustc_hir::definitions::{DefKey, DefPath, Definitions};
use rustc_hir_id::definitions::{DefKey, DefPath, Definitions};
use rustc_macros::{BlobDecodable, Decodable, Encodable, StableHash};
use rustc_span::def_id::{
CrateNum, DefId, DefPathHash, LOCAL_CRATE, LocalDefId, StableCrateId, StableCrateIdMap,
};
use rustc_span::{Span, Symbol};

// lonely orphan structs and enums looking for a better home

/// Where a crate came from on the local filesystem. One of these three options
/// must be non-None.
#[derive(PartialEq, Clone, Debug, StableHash, Encodable, Decodable)]
Expand Down
3 changes: 3 additions & 0 deletions compiler/rustc_crate_store/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mod cstore;

pub use cstore::*;
2 changes: 0 additions & 2 deletions compiler/rustc_hir/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ edition = "2024"
[dependencies]
# tidy-alphabetical-start
bitflags = "2.9.1"
odht = { version = "0.3.1", features = ["nightly"] }
rustc_abi = { path = "../rustc_abi" }
rustc_arena = { path = "../rustc_arena" }
rustc_ast = { path = "../rustc_ast" }
rustc_attr_ir = { path = "../rustc_attr_ir" }
rustc_data_structures = { path = "../rustc_data_structures" }
rustc_error_messages = { path = "../rustc_error_messages" }
rustc_errors = { path = "../rustc_errors" }
rustc_hashes = { path = "../rustc_hashes" }
rustc_hir_id = { path = "../rustc_hir_id" }
rustc_index = { path = "../rustc_index" }
rustc_lint_defs = { path = "../rustc_lint_defs" }
Expand Down
5 changes: 0 additions & 5 deletions compiler/rustc_hir/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,13 @@

mod arena;
pub mod def;
pub mod def_path_hash_map;
pub mod definitions;
mod hir;
pub mod intravisit;
pub mod lints;
pub mod pat_util;
mod stable_hash_impls;
mod target_impls;

#[cfg(test)]
mod tests;

#[doc(no_inline)]
pub use hir::*;
pub use rustc_attr_ir::{self as attrs, find_attr};
Expand Down
Loading
Loading