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
Rafael Ávila de Espíndola
0fc91b6ecc
There is only one activate function now.
2011-05-24 17:00:45 -04:00
Erick Tryzelaar
02b995f428
librustc depends on rustllvm and std.
...
This fixes compiling the fuzzer application.
2011-05-20 12:32:44 -07:00
Rafael Ávila de Espíndola
96516e9ca2
One exit_task_glue to rule them all.
2011-05-18 15:43:48 -04:00
Graydon Hoare
550667a538
Fix snap rules to depend more correctly on rustc$(X) not rustc.
2011-05-16 19:05:08 -07:00
Graydon Hoare
6997adf763
Remove rustboot from the repository.
2011-05-13 18:38:28 -07:00
Graydon Hoare
1fdddede22
Add snap-stageN targets.
2011-05-12 13:08:57 -07:00