Skip to content

Commit c962146

Browse files
committed
---
yaml --- r: 151543 b: refs/heads/try2 c: f483aa3 h: refs/heads/master i: 151541: dd8a657 151539: 915d189 151535: 8893e0c v: v3
1 parent b0f81a4 commit c962146

File tree

161 files changed

+1388
-1088
lines changed

Some content is hidden

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

161 files changed

+1388
-1088
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 1895ad269ca7d4c8a258fb6188fac5f1d97c55ff
8+
refs/heads/try2: f483aa3a91ff9baf290ddf22209b984ec1f74b0c
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/.gitattributes

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,3 @@ src/etc/pkg/rust-logo.ico binary
88
src/etc/pkg/rust-logo.png binary
99
src/rt/msvc/* -whitespace
1010
src/rt/vg/* -whitespace
11-
src/rt/jemalloc/**/* -whitespace

branches/try2/.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@
1515
[submodule "src/rt/hoedown"]
1616
path = src/rt/hoedown
1717
url = https://github.com/rust-lang/hoedown.git
18+
[submodule "src/jemalloc"]
19+
path = src/jemalloc
20+
url = https://github.com/rust-lang/jemalloc.git

branches/try2/configure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,7 @@ do
782782
for s in 0 1 2 3
783783
do
784784
make_dir $t/rt/stage$s
785+
make_dir $t/rt/jemalloc
785786
make_dir $t/rt/libuv
786787
make_dir $t/rt/libuv/src/ares
787788
make_dir $t/rt/libuv/src/eio

branches/try2/mk/crates.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ CRATES := $(TARGET_CRATES) $(HOST_CRATES)
5757
TOOLS := compiletest rustdoc rustc
5858

5959
DEPS_core :=
60-
DEPS_std := core libc native:rustrt native:compiler-rt native:backtrace
60+
DEPS_std := core libc native:rustrt native:compiler-rt native:backtrace native:jemalloc
6161
DEPS_green := std rand native:context_switch
6262
DEPS_rustuv := std native:uv native:uv_support
6363
DEPS_native := std

