Commit Graph

475 Commits

Author SHA1 Message Date
Patrick Walton 68aff2ad6d rt: More work on morestack 2011-11-16 18:00:57 -08:00
Niko Matsakis 938b23e228 fix prereqs 2011-11-16 15:27:09 -08:00
Niko Matsakis 9ccd84a9cd fix prereqs 2011-11-16 15:16:43 -08:00
Niko Matsakis 5502354f33 correct (I think) prereqs 2011-11-16 15:16:42 -08:00
Niko Matsakis 4183023357 correct pre-reqs 2011-11-16 15:16:42 -08:00
Niko Matsakis c997a353aa make check-stage2-perf target work again, along with rustc, std 2011-11-16 15:16:41 -08:00
Niko Matsakis 36ab948bfa make it so that tests can be run on different target arch 2011-11-16 15:16:40 -08:00
Patrick Walton b3cf0c4d1b Revert "rt: More work on morestack"
This reverts commit ced0d4f15e.
2011-11-14 16:20:53 -08:00
Patrick Walton ced0d4f15e rt: More work on morestack 2011-11-14 16:17:08 -08:00
Brian Anderson 453168d917 build: Fix 'make perf'. Closes #1151 2011-11-13 16:51:38 -08:00
Brian Anderson 5d1e321ecb rt: Remove rust_chan 2011-11-11 12:11:21 -08:00
Brian Anderson f705f68121 rt: Remove rust_aio.cpp. Bitrotted. 2011-11-10 18:02:08 -08:00
Brian Anderson 12f2b4989e Improve make clean rules for libuv 2011-11-10 13:42:02 -08:00
Niko Matsakis ff5b319ce5 correct stack alignment 2011-11-08 21:14:09 -08:00
Niko Matsakis a8c0c2b871 make clean delete all .o files from rt directory 2011-11-08 21:14:09 -08:00
Erick Tryzelaar ab265586eb Re-add libuv as a submodule. 2011-11-08 19:01:47 -08:00
Brian Anderson 8857657640 Rename rust_uv.cpp to rust_aio.cpp 2011-11-07 19:35:39 -08:00
Brian Anderson fdeb5ba304 Upgrade libuv to f1859eb841be2fe48512bc10e64556383f408b01 2011-11-07 19:24:25 -08:00
Brian Anderson e7afe11a2a Build LLVM with -fno-omit-frame-pointer on Linux 2011-11-05 13:23:11 -07:00
Brian Anderson 814c3d0d76 Add clean-all rule which also cleans LLVM 2011-11-05 13:23:11 -07:00
Brian Anderson 8ea6d0c5d2 Use $(MAKE) for recursive make 2011-11-05 13:23:11 -07:00
Brian Anderson 4b6585c924 Parameterize the LLVM build over the target triples 2011-11-05 13:23:11 -07:00
Brian Anderson a4e1a438f6 Cleanup LLVM build rules after rebase onto x64 changes 2011-11-05 13:23:11 -07:00
Brian Anderson a0ff3db258 LLVM build cleanup 2011-11-05 13:23:11 -07:00
Brian Anderson e47f410536 Use LLVM directly from the build directory
This will cut out the few seconds it takes to run make install.
2011-11-05 13:23:10 -07:00
Brian Anderson 26bb6716ef Tie the LLVM build into ours 2011-11-05 13:23:10 -07:00
Brian Anderson f96f1692ef Add mk/llvm.mk 2011-11-05 13:23:10 -07:00
Elly Jones 39e0009190 docs: work around texi2dvi bug. (#1134) 2011-11-05 13:18:23 -07:00
Elly Jones 230b279b82 install.mk: make man1 directory 2011-11-04 19:53:23 -04:00
Brian Anderson af1ce1f3de Remove an old, temporary build rule 2011-11-03 12:22:41 -07:00
Brian Anderson 9435459e89 Make the formatting of the host build message consistent 2011-11-03 11:26:52 -07:00
Brian Anderson 558ca9b4a8 Escape $ when building linux def files 2011-11-02 14:24:15 -07:00
Niko Matsakis 1db9af1bf2 rerun the gyp-uv tool 2011-11-02 14:14:20 -07:00
Niko Matsakis 305cecee4f pass proper options to libuv make 2011-11-02 14:14:20 -07:00
Niko Matsakis 2bfa72ea42 virtualize rustllvm construction per target triple 2011-11-02 14:14:20 -07:00
Niko Matsakis 54af489e6f virtualize the runtime per target triple. 2011-11-02 14:14:20 -07:00
Niko Matsakis e8e2f3395d Fix build on windows 2011-11-02 14:14:20 -07:00
Niko Matsakis 3f4fd29db8 fix failed merge 2011-11-02 14:14:20 -07:00
Niko Matsakis d0887996e5 get the dependencies right so that all target archs are built 2011-11-02 14:13:22 -07:00
Niko Matsakis 93781297bf enable building with different target arch 2011-11-02 14:13:22 -07:00
Niko Matsakis f05761ddb3 enable intrinsics for multiple arch 2011-11-02 14:13:22 -07:00
Niko Matsakis f0c1f999ac arch is ia32 in libuv, annoyingly. this should be changed. 2011-11-02 14:13:22 -07:00
Niko Matsakis 20946e6970 start going back to an i386 build 2011-11-02 14:13:22 -07:00
Niko Matsakis 8011e3fabb hack around on makefiles trying to get a 64 bit build
right now there are many temporary hacks, search for NDM to find them
2011-11-02 14:13:22 -07:00
Brian Anderson 93035722a4 Remove temporary build rules 2011-10-31 15:19:03 -07:00
Brian Anderson 86459b3517 Add some transitional build rules for moving libstd.so to libruststd.so 2011-10-31 14:43:43 -07:00
Patrick Walton c9003d301f Stub a __morestack implementation and stack segment allocation. Untested. 2011-10-31 14:20:56 -07:00
Brian Anderson 799ba7b122 Split 'make tidy' into multiple commands
The echo command line seems to be getting too large
2011-10-31 12:57:50 -07:00
Brian Anderson 0b331e5934 Add a make docs target 2011-10-27 15:02:32 -07:00
Brian Anderson 1b75e5c315 Use web-style paragraphs in std docs 2011-10-26 11:55:28 -07:00
Brian Anderson d611067d7f Add more comments to install.mk 2011-10-25 21:18:22 -07:00
Brian Anderson 28051a8e3d Install man page for rustc 2011-10-25 21:17:57 -07:00
Brian Anderson 7ae757583a Begin documenting std and add doc generation using naturaldocs
Naturaldocs isn't really that great but it seems easier to get
something working than with doxygen, for which we would need to
convert rust code to something C++ish. We probably want to just
write a rustdoc utility at some point.
2011-10-25 18:01:52 -07:00
Brian Anderson 8c4e192d91 Add commentary about -znoexecstack 2011-10-23 19:07:55 -07:00
Austin Seipp 7a8e12ca6d Make sure librustrt.so is linked with a non-executable stack.
Fixes #798.
2011-10-23 19:05:23 -07:00
Brian Anderson bdbeb75bfb Upgrade libuv to 179f475b2ad64729feb0422f06ce133cb364482a 2011-10-22 17:37:18 -07:00
Brian Anderson 160c56e768 Get 'make tidy' to work rustllvm and rt again 2011-10-21 17:35:52 -07:00
Brian Anderson ff813f84a8 Run perf on the stage 2 compiler 2011-10-20 22:40:21 -07:00
Marijn Haverbeke ba1c6fcf38 Remove the last vestiges of main.ll
Closes #992
2011-10-20 17:36:28 +02:00
Marijn Haverbeke 243c5c3479 Use snap runtime, and the old main.o, for stage1
This is intended to be reverted again after I register the next
snapshot.
2011-10-20 13:14:28 +02:00
Niko Matsakis 86735c0d7d make ctags targets phony 2011-10-18 10:37:27 -07:00
Niko Matsakis 9476692b52 move ctags.rust into src/etc 2011-10-12 13:57:32 -07:00
Niko Matsakis e1c470c9ed new targets, TAGS.emacs and TAGS.vi. they must be manually made. 2011-10-12 13:57:32 -07:00
Brian Anderson dd484369dc Fix test dependencies 2011-10-11 08:54:20 -07:00
Brian Anderson 96f6a1861c Revert "Revert "Stop using (DY)LD_LIBRARY_PATH on Unix""
This reverts commit 941d5e737c.
2011-10-09 15:23:41 -07:00
Brian Anderson 941d5e737c Revert "Stop using (DY)LD_LIBRARY_PATH on Unix"
This reverts commit 4b58071f96.
2011-10-09 15:05:12 -07:00
Brian Anderson ae7bdc22a5 Fix make clean on windows 2011-10-07 15:41:15 -07:00
Brian Anderson fed56b07ba Make windows packaging work again 2011-10-07 13:48:20 -07:00
Brian Anderson 4709038d64 Bring make distcheck up to date 2011-10-06 18:12:15 -07:00
Brian Anderson 4b58071f96 Stop using (DY)LD_LIBRARY_PATH on Unix 2011-10-06 15:23:20 -07:00
Brian Anderson d8a85f0758 Make rpath work on mac 2011-10-06 13:09:00 -07:00
Patrick Walton 8d8b48a901 rt: Make C stack switching Valgrind-clean by warning Valgrind when we're about to write to the C stack from the Rust stack 2011-10-05 16:33:17 -07:00
Brian Anderson e963cfd41a Run tests with LD_LIBRARY_PATH set to the target libs, not the host libs
Setting it to the host libs uses those compiled from the previous stage
2011-10-05 16:21:55 -07:00
Brian Anderson 6335529c36 Fix #1003 harder 2011-10-04 11:24:18 -07:00
Brian Anderson f5e668c877 Fix a typo in tests.mk. Closes #1003 2011-10-04 11:19:37 -07:00
Brian Anderson 9be0dc1250 Cleanup mk/tests.mk 2011-10-02 18:00:13 -07:00
Brian Anderson 3a6f3cf275 Move compiletest to src/ and cleanup build rules 2011-10-02 17:28:59 -07:00
Brian Anderson 6e654564db Lots of build system cleanup and documentation
This splits mk/stageN.mk into host.mk and target.mk and makes
the build rules somewhat simpler - there's no more building from stageN
into stageN+1; instead we always build from stageN(host) to
stageN(target) then promote from stageN(target) to stageN+1(host).

Add a big honkin explaination right at the top of Makefile.in
2011-10-02 00:57:53 -07:00
Brian Anderson 9563c17d78 Have 'make install' do something close to useful
We'll copy the files to the right location. Still need to rpath.

Issue #529
2011-09-30 22:47:40 -07:00
Brian Anderson 821dd6c02c Change the directory for target libs
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00
Brian Anderson e71d17ffa6 Refix the snapshot rules 2011-09-30 16:27:18 -07:00
Brian Anderson f634eb2bfd Make config of static stdlib more consistent with rest of makefile
I haven't tested if it actually works. Static stdlib is probably becoming
bitrotted.
2011-09-30 16:18:19 -07:00
Brian Anderson 38c67a4c8d Abstract the build directories further in the makefiles
This defines variables for host bin and lib directories as well as all target
bin and lib directories then uses them everywhere.
2011-09-30 16:18:19 -07:00
Brian Anderson ed106dd6ea Fix some make variables in tests.mk 2011-09-30 16:18:19 -07:00
Brian Anderson de6d07abf9 Register snapshots and finish filesystem reorg 2011-09-29 23:33:44 -07:00
Brian Anderson 80829af872 Remove legacy library search paths 2011-09-29 23:12:31 -07:00
Brian Anderson b569e9c657 Update snapshot scripts for the new regime 2011-09-29 22:58:34 -07:00
Brian Anderson 9f9666af6e Tweak makefiles, change the way the fuzzer is built
Since librustc and the fuzzer depend on rustllvm, build them
like rustc, linking to libraries in lib instead of lib/rustc/$(target)
2011-09-29 22:58:34 -07:00
Brian Anderson 9385ad4952 Remove redundant make clean rules 2011-09-29 22:58:34 -07:00
Brian Anderson b61e17bdfd Fix CFG_RUN_TARG on windows 2011-09-29 22:58:33 -07:00
Brian Anderson 6306c81826 Fix a variety of things in the makefiles
Make tests and perf work again. Correctly get the host triple in rustc. Add
some FIXMEs about transitional code that needs to be removed.
2011-09-29 22:58:33 -07:00
Brian Anderson 7dbce103fb Remove the redundant definition of STAGE in makefiles 2011-09-29 22:58:33 -07:00
Brian Anderson 4ee9b86384 Update make clean rules 2011-09-29 22:58:33 -07:00
Brian Anderson ab8338fb5a Make rustc's host triple agree with the build system's 2011-09-29 22:58:33 -07:00
Brian Anderson 0148daa058 Reorganize structure of build directory
Each stage is organized more according to Unix standards and to
accommodate multiple target architectures.

stageN/
  bin - rustc lives here
  lib - libraries that rustc needs
  lib/rustc/$(target_triple/ - target libraries
2011-09-29 22:58:33 -07:00
Brian Anderson 15e34deba3 Eliminate glue.o. Closes #990 2011-09-28 15:35:21 -07:00
Patrick Walton d8a80cb31f rt: Add a call stub that switches to the C stack, untested as of yet 2011-09-28 12:26:36 -07:00
Erick Tryzelaar 5f066e06b9 Update to libuv commit 3ca382.
This patch changes libuv's gyp build system to
make it's own makefiles. To generate them for rust,
run these commands. They requires python 2.x to
work:

$ mkdir -p src/rt/libuv/build
$ svn co http://gyp.googlecode.com/svn src/rt/libuv/build/gyp
$ ./etc/src/gyp_uv
2011-09-23 16:53:06 -07:00
Brian Anderson acb0e8dcad Don't pipe check-fast results through tee
This was having the effect of scrubbing failure error codes. The only affect
of removing this should be that the .out file isn't generated, so subsequent
make invocations will re-run the tests (which is how our other tests work
anyway).
2011-09-23 12:30:35 -07:00
Patrick Walton 61afef29a1 rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruption 2011-09-23 11:42:20 -07:00
Graydon Hoare 18c6cc6371 More steps to arch-specific target libs (#474) 2011-09-23 10:50:16 -07:00
Graydon Hoare f2b49b8309 Remove -i for real. 2011-09-22 11:32:53 -07:00
Graydon Hoare 31c04a53e9 One little 'n', so much harm! 2011-09-21 12:34:30 -07:00
Graydon Hoare 13215809a8 Expand our own config.guess-like logic in configure, rather than only asking LLVM. We have to decide some things before we get an LLVM to ask. 2011-09-21 11:24:59 -07:00
Patrick Walton e26b1883dd rt: Stub code for the cycle collector 2011-09-20 16:49:31 -07:00
Graydon Hoare 939a9dd738 Simplify perf target flags. Apparently the event names aren't stable/portable. 2011-09-19 14:56:02 -07:00
Graydon Hoare c0ffd2ea26 Print perf measurement outputs on completion of 'perf' target. 2011-09-13 17:32:25 -07:00
Graydon Hoare e45c91135a Add a compile-stage2-under-perf step to "make perf" target. 2011-09-13 16:05:53 -07:00
Graydon Hoare d5b2d62b20 Add build-system mechanisms for running benchmarks under 'perf'. 2011-09-13 15:06:41 -07:00
Brian Anderson f1e348ce6a Change the exit status used for valgrind errors and check for it in tests 2011-09-11 17:31:37 -07:00
Brian Anderson 1bd627039e Begin compiling with exceptions enabled
Issue #236
2011-09-07 10:32:58 -07:00
Marijn Haverbeke 6209e844ee Replace xfail-stageN with simply xfail-test
Closes #799
2011-08-31 16:32:16 +02:00
Marijn Haverbeke 66bc014720 Revert "Replace xfail-stageN with simply xfail-test"
This reverts commit 574194f6bc.
2011-08-31 14:24:08 +02:00
Marijn Haverbeke 574194f6bc Replace xfail-stageN with simply xfail-test
Closes #799
2011-08-31 13:43:09 +02:00
Marijn Haverbeke 49e59e4ba7 Remove makefile CFG_USE_SNAP_LIBS_FOR_STAGE1 hack
It didn't work as intended, due to my lack of Makefile-fu
2011-08-29 14:31:32 +02:00
Marijn Haverbeke 9db4d9c6fd Add CFG_USE_SNAP_LIBS_FOR_STAGE1 hack to makefiles 2011-08-29 09:01:27 +02:00
Patrick Walton db72bd90f5 mk: Introduce CFG_DISABLE_OPTIMIZE_CXX 2011-08-24 11:59:21 -07:00
Patrick Walton 25416bfae1 rustc: Introduce ABI versioning so we can change value representations without breaking the compiler 2011-08-20 14:22:09 -07:00
Patrick Walton 396f6b4f59 rustc: Stub GC routines 2011-08-18 18:48:32 -07:00
Patrick Walton 0fedea39ce rt: Remove rust_alarm dead code 2011-08-18 18:21:03 -07:00
Brian Anderson 28fbc591fd Add more verbosity to 'make reformat'
For each file it will indicate that it was reformatted, unchanged, or failed
2011-08-18 15:46:10 -07:00
Patrick Walton d8c5bd6195 rt: Implement obstacks, untested as of yet 2011-08-16 19:49:25 -07:00
Eric Holk a332043561 Updating to build on Linux and Mac, and hopefully Windows too. 2011-08-15 09:26:51 -07:00
Brian Anderson 25b85df370 Register new snapshots
Use main.o from the snapshot
2011-08-14 14:38:08 -07:00
Brian Anderson 1dbf0965a1 Add lib/main.o to snapshot
Snapshotting main.o is going to make it easier (I think) to convert main to
use ivecs
2011-08-14 12:14:58 -07:00
Patrick Walton e8d170beae rt: Stub Rust GC metadata printer and Rust GC strategy modules 2011-08-11 21:15:26 -07:00
Rafael Ávila de Espíndola 6402b63b4f Use the new C API for PassManagerBuilder. 2011-08-11 19:09:52 -04:00
Brian Anderson 40ae704ff2 Begin valgrinding run-fail tests
Introduce a temporary no-valgrind directive for the few that aren't clean
2011-08-10 13:36:57 -07:00
Brian Anderson c6bb04aba6 Add make clean rules for libuv 2011-08-05 11:57:07 -07:00
Brian Anderson 1758876381 Build libuv with the same C compiler as the rest of rt 2011-08-05 11:57:07 -07:00
Brian Anderson 43313b5504 Introduce CC and CXX variables to the makefiles 2011-08-05 11:57:07 -07:00
Graydon Hoare 7da64ae461 Munge libuv makefiles sufficiently to build out of tree. 2011-08-05 11:57:07 -07:00
Brian Anderson b2c3fc739c More win32 libuv build tweaks 2011-08-05 11:57:07 -07:00
Brian Anderson 585c6f96d1 Update build rules so rt builds with libuv on Linux.
Needed to shuffle around the linker arguments and add -lpthread
2011-08-05 11:57:06 -07:00
Rob Arnold 8229c3fa75 Update libuv to revision ee599ec1141cc48f895de1f9d148033babdf9c2a 2011-08-05 11:57:06 -07:00
Rob Arnold f4b87c749f Basic async IO module using libuv 2011-08-05 11:57:06 -07:00
Rob Arnold b64a52df42 Integrate libuv into the build system 2011-08-05 11:57:06 -07:00
Patrick Walton ad925955d8 build: Don't error out if clang is too old. Instead, build with GCC. 2011-08-05 09:25:27 -07:00
Patrick Walton e351ad762d rt: Stub shape glue and implement shape::print and shape::size_of. 2011-08-03 20:25:44 -07:00
Brian Anderson 92a4c0cee7 Ignore xfail-pretty, xfail-stage2 files when reformatting
We shouldn't be trying to reformat source that we don't know to work because
we could just be breaking it more.
2011-08-03 10:55:59 -07:00
Brian Anderson ea2a968146 Include benchmarks in pretty-print tests 2011-08-02 14:37:03 -07:00
Brian Anderson 091a2c2f71 Run pretty-printer tests as part of make check. Issue #789 2011-08-02 10:39:14 -07:00
Brian Anderson 0fbb6782bb Add dedicated pretty-printer tests with new pp-exact directive
Add a new src/test/pretty directory to hold just source files for testing the
pretty-printer.

Add a new pp-exact directive. When this directive is followed by a file name
it specifies a file containing the output that the pretty-printer should
generate. When pp-exact is not followed by a filename it says that the file
should pretty-print as written.
2011-08-02 10:39:13 -07:00
Brian Anderson eea888af25 Add missing BENCH_TESTS variable to tests.mk 2011-08-02 10:39:13 -07:00
Brian Anderson 07950c8851 Add a FIXME about simplifying the make check rules 2011-08-02 10:39:13 -07:00
Brian Anderson e13390a199 Pretty-print test the rfail tests. Issue #789 2011-08-02 10:39:13 -07:00
Brian Anderson 59691b084f Don't run the compiletest runner itself under valgrind
This will reduce the valgrind deluge when a test fails. The tests themselves
are still run under valgrind. Leave a CTEST_VALGRIND environment variable for
running with the old behavior.
2011-08-02 10:39:13 -07:00
Brian Anderson 4e8ab8b3a8 Introduce pretty-print testing mode to compiletest. Issue #789 2011-08-02 10:39:12 -07:00
Brian Anderson 4e6bb137fe Enable build targets to run tests at stage0
This allows quicker turnaround for testing the standard library, since you
don't have to wait for the stage1 compiler every time.
2011-07-29 19:03:17 -07:00
Brian Anderson 9a995b0d25 Fix a typo in tests.mk that was building stdtest with the wrong compiler 2011-07-29 19:03:17 -07:00
Eric Holk d1dbb99984 Removing proxies and message queues. 2011-07-29 18:54:59 -07:00
Brian Anderson 4ef1ec580a Do all runtime calls to getenv at initialization
getenv is not threadsafe and (maybe as a result) it's randomly crashing with
CFLAGS=-g and RUST_THREADS=32. Calls from rust code are still on their
own.
2011-07-28 12:23:01 -07:00
Brian Anderson 452765255c Add PPFILES flag to specify a which files to reformat
Accepts a path with wildcards
2011-07-27 19:04:56 -07:00
Marijn Haverbeke 0e3ee39c41 Add fuzzer to reformat make target 2011-07-27 15:54:33 +02:00
Marijn Haverbeke b0059bd357 Hack to make snap-stage1 actually build incompatible changes
You can't build libstd both with stage0 and stage1 if the two are incompatible

This is probably temporary
2011-07-27 15:19:31 +02:00
Marijn Haverbeke 8c821ff038 Fix reformat make target 2011-07-27 13:42:10 +02:00
Rafael Ávila de Espíndola 01675f34e0 Remove old hack of creating a .a file with code that existed both in rust
and on newer versions of llvm.
2011-07-25 16:18:39 -04:00
Brian Anderson 2573fe7026 The Big Test Suite Overhaul
This replaces the make-based test runner with a set of Rust-based test
runners. I believe that all existing functionality has been
preserved. The primary objective is to dogfood the Rust test
framework.

A few main things happen here:

1) The run-pass/lib-* tests are all moved into src/test/stdtest. This
is a standalone test crate intended for all standard library tests. It
compiles to build/test/stdtest.stageN.

2) rustc now compiles into yet another build artifact, this one a test
runner that runs any tests contained directly in the rustc crate. This
allows much more fine-grained unit testing of the compiler. It
compiles to build/test/rustctest.stageN.

3) There is a new custom test runner crate at src/test/compiletest
that reproduces all the functionality for running the compile-fail,
run-fail, run-pass and bench tests while integrating with Rust's test
framework. It compiles to build/test/compiletest.stageN.

