Brendan Eich <brendan@mozilla.org>
Brian Anderson <banderson@mozilla.com>
Brian J. Burg <burg@cs.washington.edu>
+ Brian Leibig <brian.leibig@gmail.com>
Chris Double <chris.double@double.co.nz>
Chris Peterson <cpeterson@mozilla.com>
Damian Gryski <damian@gryski.com>
Erik Rose <erik@mozilla.com>
Evan McClanahan <evan@evanmcc.com>
Francisco Souza <f@souza.cc>
+Gabriel <g2p.code@gmail.com>
Gareth Daniel Smith <garethdanielsmith@gmail.com>
Glenn Willen <gwillen@nerdnet.org>
Gonçalo Cabrita <_@gmcabrita.com>
Lennart Kudling
Lindsey Kuper <lindsey@rockstargirl.org>
Luca Bruno <lucab@debian.org>
+Luqman Aden <laden@csclub.uwaterloo.ca>
Magnus Auvinen <magnus.auvinen@gmail.com>
+Mahmut Bulut <mahmutbulut0@gmail.com>
Margaret Meyerhofer <mmeyerho@andrew.cmu.edu>
Marijn Haverbeke <marijnh@gmail.com>
Matt Brubeck <mbrubeck@limpet.net>
Roy Frostig <rfrostig@mozilla.com>
Ryan Scheel <ryan.havvy@gmail.com>
Sean Stangl <sstangl@mozilla.com>
+Simon BD
startling <tdixon51793@gmail.com>
Stefan Plantikow <stefan.plantikow@googlemail.com>
Taras Shpot <mrshpot@gmail.com>
Tom Lee <github@tomlee.co>
Tomoki Aonuma <uasi@99cm.org>
Tycho Sci <tychosci@gmail.com>
+Viktor Dahl <pazaconyoman@gmail.com>
Vincent Belliard <vincent@famillebelliard.fr>
Wade Mealing <wmealing@gmail.com>
Yasuhiro Fujii <y-fujii@mimosa-pudica.net>
CFG_STDLIB :=$(call CFG_LIB_NAME,std)
CFG_LIBRUSTC :=$(call CFG_LIB_NAME,rustc)
CFG_LIBSYNTAX :=$(call CFG_LIB_NAME,syntax)
+CFG_LIBFUZZER :=$(call CFG_LIB_NAME,fuzzer)
+CFG_LIBCARGO :=$(call CFG_LIB_NAME,cargo)
+CFG_LIBRUSTDOC :=$(call CFG_LIB_NAME,rustdoc)
STDLIB_GLOB :=$(call CFG_LIB_GLOB,std)
CORELIB_GLOB :=$(call CFG_LIB_GLOB,core)
LIBRUSTC_GLOB :=$(call CFG_LIB_GLOB,rustc)
LIBSYNTAX_GLOB :=$(call CFG_LIB_GLOB,syntax)
+LIBFUZZER_GLOB :=$(call CFG_LIB_GLOB,fuzzer)
+LIBCARGO_GLOB :=$(call CFG_LIB_GLOB,cargo)
+LIBRUSTDOC_GLOB :=$(call CFG_LIB_GLOB,rustdoc)
STDLIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,std)
CORELIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,core)
LIBRUSTC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustc)
LIBSYNTAX_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,syntax)
+LIBFUZZER_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,fuzzer)
+LIBCARGO_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,cargo)
+LIBRUSTDOC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustdoc)
# version-string calculation
CFG_GIT_DIR := $(CFG_SRC_DIR).git
-CFG_RELEASE = 0.4
+CFG_RELEASE = 0.5
CFG_VERSION = $(CFG_RELEASE)
ifneq ($(wildcard $(CFG_GIT)),)
endif
endif
-ifdef CFG_DISABLE_VALGRIND
- $(info cfg: disabling valgrind (CFG_DISABLE_VALGRIND))
+ifdef CFG_ENABLE_VALGRIND
+ $(info cfg: enabling valgrind (CFG_ENABLE_VALGRIND))
+else
CFG_VALGRIND :=
endif
ifdef CFG_BAD_VALGRIND
FUZZ := $(HBIN2_H_$(CFG_HOST_TRIPLE))/fuzzer$(X)
CARGO := $(HBIN2_H_$(CFG_HOST_TRIPLE))/cargo$(X)
RUSTDOC := $(HBIN2_H_$(CFG_HOST_TRIPLE))/rustdoc$(X)
+ RUSTI := $(HBIN2_H_$(CFG_HOST_TRIPLE))/rusti$(X)
- all: rustc $(GENERATED) docs $(FUZZ) $(CARGO) $(RUSTDOC)
+ all: rustc $(GENERATED) docs $(FUZZ) $(CARGO) $(RUSTDOC) $(RUSTI)
endif
need_cmd mkdir
need_cmd printf
need_cmd cut
+need_cmd head
need_cmd grep
need_cmd xargs
need_cmd cp
err "unknown CPU type: $CFG_CPUTYPE"
esac
+# Detect 64 bit linux systems with 32 bit userland and force 32 bit compilation
+if [ $CFG_OSTYPE = unknown-linux-gnu -a $CFG_CPUTYPE = x86_64 ]
+then
+ file -L "$SHELL" | grep -q "x86[_-]64"
+ if [ $? != 0 ]; then
+ CFG_CPUTYPE=i686
+ fi
+fi
+
+
DEFAULT_HOST_TRIPLE="${CFG_CPUTYPE}-${CFG_OSTYPE}"
CFG_SRC_DIR="$(cd $(dirname $0) && pwd)/"
fi
opt sharedstd 1 "build libstd as a shared library"
-opt valgrind 1 "run tests with valgrind (memcheck by default)"
+opt valgrind 0 "run tests with valgrind (memcheck by default)"
opt helgrind 0 "run tests with helgrind instead of memcheck"
opt docs 1 "build documentation"
opt optimize 1 "build optimized rust code"
if [ ! -z "$CFG_PANDOC" ]
then
- PV=$(pandoc --version | awk '/^pandoc/ {print $2}')
- if [ "$PV" \< "1.8" ]
+ PANDOC_VER_LINE=$(pandoc --version | grep '^pandoc ')
+ PANDOC_VER=${PANDOC_VER_LINE#pandoc }
+ PV_MAJOR_MINOR=${PANDOC_VER%.[0-9]*}
+ PV_MAJOR=${PV_MAJOR_MINOR%%[.][0-9]*}
+ PV_MINOR=${PV_MAJOR_MINOR#[0-9]*[.]}
+ PV_MINOR=${PV_MINOR%%[.][0-9]*}
+ if [ "$PV_MAJOR" -lt "1" ] || [ "$PV_MINOR" -lt "8" ]
then
- step_msg "pandoc $PV is too old. disabling"
- BAD_PANDOC=1
+ step_msg "pandoc $PV_MAJOR.$PV_MINOR is too old. disabling"
+ BAD_PANDOC=1
fi
fi
do
make_dir rt/$t
for i in \
- isaac bigint sync test arch/i386 arch/x86_64 \
+ isaac linenoise bigint sync test arch/i386 arch/x86_64 \
libuv libuv/src/ares libuv/src/eio libuv/src/ev
do
make_dir rt/$t/$i
need_ok "git failed"
msg "git: submodule foreach sync"
- "${CFG_GIT}" submodule --quiet foreach --recursive git submodule sync
+ "${CFG_GIT}" submodule --quiet foreach --recursive 'if test -e .gitmodules; then git submodule sync; fi'
need_ok "git failed"
msg "git: submodule foreach update"
$(Q)mkdir -p $(PREFIX_LIB)
$(Q)mkdir -p $(PREFIX_ROOT)/share/man/man1
$(Q)$(call INSTALL,$(HB2),$(PHB),rustc$(X))
+ $(Q)$(call INSTALL,$(HB2),$(PHB),fuzzer$(X))
+ $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBFUZZER))
$(Q)$(call INSTALL,$(HB2),$(PHB),cargo$(X))
+ $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBCARGO))
+ $(Q)$(call INSTALL,$(HB2),$(PHB),rusti$(X))
$(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X))
+ $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUSTDOC))
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUNTIME))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(CORELIB_GLOB))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(STDLIB_GLOB))
uninstall:
$(Q)rm -f $(PHB)/rustc$(X)
$(Q)rm -f $(PHB)/cargo$(X)
+ $(Q)rm -f $(PHB)/rusti$(X)
$(Q)rm -f $(PHB)/rustdoc$(X)
$(Q)rm -f $(PHL)/$(CFG_RUSTLLVM)
+ $(Q)rm -f $(PHL)/$(CFG_FUZZER)
+ $(Q)rm -f $(PHL)/$(CFG_CARGO)
+ $(Q)rm -f $(PHL)/$(CFG_RUSTDOC)
$(Q)rm -f $(PHL)/$(CFG_RUNTIME)
$(Q)for i in \
$(call HOST_LIB_FROM_HL_GLOB,$(CORELIB_GLOB)) \
# Runtime (C++) library variables
######################################################################
- RUNTIME_CS_$(1) := \
+ RUNTIME_CXXS_$(1) := \
rt/sync/timer.cpp \
rt/sync/lock_and_signal.cpp \
rt/sync/rust_thread.cpp \
rt/rust_shape.cpp \
rt/rust_abi.cpp \
rt/rust_debug.cpp \
- rt/rust_box_annihilator.cpp \
rt/memory_region.cpp \
rt/boxed_region.cpp \
rt/arch/$$(HOST_$(1))/context.cpp \
rt/arch/$$(HOST_$(1))/gpr.cpp
+ RUNTIME_CS_$(1) := rt/linenoise/linenoise.c rt/linenoise/utf8.c
+
RUNTIME_S_$(1) := rt/arch/$$(HOST_$(1))/_context.S \
rt/arch/$$(HOST_$(1))/ccall.S \
rt/arch/$$(HOST_$(1))/record_sp.S
RUNTIME_DEF_$(1) := rt/rustrt$$(CFG_DEF_SUFFIX)
RUNTIME_INCS_$(1) := -I $$(S)src/rt -I $$(S)src/rt/isaac -I $$(S)src/rt/uthash \
- -I $$(S)src/rt/arch/$$(HOST_$(1)) \
- -I $$(S)src/libuv/include
- RUNTIME_OBJS_$(1) := $$(RUNTIME_CS_$(1):rt/%.cpp=rt/$(1)/%.o) \
+ -I $$(S)src/rt/arch/$$(HOST_$(1)) \
+ -I $$(S)src/rt/linenoise \
+ -I $$(S)src/libuv/include
+ RUNTIME_OBJS_$(1) := $$(RUNTIME_CXXS_$(1):rt/%.cpp=rt/$(1)/%.o) \
+ $$(RUNTIME_CS_$(1):rt/%.c=rt/$(1)/%.o) \
$$(RUNTIME_S_$(1):rt/%.S=rt/$(1)/%.o)
ALL_OBJ_FILES += $$(RUNTIME_OBJS_$(1))
RUNTIME_LIBS_$(1) := $$(LIBUV_LIB_$(1))
rt/$(1)/%.o: rt/%.cpp $$(MKFILE_DEPS)
+ @$$(call E, compile: $$@)
+ $$(Q)$$(call CFG_COMPILE_CXX_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
+ $$(SNAP_DEFINES)) $$<
+
+ rt/$(1)/%.o: rt/%.c $$(MKFILE_DEPS)
@$$(call E, compile: $$@)
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
$$(SNAP_DEFINES)) $$<
$$(RUNTIME_DEF_$(1)) \
$$(RUNTIME_LIBS_$(1))
@$$(call E, link: $$@)
- $$(Q)$$(call CFG_LINK_C_$(1),$$@, $$(RUNTIME_OBJS_$(1)) \
+ $$(Q)$$(call CFG_LINK_CXX_$(1),$$@, $$(RUNTIME_OBJS_$(1)) \
$$(CFG_GCCISH_POST_LIB_FLAGS) $$(RUNTIME_LIBS_$(1)) \
$$(CFG_LIBUV_LINK_FLAGS),$$(RUNTIME_DEF_$(1)),$$(CFG_RUNTIME))
| xargs rm -rf
check: cleantestlibs cleantmptestlogs tidy all check-stage2
- $(Q)$(S)src/etc/check-summary.py tmp/*.log
+ $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
check-notidy: cleantestlibs cleantmptestlogs all check-stage2
- $(Q)$(S)src/etc/check-summary.py tmp/*.log
+ $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
check-full: cleantestlibs cleantmptestlogs tidy \
all check-stage1 check-stage2 check-stage3
- $(Q)$(S)src/etc/check-summary.py tmp/*.log
+ $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
check-test: cleantestlibs cleantmptestlogs all check-stage2-rfail
- $(Q)$(S)src/etc/check-summary.py tmp/*.log
+ $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
check-lite: cleantestlibs cleantmptestlogs rustc-stage2 \
check-stage2-core check-stage2-std check-stage2-rpass \
check-stage2-rfail check-stage2-cfail
- $(Q)$(S)src/etc/check-summary.py tmp/*.log
+ $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
# Run the tidy script in multiple parts to avoid huge 'echo' commands
ifdef CFG_NOTIDY
ALL_CS := $(filter-out $(S)src/rt/bigint/bigint_ext.cpp \
$(S)src/rt/bigint/bigint_int.cpp \
$(S)src/rt/miniz.cpp \
+ $(S)src/rt/linenoise/linenoise.c \
,$(ALL_CS))
ALL_HS := $(wildcard $(S)src/rt/*.h \
$(S)src/rt/*/*.h \
$(S)src/rt/msvc/stdint.h \
$(S)src/rt/msvc/inttypes.h \
$(S)src/rt/bigint/bigint.h \
+ $(S)src/rt/linenoise/linenoise.h \
,$(ALL_HS))
tidy:
@$(call E, check: formatting)
$(Q)find $(S)src -name '*.r[sc]' \
| grep '^$(S)src/test' -v \
- | xargs -n 10 python $(S)src/etc/tidy.py
+ | xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
$(Q)find $(S)src/etc -name '*.py' \
- | xargs -n 10 python $(S)src/etc/tidy.py
+ | xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
$(Q)echo $(ALL_CS) \
- | xargs -n 10 python $(S)src/etc/tidy.py
+ | xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
$(Q)echo $(ALL_HS) \
- | xargs -n 10 python $(S)src/etc/tidy.py
+ | xargs -n 10 $(CFG_PYTHON) $(S)src/etc/tidy.py
endif
check-stage$(1)-T-$(2)-H-$(3)-bench \
check-stage$(1)-T-$(2)-H-$(3)-pretty \
check-stage$(1)-T-$(2)-H-$(3)-rustdoc \
+ check-stage$(1)-T-$(2)-H-$(3)-rusti \
check-stage$(1)-T-$(2)-H-$(3)-cargo \
check-stage$(1)-T-$(2)-H-$(3)-doc-tutorial \
check-stage$(1)-T-$(2)-H-$(3)-doc-tutorial-ffi \
check-stage$(1)-T-$(2)-H-$(3)-rustdoc: \
check-stage$(1)-T-$(2)-H-$(3)-rustdoc-dummy
+ check-stage$(1)-T-$(2)-H-$(3)-rusti: \
+ check-stage$(1)-T-$(2)-H-$(3)-rusti-dummy
+
check-stage$(1)-T-$(2)-H-$(3)-cargo: \
check-stage$(1)-T-$(2)-H-$(3)-cargo-dummy
# Rules for the rustdoc test runner
$(3)/test/rustdoctest.stage$(1)-$(2)$$(X): \
- $$(RUSTDOC_CRATE) $$(RUSTDOC_INPUTS) \
+ $$(RUSTDOC_LIB) $$(RUSTDOC_INPUTS) \
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_CORELIB) \
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB) \
$$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS) \
--logfile tmp/check-stage$(1)-T-$(2)-H-$(3)-rustdoc.log
+ # Rules for the rusti test runner
+
+ $(3)/test/rustitest.stage$(1)-$(2)$$(X): \
+ $$(RUSTI_CRATE) $$(RUSTI_INPUTS) \
+ $$(TSREQ$(1)_T_$(2)_H_$(3)) \
+ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_CORELIB) \
+ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB) \
+ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC)
+ @$$(call E, compile_and_link: $$@)
+ $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test
+
+ check-stage$(1)-T-$(2)-H-$(3)-rusti-dummy: \
+ $(3)/test/rustitest.stage$(1)-$(2)$$(X)
+ @$$(call E, run: $$<)
+ $$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS) \
+ --logfile tmp/check-stage$(1)-T-$(2)-H-$(3)-rusti.log
+
+
# Rules for the cargo test runner
$(3)/test/cargotest.stage$(1)-$(2)$$(X): \
- $$(CARGO_CRATE) $$(CARGO_INPUTS) \
+ $$(CARGO_LIB) $$(CARGO_INPUTS) \
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_CORELIB) \
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB) \
check-stage$(1)-H-$(2)-rustdoc: \
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
check-stage$(1)-T-$$(target)-H-$(2)-rustdoc)
+ check-stage$(1)-H-$(2)-rusti: \
+ $$(foreach target,$$(CFG_TARGET_TRIPLES), \
+ check-stage$(1)-T-$$(target)-H-$(2)-rusti)
check-stage$(1)-H-$(2)-cargo: \
$$(foreach target,$$(CFG_TARGET_TRIPLES), \
check-stage$(1)-T-$$(target)-H-$(2)-cargo)
# Rules for non-core tools built with the compiler, both for target
# and host architectures
-FUZZER_CRATE := $(S)src/fuzzer/fuzzer.rc
-FUZZER_INPUTS := $(wildcard $(addprefix $(S)src/fuzzer/, *.rs))
+TOOL_DRIVER := $(S)src/driver/driver.rs
+
+FUZZER_LIB := $(S)src/libfuzzer/fuzzer.rc
+FUZZER_INPUTS := $(wildcard $(addprefix $(S)src/libfuzzer/, *.rs))
# The test runner that runs the cfail/rfail/rpass and bench tests
COMPILETEST_CRATE := $(S)src/compiletest/compiletest.rc
COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*rs)
# Cargo, the package manager
-CARGO_CRATE := $(S)src/cargo/cargo.rc
+CARGO_LIB := $(S)src/libcargo/cargo.rc
CARGO_INPUTS := $(wildcard $(S)src/cargo/*rs)
# Rustdoc, the documentation tool
-RUSTDOC_CRATE := $(S)src/rustdoc/rustdoc.rc
+RUSTDOC_LIB := $(S)src/librustdoc/rustdoc.rc
RUSTDOC_INPUTS := $(wildcard $(S)src/rustdoc/*.rs)
+ # Rusti, the JIT REPL
+ RUSTI_CRATE := $(S)src/rusti/rusti.rc
+ RUSTI_INPUTS := $(wildcard $(S)src/rusti/*.rs)
+
# FIXME: These are only built for the host arch. Eventually we'll
# have tools that need to built for other targets.
define TOOLS_STAGE_N
-$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X): \
- $$(FUZZER_CRATE) $$(FUZZER_INPUTS) \
+$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBFUZZER): \
+ $$(FUZZER_LIB) $$(FUZZER_INPUTS) \
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
@$$(call E, compile_and_link: $$@)
- $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
+ $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@
+
+$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X): \
+ $$(TOOL_DRIVER) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBFUZZER)
+ @$$(call E, compile_and_link: $$@)
+ $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg fuzzer -o $$@ $$<
# Promote the stageN target to stageN+1 host
# FIXME: Shouldn't need to depend on host/librustc.so once
# rpath is working
+$$(HLIB$(2)_H_$(4))/$$(CFG_LIBFUZZER): \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBFUZZER) \
+ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC) \
+ $$(HSREQ$(2)_H_$(4))
+ @$$(call E, cp: $$@)
+ $$(Q)cp $$< $$@
+
$$(HBIN$(2)_H_$(4))/fuzzer$$(X): \
$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X) \
- $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC) \
+ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBFUZZER) \
$$(HSREQ$(2)_H_$(4))
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
-$$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X): \
- $$(CARGO_CRATE) $$(CARGO_INPUTS) \
+$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBCARGO): \
+ $$(CARGO_LIB) $$(CARGO_INPUTS) \
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
- $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
- $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
@$$(call E, compile_and_link: $$@)
- $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
+ $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@
+
+$$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X): \
+ $$(TOOL_DRIVER) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBCARGO)
+ @$$(call E, compile_and_link: $$@)
+ $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg cargo -o $$@ $$<
+
+$$(HLIB$(2)_H_$(4))/$$(CFG_LIBCARGO): \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBCARGO) \
+ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC) \
+ $$(HSREQ$(2)_H_$(4))
+ @$$(call E, cp: $$@)
+ $$(Q)cp $$< $$@
$$(HBIN$(2)_H_$(4))/cargo$$(X): \
$$(TBIN$(1)_T_$(4)_H_$(3))/cargo$$(X) \
+ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBCARGO) \
$$(HSREQ$(2)_H_$(4))
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
-$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X): \
- $$(RUSTDOC_CRATE) $$(RUSTDOC_INPUTS) \
+$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTDOC): \
+ $$(RUSTDOC_LIB) $$(RUSTDOC_INPUTS) \
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
- $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
- $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
@$$(call E, compile_and_link: $$@)
- $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
+ $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@
+
+$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X): \
+ $$(TOOL_DRIVER) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTDOC)
+ @$$(call E, compile_and_link: $$@)
+ $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rustdoc -o $$@ $$<
+
+$$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTDOC): \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTDOC) \
+ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC) \
+ $$(HSREQ$(2)_H_$(4))
+ @$$(call E, cp: $$@)
+ $$(Q)cp $$< $$@
$$(HBIN$(2)_H_$(4))/rustdoc$$(X): \
$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X) \
+ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTDOC) \
$$(HSREQ$(2)_H_$(4))
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
+ $$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X): \
+ $$(RUSTI_CRATE) $$(RUSTI_INPUTS) \
+ $$(TSREQ$(1)_T_$(4)_H_$(3)) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
+ @$$(call E, compile_and_link: $$@)
+ $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
+
+ $$(HBIN$(2)_H_$(4))/rusti$$(X): \
+ $$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X) \
+ $$(HSREQ$(2)_H_$(4))
+ @$$(call E, cp: $$@)
+ $$(Q)cp $$< $$@
+
endef
$(foreach host,$(CFG_TARGET_TRIPLES), \
*/
#[link(name = "std",
- vers = "0.4",
+ vers = "0.5",
uuid = "122bed0b-c19b-4b82-b0b7-7ae8aead7297",
url = "https://github.com/mozilla/rust/tree/master/src/libstd")];
#[allow(deprecated_mode)];
#[forbid(deprecated_pattern)];
-extern mod core(vers = "0.4");
+extern mod core(vers = "0.5");
use core::*;
// General io and system-services modules
pub mod sync;
pub mod arc;
pub mod comm;
+pub mod future;
// Collections
pub mod par;
pub mod cmp;
pub mod base64;
+ pub mod rl;
#[cfg(unicode)]
mod unicode;
upcall_log_type
upcall_malloc
upcall_rust_personality
-upcall_str_new_uniq
-upcall_str_new_shared
upcall_call_shim_on_c_stack
upcall_call_shim_on_rust_stack
upcall_new_stack
rust_dbg_breakpoint
rust_osmain_sched_id
rust_compare_and_swap_ptr
-rust_atomic_increment
-rust_atomic_decrement
rust_global_env_chan_ptr
rust_port_take
rust_port_drop
rust_call_tydesc_glue
tdefl_compress_mem_to_heap
tinfl_decompress_mem_to_heap
-rust_annihilate_box
rust_gc_metadata
+rust_uv_ip4_port
+rust_uv_ip6_port
+rust_uv_tcp_getpeername
+rust_uv_tcp_getpeername6
+ linenoise
+ linenoiseSetCompletionCallback
+ linenoiseAddCompletion
+ linenoiseHistoryAdd
+ linenoiseHistorySetMaxLen
+ linenoiseHistorySave
+ linenoiseHistoryLoad