branches/try2/mk/platform.mk

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ CFG_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).so
145145
CFG_STATIC_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).a
146146
CFG_LIB_GLOB_x86_64-unknown-linux-gnu=lib$(1)-*.so
147147
CFG_LIB_DSYM_GLOB_x86_64-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
148+
CFG_CFLAGS_x86_64-unknown-linux-gnu := -m64
148149
CFG_GCCISH_CFLAGS_x86_64-unknown-linux-gnu := -Wall -Werror -g -fPIC -m64
149150
CFG_GCCISH_CXXFLAGS_x86_64-unknown-linux-gnu := -fno-rtti
150151
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-linux-gnu := -shared -fPIC -ldl -pthread -lrt -g -m64
@@ -172,6 +173,7 @@ CFG_LIB_NAME_i686-unknown-linux-gnu=lib$(1).so
172173
CFG_STATIC_LIB_NAME_i686-unknown-linux-gnu=lib$(1).a
173174
CFG_LIB_GLOB_i686-unknown-linux-gnu=lib$(1)-*.so
174175
CFG_LIB_DSYM_GLOB_i686-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
176+
CFG_CFLAGS_i686-unknown-linux-gnu := -m32
175177
CFG_GCCISH_CFLAGS_i686-unknown-linux-gnu := -Wall -Werror -g -fPIC -m32
176178
CFG_GCCISH_CXXFLAGS_i686-unknown-linux-gnu := -fno-rtti
177179
CFG_GCCISH_LINK_FLAGS_i686-unknown-linux-gnu := -shared -fPIC -ldl -pthread -lrt -g -m32
@@ -201,6 +203,7 @@ AR_arm-apple-darwin = $(shell xcrun -find -sdk iphoneos ar)
201203
CFG_LIB_NAME_arm-apple-darwin = lib$(1).dylib
202204
CFG_LIB_GLOB_arm-apple-darwin = lib$(1)-*.dylib
203205
CFG_LIB_DSYM_GLOB_arm-apple-darwin = lib$(1)-*.dylib.dSYM
206+
CFG_CFLAGS_arm-apple-darwin := $(CFG_IOS_FLAGS)
204207
CFG_GCCISH_CFLAGS_arm-apple-darwin := -Wall -Werror -g -fPIC $(CFG_IOS_FLAGS)
205208
CFG_GCCISH_CXXFLAGS_arm-apple-darwin := -fno-rtti $(CFG_IOS_FLAGS)
206209
CFG_GCCISH_LINK_FLAGS_arm-apple-darwin := -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind
@@ -229,6 +232,7 @@ CFG_LIB_NAME_x86_64-apple-darwin=lib$(1).dylib
229232
CFG_STATIC_LIB_NAME_x86_64-apple-darwin=lib$(1).a
230233
CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib
231234
CFG_LIB_DSYM_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib.dSYM
235+
CFG_CFLAGS_x86_64-apple-darwin := -m64 -arch x86_64
232236
CFG_GCCISH_CFLAGS_x86_64-apple-darwin := -Wall -Werror -g -fPIC -m64 -arch x86_64
233237
CFG_GCCISH_CXXFLAGS_x86_64-apple-darwin := -fno-rtti
234238
CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -pthread -framework CoreServices -m64
@@ -256,6 +260,7 @@ CFG_LIB_NAME_i686-apple-darwin=lib$(1).dylib
256260
CFG_STATIC_LIB_NAME_i686-apple-darwin=lib$(1).a
257261
CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib
258262
CFG_LIB_DSYM_GLOB_i686-apple-darwin=lib$(1)-*.dylib.dSYM
263+
CFG_CFLAGS_i686-apple-darwin := -m32 -arch i386
259264
CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror -g -fPIC -m32 -arch i386
260265
CFG_GCCISH_CXXFLAGS_i686-apple-darwin := -fno-rtti
261266
CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -pthread -framework CoreServices -m32
@@ -283,6 +288,7 @@ CFG_LIB_NAME_arm-linux-androideabi=lib$(1).so
283288
CFG_STATIC_LIB_NAME_arm-linux-androideabi=lib$(1).a
284289
CFG_LIB_GLOB_arm-linux-androideabi=lib$(1)-*.so
285290
CFG_LIB_DSYM_GLOB_arm-linux-androideabi=lib$(1)-*.dylib.dSYM
291+
CFG_CFLAGS_arm-linux-androideabi := -D__arm__ -DANDROID -D__ANDROID__
286292
CFG_GCCISH_CFLAGS_arm-linux-androideabi := -Wall -g -fPIC -D__arm__ -DANDROID -D__ANDROID__
287293
CFG_GCCISH_CXXFLAGS_arm-linux-androideabi := -fno-rtti
288294
CFG_GCCISH_LINK_FLAGS_arm-linux-androideabi := -shared -fPIC -ldl -g -lm -lsupc++
@@ -313,6 +319,7 @@ CFG_LIB_NAME_arm-unknown-linux-gnueabihf=lib$(1).so
313319
CFG_STATIC_LIB_NAME_arm-unknown-linux-gnueabihf=lib$(1).a
314320
CFG_LIB_GLOB_arm-unknown-linux-gnueabihf=lib$(1)-*.so
315321
CFG_LIB_DSYM_GLOB_arm-unknown-linux-gnueabihf=lib$(1)-*.dylib.dSYM
322+
CFG_CFLAGS_arm-unknown-linux-gnueabihf := -D__arm__
316323
CFG_GCCISH_CFLAGS_arm-unknown-linux-gnueabihf := -Wall -g -fPIC -D__arm__
317324
CFG_GCCISH_CXXFLAGS_arm-unknown-linux-gnueabihf := -fno-rtti
318325
CFG_GCCISH_LINK_FLAGS_arm-unknown-linux-gnueabihf := -shared -fPIC -g
@@ -343,6 +350,7 @@ CFG_LIB_NAME_arm-unknown-linux-gnueabi=lib$(1).so
343350
CFG_STATIC_LIB_NAME_arm-unknown-linux-gnueabi=lib$(1).a
344351
CFG_LIB_GLOB_arm-unknown-linux-gnueabi=lib$(1)-*.so
345352
CFG_LIB_DSYM_GLOB_arm-unknown-linux-gnueabi=lib$(1)-*.dylib.dSYM
353+
CFG_CFLAGS_arm-unknown-linux-gnueabi := -D__arm__ -mfpu=vfp
346354
CFG_GCCISH_CFLAGS_arm-unknown-linux-gnueabi := -Wall -g -fPIC -D__arm__ -mfpu=vfp
347355
CFG_GCCISH_CXXFLAGS_arm-unknown-linux-gnueabi := -fno-rtti
348356
CFG_GCCISH_LINK_FLAGS_arm-unknown-linux-gnueabi := -shared -fPIC -g
@@ -372,6 +380,7 @@ CFG_LIB_NAME_mips-unknown-linux-gnu=lib$(1).so
372380
CFG_STATIC_LIB_NAME_mips-unknown-linux-gnu=lib$(1).a
373381
CFG_LIB_GLOB_mips-unknown-linux-gnu=lib$(1)-*.so
374382
CFG_LIB_DSYM_GLOB_mips-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
383+
CFG_CFLAGS_mips-unknown-linux-gnu := -mips32r2 -msoft-float -mabi=32 -mno-compact-eh
375384
CFG_GCCISH_CFLAGS_mips-unknown-linux-gnu := -Wall -g -fPIC -mips32r2 -msoft-float -mabi=32 -mno-compact-eh
376385
CFG_GCCISH_CXXFLAGS_mips-unknown-linux-gnu := -fno-rtti
377386
CFG_GCCISH_LINK_FLAGS_mips-unknown-linux-gnu := -shared -fPIC -g -mips32r2 -msoft-float -mabi=32
@@ -400,6 +409,7 @@ CFG_LIB_NAME_i686-pc-mingw32=$(1).dll
400409
CFG_STATIC_LIB_NAME_i686-pc-mingw32=$(1).lib
401410
CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll
402411
CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM
412+
CFG_CFLAGS_mips-i686-pc-mingw32 := -m32 -march=i686 -D_WIN32_WINNT=0x0600
403413
CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600 -I$(CFG_SRC_DIR)src/etc/mingw-fix-include
404414
CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti
405415
CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g -m32
@@ -428,6 +438,7 @@ CFG_LIB_NAME_i586-mingw32msvc=$(1).dll
428438
CFG_STATIC_LIB_NAME_i586-mingw32msvc=$(1).lib
429439
CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll
430440
CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM
441+
CFG_CFLAGS_i586-mingw32msvc := -march=i586 -m32
431442
CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=i586 -m32
432443
CFG_GCCISH_CXXFLAGS_i586-mingw32msvc := -fno-rtti
433444
CFG_GCCISH_LINK_FLAGS_i586-mingw32msvc := -shared -g -m32
@@ -458,6 +469,7 @@ CFG_LIB_NAME_i686-w64-mingw32=$(1).dll
458469
CFG_STATIC_LIB_NAME_i686-w64-mingw32=$(1).lib
459470
CFG_LIB_GLOB_i686-w64-mingw32=$(1)-*.dll
460471
CFG_LIB_DSYM_GLOB_i686-w64-mingw32=$(1)-*.dylib.dSYM
472+
CFG_CFLAGS_i586-w64-mingw32 := -march=i586 -m32 -D_WIN32_WINNT=0x0600
461473
CFG_GCCISH_CFLAGS_i686-w64-mingw32 := -Wall -Werror -g -m32 -D_WIN32_WINNT=0x0600
462474
CFG_GCCISH_CXXFLAGS_i686-w64-mingw32 := -fno-rtti
463475
CFG_GCCISH_LINK_FLAGS_i686-w64-mingw32 := -shared -g -m32
@@ -487,6 +499,7 @@ CFG_LIB_NAME_x86_64-w64-mingw32=$(1).dll
487499
CFG_STATIC_LIB_NAME_x86_64-w64-mingw32=$(1).lib
488500
CFG_LIB_GLOB_x86_64-w64-mingw32=$(1)-*.dll
489501
CFG_LIB_DSYM_GLOB_x86_64-w64-mingw32=$(1)-*.dylib.dSYM
502+
CFG_CFLAGS_x86_64-w64-mingw32 := -m64 -D_WIN32_WINNT=0x0600
490503
CFG_GCCISH_CFLAGS_x86_64-w64-mingw32 := -Wall -Werror -g -m64 -D_WIN32_WINNT=0x0600
491504
CFG_GCCISH_CXXFLAGS_x86_64-w64-mingw32 := -fno-rtti
492505
CFG_GCCISH_LINK_FLAGS_x86_64-w64-mingw32 := -shared -g -m64
@@ -515,6 +528,7 @@ CFG_LIB_NAME_x86_64-unknown-freebsd=lib$(1).so
515528
CFG_STATIC_LIB_NAME_x86_64-unknown-freebsd=lib$(1).a
516529
CFG_LIB_GLOB_x86_64-unknown-freebsd=lib$(1)-*.so
517530
CFG_LIB_DSYM_GLOB_x86_64-unknown-freebsd=$(1)-*.dylib.dSYM
531+
CFG_CFLAGS_x86_64-unknown-freebsd := -I/usr/local/include
518532
CFG_GCCISH_CFLAGS_x86_64-unknown-freebsd := -Wall -Werror -g -fPIC -I/usr/local/include
519533
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-freebsd := -shared -fPIC -g -pthread -lrt
520534
CFG_GCCISH_DEF_FLAG_x86_64-unknown-freebsd := -Wl,--export-dynamic,--dynamic-list=