4) The build rules have been completely changed to use the new test
runners, while also being less redundant, following the example of the
recent stageN.mk rewrite.

It adds two new features to the cfail/rfail/rpass/bench tests:

1) Tests can specify multiple 'error-pattern' directives which must be
satisfied in order.

2) Tests can specify a 'compile-flags' directive which will make the
test runner provide additional command line arguments to rustc.

There are some downsides, the primary being that Rust has to be
functioning pretty well just to run _any_ tests, which I imagine will
be the source of some frustration when the entire test suite
breaks. Will also cause some headaches during porting.

Not having individual make rules, each rpass, etc test no longer
remembers between runs whether it completed successfully. As a result,
it's not possible to incrementally fix multiple tests by just running
'make check', fixing a test, and repeating without re-running all the
tests contained in the test runner. Instead you can filter just the
tests you want to run by using the TESTNAME environment variable.

This also dispenses with the ability to run stage0 tests, but they
tended to be broken more often than not anyway.
2011-07-24 15:34:34 -07:00
Graydon Hoare ad954fcecc Add an NSIS script for building a win32 installer. Closes #522. 2011-07-23 12:27:06 -07:00
Brian Anderson 6fc33163dc Change the CFG_STDLIB_DEFAULT macro into a call that picks the correct stage
stageN/rustc depends on either stageN/libstd.so or stage(N-1)/lib/libstd.rlib
so CFG_STDLIB_DEFAULT needs to try harder to get the dependencies right.
2011-07-22 10:18:28 -07:00
Michael Sullivan cb02425376 More missing things in make clean... 2011-07-21 18:07:10 -07:00
Michael Sullivan bdbac006dc Build the stage1 compiler against the newly built librustrt. 2011-07-21 17:55:47 -07:00
Michael Sullivan b01ecb10c3 Instantiate the stage0/lib/stdlib rules from stage0.mk instead of stageN.mk. 2011-07-21 12:15:36 -07:00
Michael Sullivan d9286c8bdd Build stage0/lib/libstd.so using the stage0 compiler.
This essentially starts the bootstrapping one step earlier by building
the stdlib from source using the stage0 compiler and then using that
stdlib to build the stage1 compiler. (Instead of starting by building
the stage1 compiler and then building a stdlib with it).

