Skip to content

Commit d9738bb

Browse files
committed
Auto merge of #37900 - est31:i128, r=eddyb
i128 and u128 support Adds support for 128-bit integers. Rebased version of #35954 , with additional improvements. Thanks @nagisa for mentoring this PR! Some of the problems that were resolved: * [x] Confirm that intrinsics work on 32 bit platforms and fix them if needed * Wait for #37906 to get fixed, so that work on intrinsics can be completed *(worked around by merging the PR on my local setup)* * [x] Investigate and fix linkcheck failure [plugin-breaking-change] cc #35118
2 parents 7b06438 + 7050c5b commit d9738bb

File tree

113 files changed

+2018
-473
lines changed

Some content is hidden

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

113 files changed

+2018
-473
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
rustc_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 rustc_unicode rustc_errors syntax_pos rustc_data_structures
100+
DEPS_syntax := std term serialize log arena libc rustc_bitflags rustc_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_rustc_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

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

0 commit comments

Comments
 (0)