Skip to content

Commit 38bd207

Browse files
committed
Auto merge of #38482 - est31:i128, r=eddyb
i128 and u128 support Brings i128 and u128 support to nightly rust, behind a feature flag. The goal of this PR is to do the bulk of the work for 128 bit integer support. Smaller but just as tricky features needed for stabilisation like 128 bit enum discriminants are left for future PRs. Rebased version of #37900, which in turn was a rebase + improvement of #35954 . Sadly I couldn't reopen #37900 due to github. There goes my premium position in the homu queue... [plugin-breaking-change] cc #35118 (tracking issue)
2 parents 6185c54 + 29e01af commit 38bd207

File tree

121 files changed

+2232
-485
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+2232
-485
lines changed

mk/crates.mk

+15-10
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ TARGET_CRATES := libc std term \
5454
compiler_builtins core alloc \
5555
std_unicode rustc_bitflags \
5656
alloc_system alloc_jemalloc \
57-
panic_abort panic_unwind unwind
57+
panic_abort panic_unwind unwind rustc_i128
5858
RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_driver \
5959
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
6060
rustc_data_structures rustc_platform_intrinsics rustc_errors \
@@ -92,23 +92,26 @@ DEPS_getopts := std
9292
DEPS_graphviz := std
9393
DEPS_log := std
9494
DEPS_num := std
95-
DEPS_serialize := std log
95+
DEPS_serialize := std log rustc_i128
9696
DEPS_term := std
9797
DEPS_test := std getopts term native:rust_test_helpers
98+
DEPS_rustc_i128 = std
9899

99-
DEPS_syntax := std term serialize log arena libc rustc_bitflags std_unicode rustc_errors syntax_pos rustc_data_structures
100+
DEPS_syntax := std term serialize log arena libc rustc_bitflags std_unicode rustc_errors \
101+
syntax_pos rustc_data_structures rustc_i128
100102
DEPS_syntax_ext := syntax syntax_pos rustc_errors fmt_macros proc_macro
103+
DEPS_proc_macro := syntax syntax_pos rustc_plugin log
101104
DEPS_syntax_pos := serialize
102105
DEPS_proc_macro_tokens := syntax syntax_pos log
103106
DEPS_proc_macro_plugin := syntax syntax_pos rustc_plugin log proc_macro_tokens
104107

105-
DEPS_rustc_const_math := std syntax log serialize
108+
DEPS_rustc_const_math := std syntax log serialize rustc_i128
106109
DEPS_rustc_const_eval := rustc_const_math rustc syntax log serialize \
107-
rustc_back graphviz syntax_pos
110+
rustc_back graphviz syntax_pos rustc_i128
108111

109112
DEPS_rustc := syntax fmt_macros flate arena serialize getopts \
110113
log graphviz rustc_llvm rustc_back rustc_data_structures\
111-
rustc_const_math syntax_pos rustc_errors
114+
rustc_const_math syntax_pos rustc_errors rustc_i128
112115
DEPS_rustc_back := std syntax flate log libc
113116
DEPS_rustc_borrowck := rustc log graphviz syntax syntax_pos rustc_errors rustc_mir
114117
DEPS_rustc_data_structures := std log serialize libc
@@ -119,19 +122,20 @@ DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_bo
119122
rustc_passes rustc_save_analysis rustc_const_eval \
120123
rustc_incremental syntax_pos rustc_errors proc_macro rustc_data_structures
121124
DEPS_rustc_errors := log libc serialize syntax_pos
122-
DEPS_rustc_lint := rustc log syntax syntax_pos rustc_const_eval
125+
DEPS_rustc_lint := rustc log syntax syntax_pos rustc_const_eval rustc_i128
123126
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
124127
DEPS_proc_macro := std syntax
125128
DEPS_rustc_metadata := rustc syntax syntax_pos rustc_errors rustc_const_math \
126-
proc_macro syntax_ext
129+
proc_macro syntax_ext rustc_i128
127130
DEPS_rustc_passes := syntax syntax_pos rustc core rustc_const_eval rustc_errors
128-
DEPS_rustc_mir := rustc syntax syntax_pos rustc_const_math rustc_const_eval rustc_bitflags
131+
DEPS_rustc_mir := rustc syntax syntax_pos rustc_const_math rustc_const_eval rustc_bitflags \
132+
rustc_i128
129133
DEPS_rustc_resolve := arena rustc log syntax syntax_pos rustc_errors
130134
DEPS_rustc_platform_intrinsics := std
131135
DEPS_rustc_plugin := rustc rustc_metadata syntax syntax_pos rustc_errors
132136
DEPS_rustc_privacy := rustc log syntax syntax_pos
133137
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
134-
log syntax serialize rustc_llvm rustc_platform_intrinsics \
138+
log syntax serialize rustc_llvm rustc_platform_intrinsics rustc_i128 \
135139
rustc_const_math rustc_const_eval rustc_incremental rustc_errors syntax_pos
136140
DEPS_rustc_incremental := rustc syntax_pos serialize rustc_data_structures
137141
DEPS_rustc_save_analysis := rustc log syntax syntax_pos serialize
@@ -159,6 +163,7 @@ ONLY_RLIB_alloc := 1
159163
ONLY_RLIB_rand := 1
160164
ONLY_RLIB_collections := 1
161165
ONLY_RLIB_std_unicode := 1
166+
ONLY_RLIB_rustc_i128 := 1
162167
ONLY_RLIB_rustc_bitflags := 1
163168
ONLY_RLIB_alloc_system := 1
164169
ONLY_RLIB_alloc_jemalloc := 1

src/Cargo.lock

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)