This means we should now be able to add features to the stdlib and use
them in the compiler without having to do a snapshot. (On the flip
side, this means that we now need to do a snapshot if we want to use a
new language feature in the stdlib, but that doesn't really seem too
burdensome (we already need to snapshot if we want to use a new
language feature in the compiler)).
2011-07-21 12:15:36 -07:00
Rafael Ávila de Espíndola ea371a3d37 Cleanup the library path now that we copy from stageN/lib to stageN+1/ 2011-07-21 15:12:10 -04:00
Michael Sullivan 67e9fe512c Improve make clean. 2011-07-20 15:56:25 -07:00
Rafael Ávila de Espíndola 5691d15703 Reduce the library path now that we are copying the libraries. 2011-07-20 16:32:06 -04:00
Rafael Ávila de Espíndola 88894b6f9c Add support for building with a static libstd for testing static crate support. 2011-07-20 16:02:36 -04:00
Brian Anderson 09ca57adb0 Revert "Revert "Rename Passes2.cpp to Passes.cpp""
This reverts commit 52507f406e.
2011-07-17 19:16:23 -07:00
Brian Anderson 52507f406e Revert "Rename Passes2.cpp to Passes.cpp"
This reverts commit c18127b913.
2011-07-17 19:15:27 -07:00
Brian Anderson c18127b913 Rename Passes2.cpp to Passes.cpp
The original Passes.cpp is dead so Passes2 gets promoted
2011-07-17 14:57:28 -07:00
Brian Anderson 13f5de0671 Remove Passes.cpp from rustllvm
Upstreamed
2011-07-17 14:57:28 -07:00
Brian Anderson b7699b7889 Remove Object.h from rustllvm
This file appears to be upstream now
2011-07-17 14:57:28 -07:00
Graydon Hoare fafb42e6b1 Merge the stage1,2,3.mk files into a common definition in stageN.mk, more rearrangement of host/target libs. 2011-07-15 16:16:51 -07:00
Graydon Hoare 336a4df778 Remove 'Nop.' comments, add emacs lines, remove obsolete file. 2011-07-13 14:03:18 -07:00
Graydon Hoare 1ba53c008a Fix check target names in tests.mk. 2011-07-13 13:13:44 -07:00
Brian Anderson ae7b757ac9 Add build targets for building rustc as a test runner. Issue #428 2011-07-12 16:54:46 -07:00
Brian Anderson a38ba01fa4 Move stdtest output files up a directory. Issue #428 2011-07-12 16:54:46 -07:00
Brian Anderson 9a37308101 Add build targets for running stdtest. Issue #428 2011-07-12 16:54:46 -07:00
Rafael Ávila de Espíndola 99a95b3613 Use new snapshot. 2011-07-11 18:35:25 -04:00
Rafael Ávila de Espíndola d151e18633 Move llvm out of stageN/lib so that the host building stage 1+ can
have a newer and incompatible llvm with the bots.
2011-07-11 16:31:47 -04:00
Rafael Ávila de Espíndola 15a670a1b1 Use new snapshot. 2011-07-11 14:32:18 -04:00
Brian Anderson 301f6aaa31 Add missing rules to 'make clean' 2011-07-07 17:22:39 -07:00
Brian Anderson c6ff1e8061 Make the rules for compiling rustc explicit
Not sure why they were implicit since their dependencies only work for rustc
2011-07-07 17:19:27 -07:00
Brian Anderson 42877bba8a Add missing rt/rustllvm rules for static libstd 2011-07-07 17:19:27 -07:00
Brian Anderson 106d0f3b72 Complete the transition of glue.o to the lib directory 2011-07-07 17:19:24 -07:00
Brian Anderson 94f782e6a1 Register new snapshots
New snapshots also include rt and rustllvm
2011-07-07 16:40:58 -07:00
Brian Anderson 64595a53f8 Add rt and rustllvm to the snapshot 2011-07-07 15:40:27 -07:00
Brian Anderson 4e45e58c61 Remove the llvm lib directory from LD_LIBRARY_PATH on unixy systems
Doesn't seem like this has been required for a while. I don't know enough
about the windows build to try to touch that.
2011-07-07 15:40:27 -07:00
Brian Anderson 2c234fdc97 Also copy rt and rustllvm to stage0 for now
Once we've updated the snapshots to include them we can remove these rules
2011-07-07 15:40:27 -07:00
Erick Tryzelaar 984caa3d26 put librustrt and librustllvm in stageN dirs. Issue #438 2011-07-07 15:39:42 -07:00
Rafael Ávila de Espíndola e440781164 Makefile support for building std static. 2011-07-07 16:07:16 -04:00
Rafael Ávila de Espíndola bbcbaa6601 Try to fix the bots. 2011-07-07 15:28:01 -04:00
Rafael Ávila de Espíndola 6d6c4c2a76 Command line changes for adding support for static libraries. 2011-07-07 14:42:50 -04:00
Brian Anderson 2f7bc90514 Add a stdtest crate to hold the standard library tests
This will link to std and compile with the --test flag. Eventually the
run-pass/lib* tests will move here.

