Brian Anderson
467b9f3908
Implement the rest of the binary trees shootout benchmark
2011-03-14 15:52:48 -07:00
Brian Anderson
922f69387d
Add _int.pow
2011-03-14 15:52:48 -07:00
Brian Anderson
ac72f42b1c
Mention test/bench in README
2011-03-14 15:52:48 -07:00
Brian Anderson
595c4862ab
Remove broken 99-bottles makefile and run script
2011-03-14 15:52:48 -07:00
Brian Anderson
97245edd80
Add 99-bottles benchmarks to testsuite
2011-03-14 15:52:48 -07:00
Brian Anderson
8438eca45c
Integrate shootout benchmarks into testsuite
2011-03-14 15:52:48 -07:00
Brian Anderson
242ecd0e96
Reorganize makefile targets
2011-03-14 15:52:48 -07:00
Marijn Haverbeke
77f4c52c3e
Make pretty-printer print 'with' clause in rec literals
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
ea5dc54c3f
Add functionality for running external programs to the std lib
...
See lib/run_program.rs.
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
441697ab35
Extend stream functionality
...
Writer and reader streams now come with methods to write and read
little-endian numbers. Whether that is the right place for such
methods is debatable, but for now, that's where they live.
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
c731d625fe
Add basic file-system functionality
...
std.fs.list_dir will list the files in a directory, std.fs.file_is_dir
will, given a pathname, determine whether it is a directory or not.
2011-03-14 14:57:13 -07:00
Rafael Ávila de Espíndola
3436979b17
Split trans' collection in two passes. This allows us to handle tags
...
that are defined after use in a block.
This is really inefficient, but for now it lets us compile the included test.
2011-03-14 16:56:03 -04:00
Brian Anderson
bbb6836da0
Merge branch 'master' into recursive-elseif
...
Conflicts:
src/comp/middle/typeck.rs
2011-03-13 19:40:25 -04:00
Brian Anderson
2a662944a4
Remove extra blocks from the translation of expr_block
...
Doesn't seem to break anything and allows trans_if to be streamlined
2011-03-13 19:29:40 -04:00
Patrick Walton
fdc22ef1a1
Add llvmext/include to the list of include directories to hopefully put out the burning tinderbox
2011-03-11 18:20:13 -08:00
Patrick Walton
57c2fa9d11
Rename libsupport to librustllvm
2011-03-11 18:17:57 -08:00
Patrick Walton
d34e1ff89e
rustc: Add a binding to LLVM's object file reader. Until it's sent upstream, add an explicit "support" library for our LLVM extensions.
2011-03-11 18:03:00 -08:00
Graydon Hoare
a8fbb53d64
Include glob in crate depfile deps, to handle file-add events with cached depfiles. Closes #269 .
2011-03-11 16:16:35 -08:00
Graydon Hoare
ec7e84ae0d
Preserve crate directives in the parsed crate.
2011-03-11 15:49:56 -08:00
Graydon Hoare
d24acf733a
Remove redundant entry from Makefile
2011-03-11 15:49:56 -08:00
Patrick Walton
9b3db0ed44
rustc: Add some stub metadata to each crate
2011-03-11 15:35:50 -08:00
Rafael Ávila de Espíndola
74d891517b
reindex the block index.
2011-03-11 17:35:33 -05:00
Patrick Walton
1feaf8ffb5
Re-XFAIL size-and-align.rs to put out burning tinderbox
2011-03-11 14:33:54 -08:00
Patrick Walton
6392bd1681
rustc: Load structural loop variables in iterators. Un-XFAIL foreach-put-structured.rs.
2011-03-11 14:29:45 -08:00
Rafael Ávila de Espíndola
28d51e3fd2
Add support for indexing tags in blocks.
2011-03-11 17:12:25 -05:00
Patrick Walton
5c21f03990
rustc: Un-XFAIL test/run-pass/foreach-simple-outer-slot.rs
2011-03-11 13:48:25 -08:00
Graydon Hoare
fc7cbe31f9
Switch rustboot from element-wise copying to take+drop+memcpy. Un-XFAIL size-and-align.rs for rustc.
2011-03-11 13:44:24 -08:00
Patrick Walton
2ef5728722
rustc: Un-XFAIL generic-iter-frame.rs
2011-03-11 12:11:24 -08:00
Patrick Walton
a93ab2e1b1
Un-XFAIL test/run-pass/foreach-nested.rs and test/run-pass/foreach-nested-2.rs
2011-03-11 12:06:09 -08:00
Patrick Walton
37007a4d01
rustc: Populate the upvar environment when calling iterator bodies. Un-XFAIL test/run-pass/iter-range.rs.
2011-03-11 12:02:51 -08:00
Patrick Walton
336f22db61
rustc: Resolve upvars as necessary
2011-03-11 10:39:36 -08:00
Rafael Ávila de Espíndola
0117cf2fc2
Handle resolving to native modules.
2011-03-10 21:33:53 -05:00
Graydon Hoare
bc5a8393e7
Help extinguish fires.
2011-03-10 17:57:22 -08:00
Graydon Hoare
3aac5059ee
Move the glue code to a .o file. This reduces how much asm we print
...
in each "translation unit".
Part of it is not repetitive and should probably be moved to a .ll file, but
for now we autogen all of it.
(Modified somewhat by graydon while integrating).
2011-03-10 17:30:08 -08:00
Patrick Walton
7454b53411
rustc: Build up a list of upvars inside foreach bodies
2011-03-10 16:49:00 -08:00
Patrick Walton
60f86354ad
rustc: Use the generic info from the item in bind thunks just as calls do. Un-XFAIL drop-parametric-closure-with-bound-box.rs.
2011-03-10 15:14:45 -08:00
Patrick Walton
185bcc6218
rustc: Increment the counter in trans_bind_thunk()
2011-03-10 15:09:41 -08:00
Patrick Walton
41d5094a8e
rustc: Fix off-by-one error and logic error regarding type parameters in the translation of bind expressions. Un-XFAIL bind-obj-ctor.rs.
2011-03-10 14:38:06 -08:00
Rafael Ávila de Espíndola
4ca0259b20
Update the current id when we create sub parsers.
2011-03-10 17:36:41 -05:00
Graydon Hoare
ab7b9b847a
Fix seemingly un-noticed thinko in structural copying code in rustboot.
2011-03-10 14:15:41 -08:00
Graydon Hoare
5f29988a2c
Add failing test for tag-leaking case.
2011-03-10 14:15:02 -08:00
Patrick Walton
36b81abf61
rustc: Perform a cast in vector initialization due to changing layers of indirection. Keep test/run-pass/size-and-align.rs XFAIL'd due to a leak in rustboot.
2011-03-10 12:15:07 -08:00
Patrick Walton
7505c1fa23
rustc: Run cleanups on while expressions' condition blocks. Un-XFAIL while-prelude-drop.rs.
2011-03-10 11:46:37 -08:00
Graydon Hoare
0d3cec71a3
Fix eval typo (caught by Martin Hock).
2011-03-10 10:17:10 -08:00
Graydon Hoare
8e8c336f93
Implement deep structural comparison through boxes and sequences.
2011-03-09 20:14:19 -08:00
Graydon Hoare
fb246e4e47
Un-XFAIL a couple export-related tests.
2011-03-09 19:01:13 -08:00
Patrick Walton
874e8e3505
rustc: Have tag patterns use the type parameter information from the typechecker instead of trying to deduce it in trans. Un-XFAIL test/run-pass/generic-tag-values.rs.
2011-03-09 17:50:46 -08:00
Graydon Hoare
bafcbb101c
Fold exports.
2011-03-09 17:34:22 -08:00
Graydon Hoare
11a10c7a7b
Remove redundant imports in lib (rustc doesn't like 'std' as a synonym for root within std.rc anyway)
2011-03-09 17:29:18 -08:00
Marijn Haverbeke
ec22fe9733
Add ty_obj case to pretty printer
2011-03-09 16:15:58 -08:00
Marijn Haverbeke
aed40fbcd8
Have the pretty-printer take a writer stream as argument
...
It now uses a string writer to also fill in for
middle.ty.ast_ty_to_str
2011-03-09 16:15:55 -08:00
Marijn Haverbeke
dddd7d8f44
Add stdout_writer and string_writer to std.io
...
For use by pretty-printer. string_writer API is a bit silly
right now, feel free to suggest a cleaner way to do this.
2011-03-09 16:15:52 -08:00
Patrick Walton
ea2c868744
rustc: Perform type substitutions for tag variants in dynamic_size_of()
2011-03-09 16:07:55 -08:00
Patrick Walton
1e65baad94
rustc Remove dead "llunit_ty" assignment in trans_index
2011-03-09 15:23:41 -08:00
Patrick Walton
7dc64b45b5
rustc: Make tag pattern translation generic-aware. Un-XFAIL generic-tag-alt.rs.
2011-03-09 15:17:06 -08:00
Patrick Walton
ba2e04f271
Rename confusing usage of "lltag" to "lldiscrim" in trans_pat_match()
2011-03-09 14:29:00 -08:00
Patrick Walton
ff15a93d95
rustc: Make test/run-pass/generic-tag-alt.rs valid Rust; it was passing a dynamically-sized value by value instead of by alias
2011-03-09 14:12:08 -08:00
Patrick Walton
603d820b85
rustc: Have demand_pat() extract type parameters from tags. Add a test case.
2011-03-09 14:09:02 -08:00
Patrick Walton
2986ed43e9
rustc: Substitute type parameters in type_of_variant(). Add a test case.
2011-03-09 13:31:25 -08:00
Patrick Walton
9aa26904b8
rustc: Remove redundant ty_params_of_tag() function
2011-03-09 13:07:06 -08:00
Patrick Walton
80fa01fb57
rustc: Perform type parameter substitutions in static_size_of_tag()
2011-03-09 12:53:12 -08:00
Patrick Walton
fcd195bb4c
rustc: Don't try to load dynamically-sized types when translating tag variants. Add a test case for this.
2011-03-09 12:53:12 -08:00
Rafael Ávila de Espíndola
02f669ca67
Pass the task pointer as just another i32.
2011-03-09 15:35:54 -05:00
Rafael Ávila de Espíndola
10d8b4e861
Fix access to the rust stack.
2011-03-09 15:05:22 -05:00
Rafael Ávila de Espíndola
aeca138944
swap taskptr and callee in preparation for making taskptr optional.
2011-03-09 14:16:11 -05:00
Patrick Walton
50da3ea5bc
rustc: Instantiate tag patterns with the type parameters supplied by the programmer. size-and-align.rs typechecks now.
2011-03-09 11:08:59 -08:00
Patrick Walton
b828ec36fb
rustc: Factor the type parameter and type lookup out of instantiate_path(), as patterns need different logic
2011-03-09 10:56:45 -08:00
Patrick Walton
3c200f3e14
rustc: Grammar police work in check_pat() error messages
2011-03-09 10:21:48 -08:00
Patrick Walton
0a22a4edbb
rustc: Factor out path type instantiation so that tag patterns can use it as well
2011-03-08 18:48:17 -08:00
Patrick Walton
e64085b0a2
rustc: Fold over the paths in tag patterns so that we can resolve type variables in them
2011-03-08 18:11:00 -08:00
Patrick Walton
5b7c3b8b5d
rustc: Typecheck the base part of record extension expressions. Un-XFAIL rec-extend.rs.
2011-03-08 17:34:41 -08:00
Graydon Hoare
1a05f99a10
Un-XFAIL obj-return-polytypes.rs
2011-03-08 17:25:34 -08:00
Patrick Walton
e9fe47b359
rustc: Make ann_to_type() fail if the node has no type. Miraculously, no test cases fail.
2011-03-08 17:03:00 -08:00
Patrick Walton
e62424944b
rustc: Have trans get the type parameters from the annotation instead of trying to deduce them itself. Un-XFAIL generic-fn-twice.rs.
2011-03-08 16:56:19 -08:00
Graydon Hoare
67a9532dee
Remove GC overspend; running out of memory on some tinderboxes.
2011-03-08 16:32:39 -08:00
Graydon Hoare
01bfc3ae8b
Fix generic-bind support for bound aliases and generics.
2011-03-08 16:32:39 -08:00
Patrick Walton
da9ea9ab69
rustc: Move type parameter resolution from translation into the typechecker
2011-03-08 14:55:39 -08:00
Patrick Walton
16344a0145
rustc: Re-XFAIL rec-extend.rs. The typechecker never assigned the path expr a type.
2011-03-08 14:50:50 -08:00
Graydon Hoare
27547c6514
Revert "Move the glue asm code to a .o file. This reduces how much asm we print"
...
This reverts commit 55c80e763b
.
2011-03-08 13:20:16 -08:00
Rafael Ávila de Espíndola
55c80e763b
Move the glue asm code to a .o file. This reduces how much asm we print
...
in each "translation unit".
2011-03-08 13:08:31 -08:00
Patrick Walton
35bee753de
rustc: Pass explicit type substitutions to later passes
2011-03-08 13:00:31 -08:00
Patrick Walton
4654faa67c
rustc: Add a slot for explicit type parameter instantations to the typechecker's AST annotation
2011-03-08 12:42:56 -08:00
Patrick Walton
e2f6f19fc8
rustc: Rework type substitution to pair up type parameter IDs with the supplied type parameter instantiations explicitly
2011-03-08 12:19:37 -08:00
Patrick Walton
51be50490e
rustc: Expose common.def_eq().
2011-03-08 11:59:38 -08:00
Patrick Walton
473a242525
rustc: Store type parameter definition IDs instead of type parameter counts in the typechecker
2011-03-08 11:27:36 -08:00
Patrick Walton
0054efc412
rustc: Store the number of type parameters per item, which will be needed to get unused type params working
2011-03-08 10:57:40 -08:00
Brian Anderson
5aabe7e84f
Add partial pretty-printing for syntax extensions
2011-03-07 22:06:26 -05:00
Brian Anderson
fa2525a7bd
Remove old pretty-printer from rustc
2011-03-07 22:06:07 -05:00
Brian Anderson
5ba012f4a5
Add missing alt arm to expr_if pretty-printer
2011-03-07 22:05:55 -05:00
Brian Anderson
9fc4db6b89
Merge branch 'master' into recursive-elseif
...
Conflicts:
src/Makefile
src/comp/front/ast.rs
src/comp/front/parser.rs
src/comp/middle/fold.rs
src/comp/middle/trans.rs
2011-03-07 21:21:01 -05:00
Graydon Hoare
0d60918855
Most of the way through genericizing bind properly with new malloc path. Still getting the thunk call wrong.
2011-03-07 18:13:56 -08:00
Patrick Walton
3473ff3bff
rustc: Cast dynamically-sized tags in iter_structural_ty_full() to opaque tag types. Un-XFAIL generic-recursive-tag.rs.
2011-03-07 18:03:33 -08:00
Patrick Walton
6ed226c6b3
rustc: Cast the LLVM representations of tag types when constructing boxes. Un-XFAIL list.rs.
2011-03-07 16:35:00 -08:00
Patrick Walton
6f7e21ddac
rustc: Truncate or zero-extend indexes appropriately. Un-XFAIL integral-indexing.rs.
2011-03-07 15:44:42 -08:00
Graydon Hoare
df3038e68b
Parse opacity (and drop on the floor), so std.rc parses now.
2011-03-07 15:38:20 -08:00
Patrick Walton
3869b3bfe4
Modernize test/run-pass/generic-recursive-tag.rs. Un-XFAIL it in rustboot.
2011-03-07 15:12:41 -08:00
Graydon Hoare
7fa8936ece
Un-XFAIL 5 more tests that pass lately.
2011-03-07 14:48:32 -08:00
Patrick Walton
eeb2d6d32c
rustc: Un-XFAIL box-unbox.rs
2011-03-07 14:28:52 -08:00
Graydon Hoare
abbcc0385d
Poison ty_param values in trans; fix buggy parametric obj and box malloc paths. Add generic-box test.
2011-03-07 14:05:16 -08:00
Marijn Haverbeke
0624f9db4a
Add a pretty-printer
...
Adds a -pp option to the compiler which will cause it to simply
pretty-print the given file.
2011-03-07 12:58:08 -08:00