Brian Anderson
b8e31ac469
Try a little harder to avoid creating new landing pads
...
It's only when we add or revoke cleanups involving immediates that we need a
new landing pad for the scope.
Trims 5K off the optimized rustc bin
2011-09-13 16:52:12 -07:00
Brian Anderson
74c39469be
Reuse landing pads when possible
...
Cuts the optimized rustc bin from 5.2 to 4.7MB
2011-09-13 16:52:12 -07:00
Michael Sullivan
c84b8e90b8
Print something when we can't figure out a tag name. Mitigates #876 .
2011-09-13 13:14:49 -04:00
Marijn Haverbeke
b9267e8fbc
Add missing cases for machine floats in shape.rs
2011-09-13 17:46:28 +02:00
Marijn Haverbeke
577d6dd602
Improve lexing of float literals
...
Closes #575
2011-09-13 17:43:01 +02:00
Marijn Haverbeke
f72573cce8
Properly pretty-print 10.x
...
Closes #890
2011-09-13 17:08:59 +02:00
Marijn Haverbeke
e64e9792ab
Make pretty-printer wrap fail/ret/put in parens in call/index/field pos
...
Closes #764
Closes #891
2011-09-13 17:02:36 +02:00
Marijn Haverbeke
bc62b17543
Ensure that the declared type and actual type of a constant agree
...
Closes #899
2011-09-13 16:29:23 +02:00
Marijn Haverbeke
be5537e95f
Be more strict about what constitutes a block expression
...
Blocks (or statements involving blocks) that end in a semicolon are no
longer considered the block-expression of their outer block. This used
to be an expression block, but now is a statement block:
{ if foo { ret 1; } else { ret 10; } }
This helps clear up some ambiguities in our grammar.
2011-09-13 15:50:03 +02:00
Marijn Haverbeke
e945164879
Always warn when implicitly copying a generic type
2011-09-13 13:40:38 +02:00
Marijn Haverbeke
38e86d708b
Properly alias-check bindings in for-each loops
2011-09-13 13:34:08 +02:00
Marijn Haverbeke
45bdff01b2
Clean up copy bookkeeping in alias.rs
2011-09-13 13:23:32 +02:00
Marijn Haverbeke
2f402343c9
Make for loop alias-safe
2011-09-13 13:05:59 +02:00
Marijn Haverbeke
3e92f90952
Apply implicit copying for unsafe references to alt patterns
2011-09-13 12:23:36 +02:00
Graydon Hoare
7f94957721
Kill trailing whitespace.
2011-09-12 16:33:43 -07:00
Graydon Hoare
a4815b6742
Factor imports mindlessly.
2011-09-12 16:13:28 -07:00
Brian Anderson
393deeb06f
Merge branch 'unwind'
...
Conflicts:
src/comp/middle/trans.rs
src/comp/middle/trans_build.rs
src/lib/run_program.rs
src/test/compiletest/runtest.rs
2011-09-12 09:36:51 -07:00
Marijn Haverbeke
edde2e0c45
Undo some pretty-printer damage in ty.rs
2011-09-12 14:43:41 +02:00
Marijn Haverbeke
982a1a4783
Rename alias to reference in docs and error messages
...
Update docs to reflect new approach to aliases
2011-09-12 14:24:46 +02:00
Marijn Haverbeke
bcf60c6600
Warn when inserting an implicit copy that may be expensive
2011-09-12 13:54:02 +02:00
Marijn Haverbeke
8dd46d4384
Properly implement copy expressions
...
(And use them in some places that were doing {expr} before.)
2011-09-12 13:13:20 +02:00
Marijn Haverbeke
f4b6264f8c
Remove backwards-compatibility with old arg-mode syntax
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
ca1df2b111
Pretty-print for new arg-mode syntax
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
5bc424e4ea
Register second snapshot for argument-mode transition
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
bfa021de0d
Switch pretty-printer to new arg-mode syntax
2011-09-12 12:48:59 +02:00
Marijn Haverbeke
3667137a41
Accept {|| ... } for argument-less block syntax
...
Closes #880
2011-09-12 12:04:41 +02:00
Marijn Haverbeke
fc6b7c8b38
Reformat for new mode syntax, step 1
...
Long lines were fixed in a very crude way, as I'll be following up
with another reformat in a bit.
2011-09-12 12:04:14 +02:00
Marijn Haverbeke
64a6376da5
Register new snapshot
2011-09-12 11:25:19 +02:00
Marijn Haverbeke
8b7909afd7
Fix tests for new argument-passing convention
2011-09-12 11:07:20 +02:00
Marijn Haverbeke
0e6e56ca60
Make the names of the arg mode tag reflect their (revised) meaning
2011-09-12 11:07:17 +02:00
Marijn Haverbeke
4be7e1e5cd
Pass all arguments by reference, make immut alias mode equiv to value
...
Arguments that can't be safely referenced will be implicitly copied.
(Warnings for expensive copies will be forthcoming.)
This will allow us to get rid of most of the ampersands in function
signatures. See [1].
[1] https://mail.mozilla.org/pipermail/rust-dev/2011-September/000759.html
2011-09-12 11:06:54 +02:00
Brian Anderson
6ffcfba6b9
XFAIL bench/shootout-nbody
...
This is the only file in the whole codebase that depends on the (broken) llvm
native ABI.
2011-09-11 23:19:05 -07:00
Brian Anderson
cb50e4329a
Add an XFAILed test for native "llvm" modules
...
This functionality is completely broken
2011-09-11 23:14:42 -07:00
Brian Anderson
fda196769a
Actually fail the process when compiletest has a test failure
...
We previously failed by coincidence because of memory leaks.
2011-09-11 21:13:59 -07:00
Brian Anderson
69d6e0d208
Add some more unwind tests
...
They worked without modifications, but I wrote them so we're keeping them.
Issue #236
2011-09-11 17:31:41 -07:00
Brian Anderson
e193c9c1d6
Don't check-fast xfail-win32 tests
2011-09-11 17:31:41 -07:00
Brian Anderson
7940382070
XFAIL run-pass/task-comm-15 on win32 again
...
Maybe it works with check-fast, but it stills fails for me
2011-09-11 17:31:41 -07:00
Brian Anderson
be9fe24220
XFAIL some run-pass unwinding tests on win32
...
Curiously, because of some unfortunate interaction between win32 hacks, all the
run-fail unwind tests actually pass (that wouldn't be the case if we were
valgrinding though).
2011-09-11 17:31:40 -07:00
Brian Anderson
d00be1d962
Add the ability to xfail tests by platform
...
We'll use this to xfail some unwinding tests on windows
2011-09-11 17:31:40 -07:00
Brian Anderson
22001d1dce
Remove hack_allow_leaks
...
Happy to close the loop on this one.
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
d267e7486e
Zero locals when the initializer might call a function
...
The function might fail, leaving the local uninitialized
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
0ea55ffdc8
Use a unique exit status when the runtime fails normally
...
Check for it in run-fail tests
2011-09-11 17:31:40 -07:00
Brian Anderson
6f6f36172b
Remove unused task_exit function
...
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
118194381c
Invoke put functions
...
Issue #236
2011-09-11 17:31:40 -07:00
Brian Anderson
5b7145a9f4
Add an XFAILed test for failing destructors
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
53f7d6119a
Add some FIXMEs about unwinding implementation
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
e8a16353ea
Remove the no-valgrind test directive now that unwinding is more worky
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
a7c9f817bb
XFAIL run-fail/linked-failure
...
This test is hitting a bug in the runtime that makes it fail incorrectly and
not valgrind-clean
2011-09-11 17:31:39 -07:00
Brian Anderson
f28bbb2f95
Begin valgrinding some run-fail tests that unwind correctly
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
f99cf2d62f
Add a number of unwinding tests
...
Issue #236
2011-09-11 17:31:39 -07:00
Brian Anderson
4fba02c7e9
Invoke upcall_fail
...
This allows landing pads to be generated around fail statements
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4c9eee8aa4
Run cleanups during unwinding
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
587b863772
Zero locals that have initializers that might fail
...
This will avoid running cleanups on uninitialized memory
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4eb3ce3280
Add landing pads to invokes
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
5e4637b61f
Add Rust definitions for new LLVM EH instructions
...
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
4bced5e5f2
Use invoke to call (most) rust functions
...
No landing pads yet.
Issue #236
2011-09-11 17:31:38 -07:00
Brian Anderson
9f4b4d89ce
Add upcall_rust_personality
...
This just wraps __gxx_personality_v0 with our upcall naming convention
Issue #236
2011-09-11 17:31:38 -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
a1131748c2
Add a waitpid wrapper to std::run that interprets the exit status on unix
...
This makes the result of running a program a little more uniform between unix
and windows
2011-09-11 17:31:34 -07:00
Jesse Ruderman
476bbca87a
Fuzzer: move tys around in addition to exprs
2011-09-10 18:55:09 -07:00
Jesse Ruderman
8df7c2b0d4
Fuzzer: first steps of making steal_exprs more generic
2011-09-10 14:51:33 -07:00
Jesse Ruderman
cdf30c2b29
ivec_fuzz: use vec::reversed
2011-09-10 12:12:44 -07:00
Jesse Ruderman
9245228f94
ivec_fuzz: remove obsolete comments
2011-09-10 12:03:13 -07:00
Jesse Ruderman
fe4227df04
ivec_fuzz: require shared types, because that's what vec::slide requires
2011-09-10 12:02:24 -07:00
Jesse Ruderman
5ef27245b1
Fuzzer: Refactor check_whole_compiler so it doesn't halt the fuzzer when it finds a bug.
2011-09-10 00:51:07 -07:00
Jesse Ruderman
8e1902f30f
Fuzzer: update lists of known bugs
2011-09-09 22:31:26 -07:00
Jesse Ruderman
7182054416
Add missing arm, so pretty-printing the statement 'copy 1;' does not die.
2011-09-09 21:27:07 -07:00
Jesse Ruderman
8e00161819
Make the pretty printer disambiguatae blocks followed by vec expressions.
...
Semicolons are needed here now that postfix [] is used for vec indexing (the syntax change made in rev 518dc52f85
).
2011-09-09 19:47:40 -07:00
Jesse Ruderman
ce432d4cf9
Fuzzer: remove exclusions for some issues that have been fixed
2011-09-09 17:31:08 -07:00
Marijn Haverbeke
db15591d89
Revert "Make for loops alias the vec elements, rather than copy them"
...
This reverts commit 985ef59efd
.
2011-09-09 16:53:45 +02:00
Marijn Haverbeke
3ac59b0ee0
Get rid of vp2i in object field access
...
Closes #557
2011-09-09 15:53:10 +02:00
Marijn Haverbeke
985ef59efd
Make for loops alias the vec elements, rather than copy them
...
The alias analysis was already assuming that it worked like this.
2011-09-09 15:34:13 +02:00
Marijn Haverbeke
0eb56e60d2
Get rid of trans::iter_sequence, use tvec::iter_vec instead
2011-09-09 15:06:06 +02:00
Marijn Haverbeke
9fb3ec95e0
Use a Phi node in trans_vec::iter_vec_raw
...
Rather than incrementing a spilled pointer
2011-09-09 14:20:15 +02:00
Marijn Haverbeke
139b1d1b31
Get rid of some unused upcalls
...
I guess these became obsolete when the communication stuff moved into
the stdlib.
2011-09-09 14:02:07 +02:00
Marijn Haverbeke
bd2ec03771
Remove unused logging upcalls from runtime
2011-09-09 13:55:43 +02:00
Marijn Haverbeke
e57435f68b
Don't put 0-length array in the lltype of an arg-less variant
...
This seems to confuse LLVM in some very specific situations.
Closes #883
2011-09-09 13:51:15 +02:00
Marijn Haverbeke
b6e6f8b810
Fix scope issue in resolution of alt-arm patterns
...
Closes #885
2011-09-09 12:13:18 +02:00
Patrick Walton
87c6416d0c
rt: Don't double-print commas when logging e.g. a vec of boxes
2011-09-08 13:24:21 -07:00
Patrick Walton
fb9ab95a15
rustc: When revoking a cleanup of a unique pointer, zero it out so that the GC won't try to visit it
2011-09-08 10:24:25 +02:00
Patrick Walton
7a0c9759fe
rustc: Make unique pointers no longer immediates.
2011-09-08 10:24:14 +02:00
Brian Anderson
9946e467ff
Export tag discriminants even for single-variant tags
...
I don't know exactly what's going on but this optimization is giving
me problems with the check-fast runner. I also don't see how it is
correct for external tags.
2011-09-07 10:32:58 -07:00
Brian Anderson
c047cfb710
Unwind the stack on task failure
...
When a task fails, we will throw an exception, then catch it at the bottom of
the stack.
On Windows we don't do this yet because the exception doesn't propagate
correctly.
No cleanups yet.
Issue #236
2011-09-07 10:32:58 -07:00
Brian Anderson
c337fd5467
Child tasks take a ref to their parents
...
This is so that when a child dies after the parent, it still holds a valid
pointer and can call supervisor->kill() safely.
2011-09-07 10:32:58 -07:00
Brian Anderson
25ae3d655c
Rewrite spawn yet again
...
The motivation here is that the bottom of each stack needs to contain a C++
try/catch block so that we can unwind. This is already the case for main, but
not spawned tasks.
Issue #236
2011-09-07 10:32:58 -07:00
Brian Anderson
bb08ffbaf4
Refactor task failure a bit
...
Issue #236
2011-09-07 10:32:58 -07:00
Marijn Haverbeke
1339d05434
Work around destructuring bug
2011-09-07 17:01:46 +02:00
Marijn Haverbeke
f3edf8dd5e
Make it possible to take the value of (and bind) native fns
...
Closes #820
2011-09-07 12:12:20 +02:00
Tim Chevalier
8ab02f7b21
Forbid blocks from deinitializing upvars
...
Move expressions where the RHS is an upvar are now forbidden within
block expressions.
2011-09-06 15:27:48 -07:00
Patrick Walton
d3e8887d3c
rt: Implement poison-on-free, for debugging memory issues
2011-09-06 14:15:01 -07:00
Brian Anderson
23210a3293
Remove unused runtime functions. Issue #855
2011-09-03 00:50:57 -07:00
Brian Anderson
470eb3a58b
Register new snapshots
2011-09-03 00:47:11 -07:00
Brian Anderson
1b67d211b4
Add a rust_str typedef to the runtime. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
01b254b411
Rename istr-stuff to str in the runtime. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
a1d71995ec
Rename istr-stuff to str in rustc. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
f1555e2ca8
Rename ty_istr to ty_str. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
6217ce958e
Print the type of istrs as 'str' in error messages. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
b16457627c
Stop parsing transitional istr forms. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
c8fba11bd3
Remove transitional code from combine-tests.py. Issue #855
2011-09-02 22:11:46 -07:00
Brian Anderson
5c49e4f4e9
Reformat. Issue #855
2011-09-02 22:11:42 -07:00
Tim Chevalier
b5f9053423
Add a constraint to trans::type_of
...
trans::type_of now has a constraint saying that its type argument
is statically sized. This eliminates the "impossible happened" case
in type_of. Yay!
I note that this change decreased translation time for stage2/rustc
from 16.1 s to 14.0 s. I also think many of the remaining checks
could be eliminated with some mildly clever use of constrained types
and further preconditions. Future work!
2011-09-02 19:35:17 -07:00
Tim Chevalier
bdd0417cec
Handle if-check with no else correctly in typestate
...
Propagate the if-check constraint into the consequent even when
there's no else branch. (Oops!)
2011-09-02 19:05:27 -07:00
Patrick Walton
b329324f71
rustc: Zero out unique pointers after we drop them
2011-09-02 17:51:28 -07:00
Brian Anderson
477c1bf6e1
Remove rustc::syntax::untyped_ast. Dead code
2011-09-02 16:40:59 -07:00
Brian Anderson
1e8200dadd
Rename std::vec::unsafe::ivec_repr to vec_repr. Issue #855
2011-09-02 15:13:41 -07:00
Brian Anderson
72c14d5a41
Eliminate const_refcount. Issue #855
2011-09-02 15:13:41 -07:00
Brian Anderson
99ee0fca67
Remove estrs and evecs from runtime. Issue #855
2011-09-02 15:13:41 -07:00
Patrick Walton
e68f687179
rustc: Root values spilled via do_spill()
2011-09-02 15:12:27 -07:00
Patrick Walton
00470fef12
rt: Remove evecs from the shape code
2011-09-02 10:49:03 -07:00
Patrick Walton
10ea787772
test: Add a test case for linearize_ty_params() and shapes
2011-09-02 10:39:05 -07:00
Patrick Walton
670b60f027
rustc: Make the shape-emitting code aware of linearized type parameters
2011-09-02 10:27:08 -07:00
Marijn Haverbeke
785c26f7f4
Rename ivecs to vecs in the compiler
2011-09-02 16:09:41 +02:00
Marijn Haverbeke
a0e2809f54
Remove remaining evec support from trans
2011-09-02 15:56:59 +02:00
Brian Anderson
9c173f17c0
Remove lots of estr code from rustc. Issue #855
2011-09-01 23:25:33 -07:00
Brian Anderson
1d3eb4911a
Remove #ifmt. Issue #855
2011-09-01 18:54:06 -07:00
Brian Anderson
418d09e547
Convert all uses of #ifmt to #fmt. Issue #855
2011-09-01 18:54:03 -07:00
Brian Anderson
b4b81117ce
Register new snapshots
2011-09-01 18:42:46 -07:00
Brian Anderson
6972f07510
Make #fmt and #ifmt synonymous. Issue #855
2011-09-01 17:56:25 -07:00
Brian Anderson
fc45eb785a
Use #env to get the rustc version again. Issue #855
2011-09-01 17:49:39 -07:00
Tim Chevalier
786963d33d
Add a constraint in trans
...
Experimenting with adding typestate constraints in the compiler.
Added a constraint to GEP_tag that says the variant index is in
bounds. Added necessary checks.
2011-09-01 17:41:10 -07:00
Brian Anderson
60d0a9227b
Do less work in run-pass/task-comm.rs
...
This test is not important enough to be taking so long
2011-09-01 17:33:39 -07:00
Brian Anderson
ab6bb035e5
Rename std::istr to std::str. Issue #855
2011-09-01 17:27:58 -07:00
Brian Anderson
913667ba25
Fix the error-patterns in 2 cfail tests. Issue #855
2011-09-01 17:19:36 -07:00
Brian Anderson
e35c021aa4
Parse "",str as istrs. Pretty print istrs as "",str. Issue #855
2011-09-01 16:53:53 -07:00
Brian Anderson
d8a833dccd
Convert some comm tests to istrs. Issue #855
...
These spawn thunks need to take move-mode strings to be correct
2011-09-01 16:53:53 -07:00
Tim Chevalier
e412652f00
Make GEP_tag take a uint instead of an int
...
Seems to make more sense and avoids the need for some casts.
2011-09-01 16:32:05 -07:00
Tim Chevalier
1f4f8d317c
Declare a bunch of int functions as pure
2011-09-01 16:32:05 -07:00
Tim Chevalier
ec763bba9c
Add a test that lambdas can't deinitialize upvars
2011-09-01 16:32:05 -07:00
Brian Anderson
e824775d53
Remove std::str. Issue #855
2011-09-01 16:09:15 -07:00
Brian Anderson
1b15c9e155
Remove estr conversion functions. Issue #855
2011-09-01 15:55:39 -07:00
Brian Anderson
f07a328c16
Convert rust_list_files to istrs. Issue #855
2011-09-01 15:51:47 -07:00
Brian Anderson
82634cd530
Convert rust_getcwd to istrs. Issue #855
2011-09-01 15:51:47 -07:00
Brian Anderson
372aa4d210
Factor out make_istr utility function in runtime. Issue #855
2011-09-01 15:51:47 -07:00
Tim Chevalier
3690f38d79
No, not all fn constraints have the same args as the fn does, in the same order...
...
derp!
Closes #862
2011-09-01 15:41:09 -07:00
Brian Anderson
1262df652f
Reduce the amount of locking in the kernel's memory region
...
The only thing here that really needs locking on malloc and free is
access to the allocation list, which is only used for TRACK_ALLOCATIONS.
Improves bench/task-perf-vector-party by 70%.
2011-09-01 14:20:43 -07:00
Brian Anderson
dabf1be226
Add a benchmark for cross-task kernel memory region synchronization
...
Vectors are allocated from the kernel's memory region, which has some heinous
synchronization. This is a stress test of vector allocation in many tasks.
2011-09-01 14:20:02 -07:00
Marijn Haverbeke
30447e1091
Remove misleading outdated comment in alias.rs
2011-09-01 22:37:52 +02:00
Marijn Haverbeke
458ac89894
Back out copy-glue
...
This wasn't a good idea after all.
2011-09-01 22:37:23 +02:00
Brian Anderson
ad3dcc0689
Remove the last use of istr::to_estr from rustc. Issue #855
2011-09-01 13:21:29 -07:00
Brian Anderson
8f531e769a
Convert rust_file_is_dir from estrs to cstrs. Issue #855
2011-09-01 13:16:44 -07:00
Brian Anderson
baa1e8790d
Check error code in rust_file_is_dir. Prevent comparison of uninitialized mem
2011-09-01 13:16:44 -07:00
Tim Chevalier
4951bb8bfc
Test for #876
...
This is the test case for #876 . Xfailed for now.
2011-09-01 13:12:59 -07:00
Brian Anderson
387903e702
Register new snapshots
2011-09-01 13:01:40 -07:00
Brian Anderson
91ea2577cd
Remove a few more istr conversions. Issue #855
2011-09-01 12:14:36 -07:00
Brian Anderson
7924368268
Allow istrs as patterns. Issue #855
2011-09-01 12:14:36 -07:00
Brian Anderson
4c25d81041
Remove some uses of str_buf builtin. Issue #855
2011-09-01 12:14:35 -07:00
Brian Anderson
bb56a75343
Convert main functions to istrs. Issue #855
2011-09-01 12:14:35 -07:00
Brian Anderson
3fe743bc9c
Remove various istr conversions. Issue #855
2011-09-01 12:14:34 -07:00
Brian Anderson
5ebe61cdda
Consolidate std::str tests into stdtest::str
2011-09-01 12:14:34 -07:00
Brian Anderson
d0c509ad1b
Remove a bunch of string builtins. Issue #855
2011-09-01 12:14:33 -07:00
Brian Anderson
a7bc386c53
Delete parts of std::str that are no longer exported. Issue #855
2011-09-01 12:14:33 -07:00
Brian Anderson
34d197de97
Remove last users of str::sbuf. Issue #855
2011-09-01 12:14:32 -07:00
Brian Anderson
b714150487
Remove more functions from std::str. Issue #855
2011-09-01 12:14:32 -07:00
Brian Anderson
6b22640a1f
Convert std::test to istrs. Issue #855
2011-09-01 12:14:31 -07:00
Brian Anderson
775b64c955
Remove the estr #fmt. Issue #855
2011-09-01 12:14:31 -07:00
Brian Anderson
a45068cf27
Convert fs::path_is_absolute internals to istrs. Issue #855
2011-09-01 12:14:30 -07:00
Patrick Walton
cc08fd1ef9
rt: Allow iteration over the dynastack
2011-09-01 11:47:59 -07:00
Patrick Walton
9d00ef9a46
rt: Make logging more resilient to null vector pointers (useful when debugging GC)
2011-09-01 11:47:58 -07:00
Patrick Walton
bbac2dd768
rt: Make debug string in rust_obstack slightly prettier
2011-09-01 11:47:58 -07:00
Patrick Walton
83ac32e8aa
rt: Zero out dynamic allocas for now
2011-09-01 11:47:58 -07:00
Patrick Walton
a6c14964c8
rt: Include rust_shape.h in rust_obstack.cpp and remove the duplicate DPRINT() macro
2011-09-01 11:47:58 -07:00
Patrick Walton
156bc7f012
rt: Add a missing FIXME to rust_obstack.cpp for segmented stacks
2011-09-01 11:47:58 -07:00
Patrick Walton
876142f051
rt: Remove duplicate DPRINT() macro from rust_gc.cpp
2011-09-01 11:47:58 -07:00
Patrick Walton
60137273d2
rt: Disable debug spew in rust_shape
2011-09-01 11:47:58 -07:00
Marijn Haverbeke
fb196e6ef1
Make alias analysis properly recognize closures in call position
...
I figured this'd break a few things, but in fact it causes no problems
whatsoever.
2011-09-01 16:38:30 +02:00
Marijn Haverbeke
6ba4eacddf
Make resolve recognize upvars
...
Upvars are now marked with def_upvar throughout, not just when going
through freevars::lookup_def. This makes things less error-prone. One
thing to watch out for is that def_upvar is used in `for each` bodies
too, when they refer to a local outside the body.
2011-09-01 16:32:44 +02:00
Marijn Haverbeke
2d1dec78e7
Move mutability checking into its own pass.
...
Having it in the alias pass was slightly more efficient (finding
expression roots has to be done in both passes), but further muddled
up the already complex alias checker.
Also factors out some duplication in the mutability-checking code.
2011-09-01 16:32:38 +02:00
Marijn Haverbeke
34ae491ca9
Store arg mode and objfield mutability in their def
2011-09-01 16:32:38 +02:00
Marijn Haverbeke
9ba3fe5e40
Clean up handling of restriction contexts in alias analysis
2011-09-01 09:45:55 +02:00
Brian Anderson
91f05fba11
Reexport std::str::alloc. Windows still needs this. Issue #855
2011-08-31 21:15:08 -07:00
Erick Tryzelaar
b199e9da92
Expose STDERR to rust.
2011-08-31 20:40:00 -07:00
Patrick Walton
614a930c51
rt: Make the dynamic stack self-describing
2011-08-31 19:19:05 -07:00
Patrick Walton
729437d2c0
rt: Set n_params appropriately in upcall_get_type_desc
2011-08-31 18:03:12 -07:00
Brian Anderson
53a9d5a1d2
Start paring down std::str. Issue #855
2011-08-31 16:24:09 -07:00
Brian Anderson
cb55ef6e12
Convert benchmarks to istrs. Issue #855
2011-08-31 16:24:08 -07:00
Brian Anderson
04700066f3
Convert fuzzer to istrs. Issue #855
2011-08-31 16:24:08 -07:00
Brian Anderson
81b31429e4
Remove more uses of str from std::run. Issue #855
2011-08-31 16:24:08 -07:00
Brian Anderson
1772ee3c43
Remove a few more usages of std::str from rustc. Issue #855
2011-08-31 16:24:08 -07:00
Patrick Walton
dc6f78561c
rt: Prevent trailing commas from showing up when logging oddly aligned arrays
2011-08-31 16:22:19 -07:00
Patrick Walton
dfcbfa61f3
rt: Introduce "end_dp" bailouts in order to avoid marching past the end of oddly aligned vectors
2011-08-31 16:02:17 -07:00
Patrick Walton
143569fce4
rt: Make |align| a member of the shape glue class instead of threading it through every function
2011-08-31 15:25:32 -07:00
Michael Sullivan
03ddc8fdd3
Don't check arguments types if there are an incorrect number of args. Closes #871 .
2011-08-31 16:46:46 -04:00
Michael Sullivan
7c02517f75
Check all paths return properly in blocks. Closes #874 .
2011-08-31 16:15:02 -04:00
Michael Sullivan
722fa00681
Get rid of the hack that ignores () typed things in fn tail position.
...
Closes #868 . Unfortunately, this causes certain invalid programs to
fail type-checking instead of failing type-state when a type-state
error message would probably be more intuitive. (Although, by any
reasonable interpretation of the static semantics, it technically
ought to be a type error.)
2011-08-31 16:01:25 -04:00
Brian Anderson
498e38b705
Convert uses of #fmt to #ifmt. Issue #855
2011-08-31 11:44:06 -07:00
Michael Sullivan
959938e891
Produce the start of an immutable treemap.
2011-08-31 14:10:15 -04: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
Brian Anderson
c36d29c1dc
Register new snapshots
2011-08-31 00:44:40 -07:00
Brian Anderson
be2ad97a61
Allow main to take istrs. Issue #855
2011-08-30 23:57:09 -07:00
Brian Anderson
4007006574
Convert compiletest to istrs. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
eb70267e5e
Convert #env to istrs. Temporarily disable usage in rustc. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
04928ed3f0
Add a FIXME about the bogosity of aio::ip_to_sbuf
2011-08-30 21:08:07 -07:00
Brian Anderson
c94d4cff03
Convert std::net to istrs. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
0abec867c3
Support istrs as fail argument. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
4c936d7992
Add #ifmt extension, like #fmt but for istrs. Issue #855
2011-08-30 21:08:07 -07:00
Brian Anderson
9e2c5f77a4
Remove the %S istr conversion from #fmt
...
I want to do the #fmt transition a different way. Issue #855
2011-08-30 21:08:07 -07:00
Patrick Walton
fc0212a63b
rt: Override the character interpretation of u8/i8 values when logging
2011-08-30 19:34:27 -07:00
Patrick Walton
c6a47e4087
rustc: Hoist derived tydesc GC roots up to the top of the function so the GC doesn't try to access uninitialized tydescs
2011-08-30 17:46:56 -07:00