branches/try2/mk/rt.mk

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,13 @@ $(foreach lib,$(NATIVE_LIBS), \
122122
################################################################################
123123
# Building third-party targets with external build systems
124124
#
125-
# The only current member of this section is libuv, but long ago this used to
126-
# also be occupied by jemalloc. This location is meant for dependencies which
127-
# have external build systems. It is still assumed that the output of each of
128-
# these steps is a static library in the correct location.
125+
# This location is meant for dependencies which have external build systems. It
126+
# is still assumed that the output of each of these steps is a static library
127+
# in the correct location.
128+
################################################################################
129+
130+
################################################################################
131+
# libuv
129132
################################################################################
130133

131134
define DEF_LIBUV_ARCH_VAR
@@ -154,13 +157,19 @@ define DEF_THIRD_PARTY_TARGETS
154157

155158
ifeq ($$(CFG_WINDOWSY_$(1)), 1)
156159
LIBUV_OSTYPE_$(1) := win
160+
# This isn't necessarily a desired option, but it's harmless and works around
161+
# what appears to be a mingw-w64 bug.
162+
#
163+
# https://sourceforge.net/p/mingw-w64/bugs/395/
164+
JEMALLOC_ARGS_$(1) := --enable-lazy-lock
157165
else ifeq ($(OSTYPE_$(1)), apple-darwin)
158166
LIBUV_OSTYPE_$(1) := mac
159167
else ifeq ($(OSTYPE_$(1)), unknown-freebsd)
160168
LIBUV_OSTYPE_$(1) := freebsd
161169
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
162170
LIBUV_OSTYPE_$(1) := android
163171
LIBUV_ARGS_$(1) := PLATFORM=android host=android OS=linux
172+
JEMALLOC_ARGS_$(1) := --disable-tls
164173
else
165174
LIBUV_OSTYPE_$(1) := linux
166175
endif
@@ -220,6 +229,41 @@ $$(LIBUV_DIR_$(1))/Release/libuv.a: $$(LIBUV_DEPS) $$(LIBUV_MAKEFILE_$(1)) \
220229

221230
endif
222231

232+
################################################################################
233+
# jemalloc
234+
################################################################################
235+
236+
ifdef CFG_ENABLE_FAST_MAKE
237+
JEMALLOC_DEPS := $(S)/.gitmodules
238+
else
239+
JEMALLOC_DEPS := $(wildcard \
240+
$(S)src/jemalloc/* \
241+
$(S)src/jemalloc/*/* \
242+
$(S)src/jemalloc/*/*/* \
243+
$(S)src/jemalloc/*/*/*/*)
244+
endif
245+
246+
JEMALLOC_NAME_$(1) := $$(call CFG_STATIC_LIB_NAME_$(1),jemalloc)
247+
ifeq ($$(CFG_WINDOWSY_$(1)),1)
248+
JEMALLOC_REAL_NAME_$(1) := $$(call CFG_STATIC_LIB_NAME_$(1),jemalloc_s)
249+
else
250+
JEMALLOC_REAL_NAME_$(1) := $$(call CFG_STATIC_LIB_NAME_$(1),jemalloc_pic)
251+
endif
252+
JEMALLOC_LIB_$(1) := $$(RT_OUTPUT_DIR_$(1))/$$(JEMALLOC_NAME_$(1))
253+
JEMALLOC_BUILD_DIR_$(1) := $$(RT_OUTPUT_DIR_$(1))/jemalloc
254+
255+
$$(JEMALLOC_LIB_$(1)): $$(JEMALLOC_DEPS) $$(MKFILE_DEPS)
256+
@$$(call E, make: jemalloc)
257+
cd "$$(JEMALLOC_BUILD_DIR_$(1))"; "$(S)src/jemalloc/configure" \
258+
$$(JEMALLOC_ARGS_$(1)) --enable-cc-silence --with-jemalloc-prefix=je_ \
259+
--disable-experimental --build=$(CFG_BUILD) --host=$(1) \
260+
CC="$$(CC_$(1))" \
261+
AR="$$(AR_$(1))" \
262+
RANLIB="$$(AR_$(1)) s" \
263+
EXTRA_CFLAGS="$$(CFG_CFLAGS_$(1))"
264+
$$(Q)$$(MAKE) -C "$$(JEMALLOC_BUILD_DIR_$(1))" build_lib_static
265+
$$(Q)cp $$(JEMALLOC_BUILD_DIR_$(1))/lib/$$(JEMALLOC_REAL_NAME_$(1)) $$(JEMALLOC_LIB_$(1))
266+
223267
################################################################################
224268
# compiler-rt
225269
################################################################################

branches/try2/mk/tests.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ ALL_HS := $(filter-out $(S)src/rt/vg/valgrind.h \
240240
tidy:
241241
@$(call E, check: formatting)
242242
$(Q)find $(S)src -name '*.r[sc]' \
243+
| grep '^$(S)src/jemalloc' -v \
243244
| grep '^$(S)src/libuv' -v \
244245
| grep '^$(S)src/llvm' -v \
245246
| grep '^$(S)src/gyp' -v \
@@ -264,8 +265,9 @@ tidy:
264265
$(Q)find $(S)src -type f -perm +111 \
265266
-not -name '*.rs' -and -not -name '*.py' \
266267
-and -not -name '*.sh' \
267-
| grep '^$(S)src/llvm' -v \
268+
| grep '^$(S)src/jemalloc' -v \
268269
| grep '^$(S)src/libuv' -v \
270+
| grep '^$(S)src/llvm' -v \
269271
| grep '^$(S)src/rt/hoedown' -v \
270272
| grep '^$(S)src/gyp' -v \
271273
| grep '^$(S)src/etc' -v \

branches/try2/src/doc/guide-unsafe.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ restrictions is undefined behaviour. For example, the following
6666
creates two aliasing `&mut` pointers, and is invalid.
6767

6868
```
69-
use std::cast;
69+
use std::mem;
7070
let mut x: u8 = 1;
7171
7272
let ref_1: &mut u8 = &mut x;
73-
let ref_2: &mut u8 = unsafe { cast::transmute_mut_lifetime(ref_1) };
73+
let ref_2: &mut u8 = unsafe { mem::transmute(&mut *ref_1) };
7474
7575
// oops, ref_1 and ref_2 point to the same piece of data (x) and are
7676
// both usable

branches/try2/src/doc/rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1402,7 +1402,7 @@ to pointers to the trait name, used as a type.
14021402
let myshape: Box<Shape> = box mycircle as Box<Shape>;
14031403
~~~~
14041404

1405-
The resulting value is a managed box containing the value that was cast,
1405+
The resulting value is a box containing the value that was cast,
14061406
along with information that identifies the methods of the implementation that was used.
14071407
Values with a trait type can have [methods called](#method-call-expressions) on them,
14081408
for any method in the trait,

branches/try2/src/jemalloc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 6a96910f2eaea6d2c705bb12379b23576b30d7d5

0 commit comments

Comments
 (0)