We could also put the std tests directly into the library and compile both a
library version and a test version, but I think this way will make for faster
builds.

Issue #428
2011-07-06 14:39:40 -07:00
Brian Anderson 6853e04fc4 Temporarily introduce a stage2-check build target
The tinderbox snapshotting scripts seem to be looking for a stage2-check
target when they should be using check-stage2. Since Graydon is out of the
office, I'm making this change to see if the snapshot will go through.
2011-07-05 12:57:26 -07:00
Brian Anderson ccf6112f15 Link the fuzzer crate to librustc again 2011-07-04 15:30:36 -07:00
Brian Anderson 5fb9cad38d Partially restore the fuzzer crate's build rules
Right now the stage1/fuzzer crate will build but it's not linked to librustc
because stage1/librustc won't link.
2011-07-01 10:43:21 -07:00
Graydon Hoare afabde19dc More fixes to fast-check. 2011-06-29 17:54:05 -07:00
Graydon Hoare cd799a0a7a Tidy up snap makefile. 2011-06-29 15:14:55 -07:00
Graydon Hoare 4e5d32e1c4 Add fast-check target that combines the stage2 run-pass suite into a single executable. 2011-06-29 15:14:55 -07:00
Graydon Hoare 5059c5f8fd Actually notice xfail-stage2 as different from xfail-stage2. Fix affected tests. 2011-06-28 17:36:51 -07:00
Eric Holk f6f8a06d6b Resurrecting the runtime unit tests, and modifying them so they compile under the latest refactoring changes. 2011-06-28 16:12:34 -07:00
Eric Holk 657e5a2bd5 Renamed what's left of rust_dom to rust_scheduler 2011-06-28 16:12:33 -07:00
Eric Holk 1c852ac9c0 Removing runtime tests. The runtime is tested well enough by the standard library tests, so we might as well have less code to fix during refactoring. 2011-06-28 16:12:33 -07:00
Rafael Ávila de Espíndola d5fc01caef Move glue.o to stageN/lib. 2011-06-28 15:20:43 -04:00
Graydon Hoare 0dc2aa3d09 Bit more work on mingw cross. Pending on other changes now (test combination, build artifact locations) 2011-06-28 11:18:34 -07:00
Graydon Hoare 8ebcab711d More work on mingw cross build. 2011-06-28 11:18:34 -07:00
Graydon Hoare 4e89b5afe7 Silence texi2pdf during make 2011-06-28 11:18:34 -07:00
Patrick Walton 4558167307 build: Remove --vex-iropt-level=0 2011-06-27 12:39:37 -07:00
Graydon Hoare 8fc51dfc65 Some work on reviving the mingw-cross build. Not working yet. 2011-06-27 11:53:28 -07:00
Rafael Ávila de Espíndola bea28ea537 Easy fix for using newer LLVMs: just use the MachOObjectFile.cpp they provide. 2011-06-27 11:52:23 -04:00
Graydon Hoare 79ba31504b Fixes to speed and clean up makefiles. 2011-06-25 19:23:32 +00:00
Eric Holk 98dee91f25 Wrote swap_context in assembly. Closes #548. This also allows us to re-enable optimization on OSX for both gcc and clang. Also, re-enamed task-comm-1.rs, which was previously broken by optimization. 2011-06-23 18:49:29 -07:00
Eric Holk edf73f0512 Setting rt optimization on OS X to -O0 when using clang, like we already do with gcc. Tail-call elimination was causing valgrind errors with stack switching. Closes #494. 2011-06-21 13:13:33 -07:00
Graydon Hoare 1ad8efa86e Fix 'reformat' mk target to handle recent libdir changes. 2011-06-20 19:58:23 +00:00
Rafael Ávila de Espíndola 164230dcb6 Finish the transition to having the std library in stageN/lib. 2011-06-20 13:38:11 -04:00
Brian Anderson 59c76a371f Move creation of stageN/lib directories to the configure script 2011-06-17 18:36:44 -07:00
Brian Anderson bd93e1abcd Register new snapshots. Update location of stage0's libstd 2011-06-17 18:19:37 -07:00
Rafael Ávila de Espíndola 374967f67e Fix library path when running tests. 2011-06-17 16:13:12 -04:00
Rafael Ávila de Espíndola 342dbd7abe Put std in stageN/lib. This avoids windows trying to load stageN/std.ll when
stageN/runstc.exe is run.
2011-06-17 15:34:59 -04:00
Brian Anderson fc12577fdd Add makefile rules to run compile-fail tests on .rc files
There's even more duplication now, but I'm reluctant to touch it since it's
easy to subtly break the build rules
2011-06-16 17:23:20 -07:00
Graydon Hoare eb9969f546 Add support for marking files no-reformat. 2011-06-16 16:42:29 -07:00
Brian Anderson 834f90f2a0 StageN tests run against stageN libraries 2011-06-16 14:21:43 -07:00
Rafael Ávila de Espíndola 68887fd45b Fix missing dependencies on intrinsics.bc. 2011-06-16 15:57:57 -04:00
Rafael Ávila de Espíndola ad2ab4cfa6 Add missing dependencies, stageN/glue.o gets linked into the stageN/libstd.so. 2011-06-16 15:19:27 -04:00
Rafael Ávila de Espíndola 346f1a6769 More driver related cleanups. 2011-06-16 15:06:09 -04:00
Michael Sullivan bd8f6097a7 Get rid of old vec_append glue. 2011-06-16 11:58:29 -07:00
Rafael Ávila de Espíndola 32895ad990 Switch to using the rustc driver in the bootstrap process. 2011-06-16 14:43:35 -04:00
Rafael Ávila de Espíndola a77180f4f5 Add support for producing shared libraries directly in the rust driver. 2011-06-15 16:54:13 -04:00
Graydon Hoare bd3e2eb4cb Add tests to 'make reformat' target. 2011-06-15 10:09:28 -07:00
Brian Anderson c5caff8e18 Use correct GCC flags variable in fuzzer.mk 2011-06-14 19:12:55 -07:00
Erick Tryzelaar 29e14a0f81 Fix compiling the fuzzer. 2011-06-14 19:12:55 -07:00
Rafael Ávila de Espíndola c3015b8952 Apply the makefile changes again, this time fixin the driver to not produce a
rustc.exe.exe.
2011-06-14 17:51:31 -04:00
Rafael Ávila de Espíndola 7b5c3afae5 Revert part of my last change while I figure out why windows doesn't like it. 2011-06-14 15:55:51 -04:00
Rafael Ávila de Espíndola 8d7f7c2a97 Move a bit more to use the driver. 2011-06-14 14:49:18 -04:00
Graydon Hoare 700c525c4f Revive 'make reformat' target. 2011-06-14 11:11:07 -07:00
Eric Holk d1857d30fc This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Rafael Ávila de Espíndola ff8af3c2db Use the driver to build stage3. This worked on all 3 platforms for me,
lets see if the bots agree.
2011-06-13 19:10:51 -04:00
Graydon Hoare a3be0454f9 Bug fix for last commit, of course. 2011-06-13 14:48:37 -07:00
Graydon Hoare 0a8f9a394b Handle missing git in build env. 2011-06-13 14:45:49 -07:00
Rafael Ávila de Espíndola 2c16be424b Use main.o directly now that stage0 is ok with it. 2011-06-08 13:33:35 -04:00
Rafael Ávila de Espíndola b1d6f12a05 Don't put a copy of main (the C one) in each binary we produce. This is a step
in getting a driver that works on all linux systems.

Sorry for the linker hacks, I will remove them after snapshotting a new compiler.
2011-06-07 16:56:27 -04:00
Graydon Hoare d569a71b0b make 'reformat' do libstd as well. 2011-06-01 16:57:17 -07:00
Graydon Hoare 49742b86be Add a 'make reformat' rule. 2011-06-01 12:01:55 -07:00
Rafael Ávila de Espíndola cc96eeafca Move rust_vec_append_glue to rt. 2011-05-31 14:32:08 -04:00
Brian Anderson e3b3a71e6a Don't fiddle with RUST_LOG in the Makefiles
This is no longer necessary since error logging is not affected by RUST_LOG.
2011-05-27 17:01:15 -04:00
Graydon Hoare 79c9e13073 More delicious dead code removal from runtime, upcalls. 2011-05-26 18:21:02 -07:00
Brian Anderson 70106f35ce test: Fix run-fail testing and bring tests up to date
A typo in the Makefile was causing these to not run. Happily, a lot of these
tests pass, so un-xfailed.
2011-05-24 22:09:12 -04:00
Rafael Ávila de Espíndola ac836dd79c There is only one yield glue. 2011-05-24 18:29:08 -04:00