Brian Anderson
5c38f7dfd7
Don't allow fn@ items
...
fn@ is intended to be caputring but isn't implemented.
2011-10-20 18:23:48 -07:00
Brian Anderson
9efdd0f326
Merge ast::proto_shared and ast::proto_closure
...
Now they are both just proto_shared and proto_shared takes an
argument indicating that it is sugared as 'lambda'
2011-10-20 18:23:48 -07:00
Brian Anderson
4b30a06abe
Rename ast::proto_fn to ast::proto_shared
2011-10-20 18:23:48 -07:00
Brian Anderson
29ad3bdb10
Make fn denote a bare function. Convert fn to fn@ as needed
2011-10-20 18:23:48 -07:00
Brian Anderson
f324704c0a
Parse obj methods as proto_bare
...
I don't know if this is the right thing to do, but it works
and it lets 'fn' always mean proto_bare
2011-10-20 18:23:48 -07:00
Brian Anderson
391e12124b
Tweak typecheck to enforce covariance on higher-order function arguments
2011-10-20 18:23:48 -07:00
Brian Anderson
342a400e79
Remove type coercion from fn to block
...
fn is a proper subtype of block now
2011-10-20 18:23:48 -07:00
Brian Anderson
8136b92ee8
Give subtype relationships to function types
2011-10-20 18:23:48 -07:00
Brian Anderson
ed985b61d5
Bare functions can coerce to blocks
2011-10-20 18:23:48 -07:00
Brian Anderson
354bfc8292
Bare functions can coerce to shared closures
2011-10-20 18:23:48 -07:00
Brian Anderson
3bb020aaf8
Revert "Remove the environment argument from bare functions"
...
This reverts commit 1b0f1f0b79
.
2011-10-20 18:23:48 -07:00
Brian Anderson
070c39ca1d
Split parsing of fn proto between types, items and anons
...
The meaning of various fn incantations is going to get temporarily confusing
2011-10-20 18:23:47 -07:00
Brian Anderson
686d6a485f
Drop the 2 from the spawn*2 functions
...
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
e0bba33caa
Rename std::task::spawn_inner to unsafe_spawn_inner
...
Delete the rest of the old, unused spawn functions.
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
446aea11d0
Stop exporting unsafe spawn functions
...
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
3b54dcfa79
Convert the test runners to typesafe spawn
...
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
1abebf042a
Convert std::aio to new spawn functions
...
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
a4956a7cdd
XFAIL task-perf-word-count-generic
...
This can't be done with bare functions.
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
ac671c3172
Convert tests to use bare-fn spawn
...
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
4341e50e3a
Add safe versions of spawn using bare functions
...
Currently they just wrap the unsafe versions. Will need to be rewritten
eventually.
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
034408c40a
Convert DPRINT to LOG in rust_cc.cpp and add more logging
2011-10-20 18:19:06 -07:00
Brian Anderson
dcee98b024
Un-xfail-fast some tests
...
check-fast is more reliable now.
2011-10-20 16:01:24 -07:00
Brian Anderson
28161fcf3c
Change run-pass/lots-a-fail.rs from xfail-fast to xfail-win32
...
All failing tasks leak on windows now
2011-10-20 16:00:13 -07:00
Brian Anderson
0714bb5f7d
Fix the problem with check-fast randomly failing
...
Trans has been assuming that tag node id's are unique across crates and they
are not so, depending on which way the wind is blowing, it would choose to use
a crate-local tag variant instead of the correct one from std.
No test case since I can't come up with a reliable one that compiles in a
reasonable amount of time.
2011-10-20 15:38:51 -07:00
Marijn Haverbeke
f8f1d950ef
Register new snapshots
2011-10-20 17:36:29 +02:00
Marijn Haverbeke
ba1c6fcf38
Remove the last vestiges of main.ll
...
Closes #992
2011-10-20 17:36:28 +02:00
Marijn Haverbeke
ef63f09dcd
Don't rely on main.ll anymore
...
I'll remove the actual file after I register a snapshot.
Issue #992
2011-10-20 17:18:38 +02:00
Marijn Haverbeke
cff9c67674
Output linker errors, when linking fails
2011-10-20 15:30:27 +02:00
Marijn Haverbeke
8124846b2c
Get rid of taskpointer-passing throughout the compiler
...
Only intrinsics still take a dummy taskptr. We'll have to do some
makefile stunts to snapshot a version without taskptrs-in-intrinsics.
Issue #466
2011-10-20 14:22:17 +02:00
Marijn Haverbeke
457683c7fe
Do not pass taskpointers to "rust" native functions
...
Issue #466
2011-10-20 14:22:17 +02:00
Marijn Haverbeke
6323a012bd
Remove taskptr argument from upcalls
...
Issue #466
2011-10-20 13:15:21 +02:00
Marijn Haverbeke
e927df17f7
Remove spawn_wrap and main_wrap kludges
...
This isn't needed now that our functions are cdecl (and was apparently
only still working by accident).
Issue #992
2011-10-20 13:15:09 +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
Brian Anderson
880b1ec9f5
Fail nicer when the parser doesn't find an expected string literal
...
Closes #1028
2011-10-19 18:04:44 -07:00
Matt Brubeck
15d33f7957
Fix parse error in constrained-type-missing-check.rs
2011-10-18 16:42:00 -07:00
Brian Anderson
f70a894855
Register snapshots
2011-10-18 12:08:15 -07:00
Brian Anderson
ac276f7016
Introduce fn@ as a synonym for fn
2011-10-18 11:14:02 -07:00
Brian Anderson
314c011d71
Immutable and mutable? are covariant on their inner types
...
Whereas [mutable T] is invariant with respect to T, [T] and [mutable? T]
are covariant with respect to T.
2011-10-18 10:37:04 -07:00
Marijn Haverbeke
71a4a66135
Add a math module to the standard lib
...
I need some rudimentary stdlib stuff for the tutorial.
Closes #1042
2011-10-18 13:54:35 +02:00
Marijn Haverbeke
d9d0782b5f
Don't try to build an LLVM switch on floats
...
Closes #1046
2011-10-18 13:54:35 +02:00
Marijn Haverbeke
3cabe7429f
Add a print and println to std::io
2011-10-18 13:06:47 +02:00
Brian Anderson
0f0fa26c72
Enforce variance rules for mutable types
2011-10-17 20:51:34 -07:00
Brian Anderson
48d351b21e
Add a variance transform for calculation of recursive variance
2011-10-17 19:37:34 -07:00
Brian Anderson
d6613384fd
Introduce covariance, contravariance and invariance to the type unifier
...
This will be used to resolve some problems with mutable? covariance and also
to implement function subtyping
2011-10-17 19:34:12 -07:00
Brian Anderson
b61578e1cd
Don't unify from mutable? to immutable
...
Immutable is supposed to be a subtype of mutable-huh.
2011-10-17 16:36:49 -07:00
Brian Anderson
f7a825c614
Split record_var_binding into methods for expected and actual
...
This allows unify to maintain the same subtype relationship between
expected and actual throughout unify, which we are going to need
for mutable? and for function types.
2011-10-17 16:36:49 -07:00
Brian Anderson
1a64153b24
Correct two more analyses of mutable? as mutable
...
I can't come up with test cases but this seems correct.
2011-10-17 16:35:33 -07:00
Brian Anderson
4d9d889dbf
Don't allow assignment to mutable-wha?
2011-10-17 16:35:33 -07:00
David Rajchenbach-Teller
454333368c
[Lib] int.rs, uint.rs: added max_value, min_value
2011-10-17 11:22:57 -07:00
David Rajchenbach-Teller
064f9dd93e
[Lib] uint.rs: +min_value
2011-10-17 11:22:57 -07:00
David Rajchenbach-Teller
a85e035038
[Lib] rand.rs: type rng now defines next_float
2011-10-17 11:22:57 -07:00
David Rajchenbach-Teller
eba88ef3ea
[Lib] u32.rs: created
2011-10-17 11:22:57 -07:00
David Rajchenbach-Teller
27ca86a853
[Lib] u8.rs, u64.rs: +min_value, max_value
2011-10-17 11:22:57 -07:00
Brian Anderson
007422cc04
Change the linkage order on linux and add -ldl
...
-lrt and -ldl need to be specified after -lrustrt since they are only used by
rustrt.
2011-10-17 10:41:22 -07:00
Brian Anderson
b42e551285
Only link librt on linux
2011-10-16 02:36:42 -07:00
Haitao Li
ad5014bf4c
Fix link error by explicitly link needed DSOs
...
Building Rust(version 280bc56
) on Ubuntu 11.10 failed with link error,
like:
compile_and_link: stage0/lib/rustc/i686-unknown-linux-gnu/lib/libstd.so
compile_and_link: stage0/lib/rustc/i686-unknown-linux-gnu/bin/rustc
/local/src/rust/build/stage0/lib/rustc/i686-unknown-linux-gnu/lib/librustrt.so:
undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
error: linking with gcc failed with code 1
GCC toolchain released by Ubuntu 11.10 introduced a few compiler flags
that are different with upstream GCC[1]. Flags "-Wl,--as-needed' and
'-Wl,--no-copy-dt-needed-entries' are passed by default.
Function clock_gettime from librt is used by librustrt, indirectly by
rustc. It is necessary to explicitly pass the "-lrt" flags when building
rustc.
Please note since the toolchain changes will be the default in the next
release(2.22) of binutils, this is not actually a Debian/Ubuntu specific
issue.
1. https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes#GCC_4.6_Toolchain
Signed-off-by: Haitao Li <lihaitao@gmail.com>
2011-10-16 17:12:30 +08:00
Elly Jones
a5dc6a7aa8
Update LinkModules invocation to use new prototype
...
LLVM revision 141606 changes the prototype of llvm::Linker::LinkModules.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-10-15 15:53:18 -07:00
Marijn Haverbeke
0a01144797
Use trans_expr_save_in instead of trans_expr when appropriate
...
This guards against passing a save_in destination to nil or bot-typed things.
2011-10-14 11:27:16 +02:00
Marijn Haverbeke
06257d66e7
Don't crash when reporting an unresolved import in the nil scope
...
Closes #1027
2011-10-14 11:25:14 +02:00
Brian Anderson
3808a498cd
Remove an unnecessary visitor from rustc::middle::fn_usage
2011-10-13 14:55:50 -07:00
Brian Anderson
acf9b83e71
Fix a use of visit in rustc::middle::fn_usage
...
This was working by just skipping an AST node instead of doing the advertised
check. I can't find a test case for it, but this is more correct.
2011-10-13 14:55:47 -07:00
Brian Anderson
bc4c3df1bf
Don't allow the value of generic bare functions to be taken
...
Issue #1038
2011-10-13 14:39:30 -07:00
Brian Anderson
89466ffd74
Rename rustc::middle::unsafeck to fn_usage
...
I'm going to add further checks unrelated to unsafe.
Issue #1038
2011-10-13 12:25:57 -07:00
Brian Anderson
60cfa91897
Add a test that generic bare functions can be bound
...
Issue #1022
2011-10-13 12:16:26 -07:00
Marijn Haverbeke
6a7800508b
Make trans_anon_obj properly thread its bcx
...
Closes #893
Unfortunately, anon objs are still so broken as to be useless
(fields don't work).
2011-10-13 18:04:09 +02:00
Marijn Haverbeke
e4c91fdf65
Properly fill single-variant zero-arg tag values.
...
Closes #1034 . Closes #1035 .
2011-10-13 15:14:09 +02:00
Brian Anderson
6e67c4b253
Cleanse usage of some unsafe functions on win32
2011-10-12 16:42:13 -07:00
Niko Matsakis
e8a0e592da
reimplement some of the unsafe stuff which got lost
...
- blocks inherit unsafety
- remove the --check-unsafe flag
- add unsafe annotations where needed to get things to compile
2011-10-12 16:33:07 -07:00
Niko Matsakis
f994871a3d
remove unsafe tags
2011-10-12 16:33:07 -07:00
Niko Matsakis
5b015288b5
new test
2011-10-12 16:33:07 -07:00
Niko Matsakis
215b1ab000
make compiler emit more than 1 error in the case of unsafe
2011-10-12 16:33:07 -07:00
Niko Matsakis
3b66806624
prohibit ptr deref unless in unsafe code
2011-10-12 16:33:07 -07:00
Niko Matsakis
a56698575c
fix error msg
2011-10-12 16:33:07 -07:00
Niko Matsakis
e8a29fbe3c
add some new tests
2011-10-12 16:33:07 -07:00
Niko Matsakis
70164739e8
convert a few tests from unsafe fns to fns with unsafe bodies
2011-10-12 16:33:07 -07:00
Niko Matsakis
9f9deff7af
make a good error msg if you try to use an unsafe fn for a test
2011-10-12 16:33:07 -07:00
Niko Matsakis
b1a9d71218
improve the span used in test generation
2011-10-12 16:33:07 -07:00
Niko Matsakis
81533ff737
add pass to check that unsafe fns cannot be used as values
2011-10-12 16:33:06 -07:00
Niko Matsakis
e39db5a100
all tests pass
2011-10-12 16:33:06 -07:00
Niko Matsakis
db16fce77f
all tests pass
2011-10-12 16:33:06 -07:00
Niko Matsakis
85da98db4a
continue to annotate functions as unsafe where neccessary
2011-10-12 16:33:06 -07:00
Niko Matsakis
f2cd33df72
continue to annotate trans functions as unsafe where neccessary
2011-10-12 16:33:06 -07:00
Niko Matsakis
2094668949
continue to annotate trans functions as unsafe where neccessary
2011-10-12 16:33:06 -07:00
Niko Matsakis
d4d7eb069b
add unsafe tags into various points in the translation chains
...
and so forth
2011-10-12 16:33:06 -07:00
Niko Matsakis
c1cefa52d0
Add unsafe tags to usage of LLVM funcs
2011-10-12 16:33:06 -07:00
Niko Matsakis
8ea1a8eef9
make treatment of unchecked/unsafe blocks more uniform
...
also repair various errors in the parser related to such blocks.
rename checked_blk to default_blk to reflect the fact that it
inherits its purity from the surrounding context.
2011-10-12 16:32:57 -07:00
Brian Anderson
8366f3caa3
Revert "Test for #954 "
...
This reverts commit 7edb043889
.
2011-10-12 15:53:54 -07:00
Brian Anderson
7edb043889
Test for #954
2011-10-12 15:53:15 -07:00
Brian Anderson
a1d046c75c
Register snapshots
2011-10-12 15:44:00 -07:00
Brian Anderson
40fa88febb
Ignore stdtest::os::test_setenv. Fails periodically on mac
2011-10-12 15:27:58 -07:00
Niko Matsakis
212707ce84
make native functions markable as unsafe and incorporate that
...
into the type check
2011-10-12 14:39:34 -07:00
Niko Matsakis
24b201fa48
skip test, remove whitespace
2011-10-12 14:39:34 -07:00
Niko Matsakis
b9a9559c91
correct lines over 78 chars
2011-10-12 14:39:34 -07:00
Niko Matsakis
f3c68e7238
enable unsafe checking but only with a flag --check-unsafe
2011-10-12 14:39:34 -07:00
Niko Matsakis
cbe8da0655
make treatment of unchecked/unsafe blocks more uniform
...
also repair various errors in the parser related to such blocks.
rename checked_blk to default_blk to reflect the fact that it
inherits its purity from the surrounding context.
2011-10-12 14:39:24 -07:00
Niko Matsakis
e9569371f7
add 'u' to one other place it was missing
2011-10-12 14:26:47 -07:00
Niko Matsakis
f304c1bee5
add 'u' to decoder (kinda' important)
2011-10-12 14:26:47 -07:00
Niko Matsakis
8c1231ae5f
fix test to include a main() function
2011-10-12 14:26:47 -07:00
Niko Matsakis
d207bc3a0b
it is also legal to call unsafe functions from other unsafe functions
2011-10-12 14:26:47 -07:00
Niko Matsakis
046ca827dd
Add unsafe blocks, unsafe functions, and two rudimentary tests
...
related to them
2011-10-12 14:26:47 -07:00
Niko Matsakis
29584cc5ac
Extend the unchecked block stuff to allow unsafe blocks as well.
2011-10-12 14:26:47 -07:00
Niko Matsakis
58b8e88356
expand purity to include unsafe
2011-10-12 14:26:47 -07:00
Niko Matsakis
9476692b52
move ctags.rust into src/etc
2011-10-12 13:57:32 -07:00
Brian Anderson
99f876e3a8
Make build_environment and trans_bind_thunk GEP bound arguments the same
...
These functions both use GEP_tup_like to get at the arguments bound to the
environment, but they were starting from a different 'level' of the
environment-box structure. Frighteningly, this was leading to them having
different opinions of how the bound arguments were aligned in some cases.
2011-10-12 12:11:07 -07:00
Marijn Haverbeke
306f7fb25f
Simplify copying of uniques
...
We can call take glue, rather than duplicating it inline.
2011-10-12 11:05:20 +02:00
David Rajchenbach-Teller
75bda422df
[Tests] added float tests
2011-10-12 10:56:05 +02:00
David Rajchenbach-Teller
8c9dd54ded
[Renaming] str_to_float is now float::from_str, float_to_str is now float::to_str
2011-10-12 10:56:05 +02:00
David Rajchenbach-Teller
7faed3d87c
[Fix] float.rs: str_to_float reimplemented
2011-10-12 10:56:05 +02:00
David Rajchenbach-Teller
3219c40e18
[Optim] int.rs: reimplemented pow with fast exponentiation
2011-10-12 10:56:05 +02:00
Lindsey Kuper
0d43e90172
Revert "Merge pull request #1025 from elly/master"
...
This reverts commit e12e76e9ba
, reversing
changes made to f480203fdd
.
2011-10-11 22:23:47 -04:00
Lindsey Kuper
813c2eb369
Revert "Revert "Add a test case for #898 . Closes #898.""
...
This reverts commit e305ab3851
.
Oops again. Reverting a mistaken revert.
2011-10-11 22:03:23 -04:00
Lindsey Kuper
e305ab3851
Revert "Add a test case for #898 . Closes #898."
...
This reverts commit f480203fdd
.
Oops. This patch requires people to bump their LLVM version.
2011-10-11 22:00:17 -04:00
Elly Jones
19eae0bc38
Update LinkModules invocation to use new prototype
...
LLVM revision 141606 changes the prototype of llvm::Linker::LinkModules.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-10-11 21:32:34 -04:00
Brian Anderson
f480203fdd
Add a test case for #898 . Closes #898 .
...
Seems to have been fixed.
2011-10-11 16:50:50 -07:00
Brian Anderson
55379a97d4
Use the correct function type for external bare functions
...
Issue #1022
2011-10-11 15:12:49 -07:00
Brian Anderson
d8fb86d2e3
Register snapshots
2011-10-11 15:01:27 -07:00
Brian Anderson
cfa2346086
Use a non-ambiguous character for encoding bare functions
...
I was using 'R' and that was already used for records.
Issue #1022
2011-10-11 14:38:15 -07:00
Brian Anderson
8c77d063a9
Add a test for assignment of bare functions
...
Issue #1022
2011-10-11 13:40:31 -07:00
Brian Anderson
b04f84275a
Add a test that bare functions are word-sized
...
Issue #1022
2011-10-11 13:40:28 -07:00
Brian Anderson
90c2402089
Add a test that uses a hypothetical bare-fn spawn signature
...
Issue #1022
2011-10-11 12:10:56 -07:00
Brian Anderson
1b0f1f0b79
Remove the environment argument from bare functions
...
Issue #1022
2011-10-11 10:51:10 -07:00
Brian Anderson
84e98f4f65
Add a test for higher-order bare functions
...
Issue #1022
2011-10-11 10:51:10 -07:00
Brian Anderson
145feb3298
Add a test for binding bare functions
...
Issue #1022
2011-10-11 10:51:10 -07:00
Brian Anderson
5b0f79b75a
Don't allow bind to produce bare functions
...
Issue #1022
2011-10-11 10:51:10 -07:00
Brian Anderson
b277039325
Introduce ast::proto_bare
...
Issue #1022
2011-10-11 10:51:10 -07:00
Brian Anderson
9c46cc58cb
Add a temporary syntax for bare functions
...
Bare functions will be represented as 'fn#' until they're implemented. Then
we'll switch it over to just 'fn'.
Issue #1022
2011-10-11 10:51:09 -07:00
David Rajchenbach-Teller
2ec85135e2
[Move] Moved str_to_float, float_to_str from compiler to lib
2011-10-11 16:41:34 +02:00
Marijn Haverbeke
33167f7dec
Adjust function signatures to allow for vecs being immediate
...
Some code was relying on vectors being implicitly by-reference (as
non-immediate value). This adds the necessary &&-sigils.
Closes #1021
2011-10-10 16:01:51 +02:00
Marijn Haverbeke
b4bae8fea5
Make vectors and strings immediates again
...
There's no good reason to force them to be spilled anymore. Some
pieces of trans become more elegant this way, and less stack allocs
and load/stores are needed.
Issue #1021
2011-10-10 15:59:16 +02:00
Marijn Haverbeke
5c53959f20
Make bcx_tcx-style accessors return by reference
2011-10-10 12:25:58 +02:00
Marijn Haverbeke
00daeb485c
Move type_is_immediate into ty.rs
2011-10-10 12:23:58 +02:00
Marijn Haverbeke
a35dbf3fd5
Don't spill immediates in order to drop them
...
Issue #1012
2011-10-10 12:20:28 +02:00
Marijn Haverbeke
fa1295343f
Make free glue take a pointer to the heap part (box)
...
This way, it can be used to drop values without first spilling them.
Issue #1012
2011-10-10 10:25:32 +02: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
ecfa37d336
Register snapshots
2011-10-09 15:23:34 -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
Marijn Haverbeke
aff536ec0e
Fix bad float-type detection in trans
...
Closes #1017
2011-10-09 10:07:10 +02:00
Brian Anderson
79e9f7a015
Make windows package uninstallable
2011-10-07 14:09:29 -07:00
Brian Anderson
fed56b07ba
Make windows packaging work again
2011-10-07 13:48:20 -07:00
Marijn Haverbeke
1efe5f0577
Fix up test for last commit
2011-10-07 16:58:27 +02:00
Marijn Haverbeke
f26e770745
Make 1-1 parse again
...
Issue #954
This is not a very elegant fix -- we should probably do something with
constant folding to handle negative-int alt patterns in the future.
2011-10-07 16:46:44 +02:00
Marijn Haverbeke
c7eee8fb05
Stop registering cleanups for types that don't need them
2011-10-07 14:46:23 +02:00
Marijn Haverbeke
31586339b1
Make it possible to have locals that don't live on the stack
...
Local values that are not mutated, don't need to be cleaned up, and
are immediate, don't need to be spilled. (All immediate args, and
non-pointer immediate let locals.)
2011-10-07 14:43:19 +02:00
Marijn Haverbeke
7586082bb0
Add tests for programs that are invalid by arg-passing-style
...
Closes #1008
2011-10-07 10:41:40 +02:00
Marijn Haverbeke
8db71530f5
Forbid passing dynamically-sized types by value
...
Issue #1008
2011-10-07 10:41:40 +02:00
Marijn Haverbeke
2ff89469d4
Actually pass parameters specified as by-val by value
...
Issue #1008
2011-10-07 10:41:40 +02:00
Marijn Haverbeke
41528dc543
Add pass-by-ref annotation to the tests to make them typecheck
...
Issue #1008
2011-10-07 10:41:39 +02:00
Marijn Haverbeke
fe916fb9f0
Give up on providing a by-value version of map, convert fold over to
...
passing pointers by ref
Issue #1008
2011-10-07 09:56:12 +02:00
Marijn Haverbeke
f9fbd86f52
Parse and typecheck by-value and by-ref arg specs
...
Add sprinkle && throughout the compiler to make it typecheck again.
Issue #1008
2011-10-07 09:09:50 +02:00
Brian Anderson
ed5a962d6f
Hopefully make test_prefix_rpath_abs work on win32
2011-10-06 16:39:34 -07:00
Brian Anderson
831d861d84
Mac uses @executable_path instead of $ORIGIN
2011-10-06 16:26:32 -07:00
Brian Anderson
5cd6dbd5b9
Always use an absolute path for the backup install prefix rpath
2011-10-06 16:12:45 -07:00
Brian Anderson
04e89af6db
Add std::str::contains
2011-10-06 16:08:44 -07:00
Brian Anderson
4b58071f96
Stop using (DY)LD_LIBRARY_PATH on Unix
2011-10-06 15:23:20 -07:00
Brian Anderson
a1e4ab3e38
Register snapshots
2011-10-06 15:11:30 -07:00
Brian Anderson
e4068f6715
Mac doesn't seem to support rpath $ORIGIN
2011-10-06 14:29:03 -07:00
Brian Anderson
06087e67e1
Configure out rpath tests when not testing
2011-10-06 13:29:36 -07:00
Brian Anderson
4b9e572044
Remove an unnecessary linking flag. Add comments about linking
2011-10-06 13:16:16 -07:00
Brian Anderson
062ba22d99
rpathing is based on the target, not host OS
2011-10-06 13:12:11 -07:00
Brian Anderson
d8a85f0758
Make rpath work on mac
2011-10-06 13:09:00 -07:00
Marijn Haverbeke
9c037d2194
Revert "rustc: Add a workaround for a segfault with --time-passes (issue #1005 )."
...
This reverts commit 100e0264b2
.
2011-10-06 16:12:47 +02:00
Marijn Haverbeke
8ee017add4
Register new snapshot
2011-10-06 10:56:07 +02:00
Marijn Haverbeke
6a4270523e
Ignore && and + before argument names.
...
Issue #1008
2011-10-06 10:16:52 +02:00
Marijn Haverbeke
39b468e17a
Fix problem with polymorphic return value being instantiated as nil
...
Closes #1005
2011-10-06 09:40:56 +02:00
Brian Anderson
e6d7b0cff3
Register snapshots
2011-10-05 18:15:45 -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
Patrick Walton
cf3e7f2f0b
stdlib: Add a void type
2011-10-05 16:33:17 -07:00
Brian Anderson
00a81a22a8
Add more valgrind suppressions for __libc_freeres
...
Somehow these started showing up on the tinderbox
2011-10-05 16:21:56 -07:00
Brian Anderson
8215ffc822
rpath all the things!
2011-10-05 16:21:56 -07:00
Brian Anderson
ee8e058004
Add a FIXME about test exports to rustc: 🔙 :rpath
2011-10-05 16:21:56 -07:00
Brian Anderson
2f340a4d3d
rpath the path to the runtime
...
We don't currently rpath native libs, but we do know where rustrt is
located and everything needs to link to it.
2011-10-05 16:21:55 -07:00
Brian Anderson
3d5471f6ab
Fix some remaining rpath bugs
2011-10-05 16:21:55 -07:00
Brian Anderson
82ef8519c3
Fix some path handling in std::fs on win32
2011-10-05 16:21:55 -07:00
Brian Anderson
8b4601e08e
Figure out the relative path from output to each crate
2011-10-05 16:21:55 -07:00
Brian Anderson
19ba9b4d8d
Begin work on rpath
2011-10-05 16:21:55 -07:00
Niko Matsakis
61c9c46d94
remove pthread_exit() from rust_start()
...
It was causing OS X Lion to hang and (according to Apple) is undefined
in any case
2011-10-05 16:10:36 -07:00
Patrick Walton
100e0264b2
rustc: Add a workaround for a segfault with --time-passes (issue #1005 ).
2011-10-05 14:35:30 -07:00
Marijn Haverbeke
142f63fe78
Tie up the last ends in destination-passing-conversion
...
Closes #667
2011-10-05 12:23:18 +02:00
Marijn Haverbeke
3bc3f96138
Make trans_lval lval-only
...
Call trans_temp_lval if you want the old fallback-to-temporary behaviour.
Issue #667
2011-10-05 11:51:41 +02:00
Marijn Haverbeke
2cc0008ec0
Add trans_temp_expr for what used to be trans_expr, rename t_e_dps to trans_expr
...
Issue #667
2011-10-05 11:26:27 +02:00
Marijn Haverbeke
975ac55b3d
Lose the by_ref destination style
...
It's not needed.
Issue #667
2011-10-05 10:41:30 +02:00
Marijn Haverbeke
babd1ff3c7
Revert "Revert "Reorganize translation of expr_field""
...
This reverts commit 11e407aaa9
.
2011-10-05 10:21:57 +02:00
Marijn Haverbeke
c33e61e75c
Revert "Revert "Get rid of 'overwrite' destination kind""
...
This reverts commit ce9e0fc94f
.
2011-10-05 10:21:48 +02:00
Marijn Haverbeke
062aa3272c
Revert "Revert "Move trans_call to destination_passing style""
...
This reverts commit 276dfc6133
.
2011-10-05 10:21:40 +02:00
Brian Anderson
1f2e999262
Use std::os::get_exe_path to determine sysroot
2011-10-04 21:35:06 -07:00
Brian Anderson
1391154b14
Use util::filesearch to locate intrinsics.bc and main.o
2011-10-04 21:35:06 -07:00
Brian Anderson
ebcc76d68d
Move the library search into util::filesearch
2011-10-04 21:35:06 -07:00
Brian Anderson
b25e78524c
Fix some comment drift
2011-10-04 21:35:06 -07:00
Brian Anderson
33ee73102d
Remove some redundancy in metadata::creader
2011-10-04 21:35:06 -07:00
Brian Anderson
d91b7b61ef
Encapsulate current sysroot and lib path handling into util::filesearch
2011-10-04 21:35:06 -07:00
Brian Anderson
a8ce543dc9
Add std::os::get_exe_path
...
Need this to correctly determine sysroot in rustc
2011-10-04 21:35:06 -07:00
Brian Anderson
a0a4d34e14
Add std::ctypes
2011-10-04 21:35:06 -07:00
Brian Anderson
2124839cd7
Hide unused variable warnings in stdtest::treemap
2011-10-04 21:35:06 -07:00
Brian Anderson
6f5a0c7500
Add std::fs::normalize
2011-10-04 21:22:03 -07:00
Brian Anderson
51ae30287b
Add std::fs::split
2011-10-04 20:18:04 -07:00
Patrick Walton
0e5ea4d64f
Revert "stdlib: Migrate rust_file_is_dir() over to the C stack, and add a void type" due to build bustage on Windows
...
This reverts commit 9698ef89a0
.
2011-10-04 18:24:30 -07:00
Patrick Walton
9698ef89a0
stdlib: Migrate rust_file_is_dir() over to the C stack, and add a void type
2011-10-04 18:20:22 -07:00
Patrick Walton
990233eb3d
rustc: Allow calling native functions on the C stack that take generic arguments. They get turned into i8 pointers.
2011-10-04 17:41:57 -07:00
Patrick Walton
276dfc6133
Revert "Move trans_call to destination_passing style"
...
This reverts commit 6e56ec0066
.
2011-10-04 17:05:35 -07:00
Patrick Walton
ce9e0fc94f
Revert "Get rid of 'overwrite' destination kind"
...
This reverts commit 6e652588bf
.
2011-10-04 17:05:27 -07:00
Patrick Walton
11e407aaa9
Revert "Reorganize translation of expr_field"
...
This reverts commit 007ec666ad
.
2011-10-04 17:05:16 -07:00
Patrick Walton
af60cf407c
rt: Switch the AIO stuff to the C stack
2011-10-04 12:08:06 -07:00
Marijn Haverbeke
007ec666ad
Reorganize translation of expr_field
...
Issue #667
2011-10-04 17:52:23 +02:00
Marijn Haverbeke
6e652588bf
Get rid of 'overwrite' destination kind
...
It wasn't safe (computing the rval might invalidate the lval addr), and needlessly
complicating things (code was already building up intermediary results to work
around other unsafeties).
Issue #667
2011-10-04 17:52:23 +02:00
Marijn Haverbeke
6e56ec0066
Move trans_call to destination_passing style
...
Issue #667
The retptr passed to a function will now often be the actual
destination of the returned value (as in `{field1: func1()}`).
2011-10-04 17:41:34 +02:00
Patrick Walton
53c9b9a5dd
rt: Switch the libuv bindings over to not using explicit task pointers
2011-10-03 18:23:30 -07:00
Patrick Walton
3ad4fa00ac
rt: Fix comment typo in rust_uv.cpp
2011-10-03 18:23:30 -07:00
Patrick Walton
a7b44e847a
rt: Make the builtins no longer take an explicit task parameter
2011-10-03 18:23:30 -07:00
Brian Anderson
b5bb42acfb
XFAIL run-fail/linked-failure4. Deadlocks on mac
2011-10-03 14:46:52 -07:00
Patrick Walton
968b66ad40
rustc: Implement C stack stdcall
2011-10-03 13:59:38 -07:00
Brian Anderson
3a6f3cf275
Move compiletest to src/ and cleanup build rules
2011-10-02 17:28:59 -07:00
Haitao Li
e50371060b
rustc: Fix link error on Ubuntu Oneiric. Issue #903
2011-10-02 21:29:16 +08:00
Patrick Walton
42287d0fd3
rustc: Call LLVM on the C stack
2011-09-30 18:50:07 -07:00
Patrick Walton
4793a02376
rt: Omit leading underscore on symbol names on Linux
2011-09-30 18:50:05 -07:00
Patrick Walton
e9287e55cc
rustc: Stub a --stack-growth option; it's behind a flag for now because it requires patches to LLVM.
2011-09-30 18:21:39 -07:00
Brian Anderson
f525f6e94c
Register new snapshots
2011-09-30 18:03:54 -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
Patrick Walton
c065280a0b
rustc: Remove some debug code
2011-09-30 14:26:06 -07:00
Patrick Walton
7ab0897ac6
rustc: Track link_args attributes on C stack cdecl natives as well
2011-09-30 14:25:10 -07:00
Patrick Walton
dcf0e807fb
trans: Use inttoptr as appropriate when casting return values of C stack functions
2011-09-30 12:07:50 -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
196cc6de2e
Teach compiletest to construct the PATH variable correctly on win32
2011-09-29 22:58:34 -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
Patrick Walton
79e4961c7f
rustc: Remove some debug code
2011-09-29 18:53:00 -07:00
Patrick Walton
f9e3a604a6
rustc: Make the generic C stack function signature include a usable return value
2011-09-29 18:52:23 -07:00
Patrick Walton
5b6dbcb030
stdlib: Un-export str::buf; add a comment
2011-09-29 18:36:27 -07:00
Patrick Walton
3be6cf7ab2
vim: Add pure
to the list of keywords
2011-09-29 18:18:37 -07:00
Patrick Walton
dd7ff8dee4
stdlib: Export str::buf
2011-09-29 17:58:51 -07:00
Patrick Walton
a5b422fe6b
rustc: Translate calls on the C stack
2011-09-29 17:34:49 -07:00
Patrick Walton
f22601321f
rustc: Fix call signature for call_c_stack
2011-09-29 17:34:49 -07:00
Patrick Walton
e31849fb79
rt: Fix assembler for C calls to work more like a regular function call
2011-09-29 17:34:49 -07:00
Patrick Walton
6dece91ed3
stdlib: Add vec::eachi to the standard library
2011-09-29 17:34:49 -07:00
Patrick Walton
c04efec87f
rustc: Add upcall stubs for the new C stack upcalls
2011-09-29 17:34:49 -07:00
Patrick Walton
41ab324539
rustc: Generate types in trans for the C-stack native ABI
2011-09-29 17:34:49 -07:00
Marijn Haverbeke
e4436c3a5d
Don't build up results for ignored expressions.
...
Issue #667
2011-09-29 12:02:37 +02:00
Marijn Haverbeke
d74a7a83d7
Fail with an informative error when trying to bind a method
...
Issue #435
2011-09-29 11:55:29 +02:00
Marijn Haverbeke
d243ea57f5
Move last remaining expression types out of trans_expr
...
Issue #667
2011-09-29 11:41:45 +02:00
Marijn Haverbeke
f089f533e8
Move expr_cast and expr_copy to DPS style
...
Issue #667
2011-09-29 10:46:49 +02:00
Marijn Haverbeke
d946e09a72
Move closure construction over to DPS style
...
Issue #667
2011-09-29 10:36:40 +02:00
Marijn Haverbeke
508c48ce10
Reduce move ops to a construct-in-place when possible
2011-09-29 10:36:40 +02:00
Brian Anderson
15e34deba3
Eliminate glue.o. Closes #990
2011-09-28 15:35:21 -07:00
Brian Anderson
e1ba559c03
Test cases for #985
...
Other restrictions on pinned kinds happened to fix this
Closes #985
2011-09-28 15:35:21 -07:00
Brian Anderson
cb4e99b688
Don't allow vectors of pinned kinds
...
Vectors of pinned kinds can't be safe because most interesting uses of vector
perform copies
2011-09-28 15:35:21 -07:00
Brian Anderson
14bac217b0
Make error patterns in some kind tests more specific
2011-09-28 15:35:21 -07:00
Patrick Walton
f7d0c1cec3
rustc: Add a new "C stack cdecl" native ABI
2011-09-28 12:58:33 -07:00
Brian Anderson
657e3ffaf5
xfail-fast run-pass/alt-range.rs
2011-09-28 12:46:29 -07:00
Brian Anderson
381205b747
Revert "Revert "Implement pattern ranges for all numeric types.""
...
This reverts commit a034f87146
.
Conflicts:
src/comp/middle/check_alt.rs
src/comp/middle/trans_alt.rs
src/comp/syntax/ast.rs
src/comp/syntax/ast_util.rs
src/comp/syntax/fold.rs
src/comp/syntax/print/pprust.rs
Conflicts:
src/comp/middle/trans_alt.rs
2011-09-28 12:46:29 -07:00
Patrick Walton
5fac684af8
vim: const
is a keyword
2011-09-28 12:40:34 -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
Patrick Walton
1eaaae860f
rt: Add an upcall to allocate space on the C stack. This will be used for native calls on the C stack.
2011-09-28 11:31:44 -07:00
Patrick Walton
e8757ea01f
rt: Expose the C stack inside the Rust scheduler so that C calls can switch to it
2011-09-28 10:22:02 -07:00
Patrick Walton
dbf472b0df
rustc: Switch to cdecl for all calls. This is needed to make stack growth efficient, as I need to use eax and ecx in the function prologue and can't afford to stomp on incoming arguments.
2011-09-28 10:22:02 -07:00
Marijn Haverbeke
512cfb4b83
Remove a few kludges that worked around issue #913
2011-09-28 12:59:44 +02:00
Marijn Haverbeke
c94159652a
Register new snapshot
...
It had been a while. I mostly wanted a fix for #913 in stage0.
2011-09-28 12:56:54 +02:00
Marijn Haverbeke
a3a27374bd
Don't descend into functions from relax_precond_block
...
Closes #913
2011-09-28 12:37:28 +02:00
Marijn Haverbeke
759fc101fb
Get rid of might_not_init kludge in init_local.
...
Initializing something is now safe wrt to cleanups (so the cleanup for the
local is only registered after the initialization.)
2011-09-28 11:12:35 +02:00
Marijn Haverbeke
16d5aaa962
Wait with registering cleanups for locals until after the init code ran
...
Fixes a double-cleanup that was breaking unwind-tup.rs under valgrind.
2011-09-28 10:41:19 +02:00
Marijn Haverbeke
e3626c9405
Use DPS for assignment and local initialization
...
Issue #667
2011-09-28 09:42:04 +02:00
Wade Mealing
f375391cb6
Patch to error instead of crashing when parsing unmatched double quotes
...
Patch to error and fail instead of using all available memory
then crashing to detect the error condition of an unmatched
double quote before the end of a file.
I couldn't get it to show nice error messages, so this may not be
the ideal fix.
A test case for this situation has also been added.
2011-09-27 23:20:31 -07:00
Brian Anderson
a96b16e8c3
Make it again possible to initialize resource locals via assignment
...
Some special cases allow both 'let a <- my_resource(x)' and
'let a = my_resource(x)' to work as expected despite ostensibly being
copies and moves.
2011-09-27 23:20:27 -07:00
Brian Anderson
459353e107
Prevent copies of resources into various things
2011-09-27 21:50:07 -07:00
Patrick Walton
9ba86178ef
rt: Store the task in TLS
2011-09-27 18:12:03 -07:00
Brian Anderson
888e22aacc
Add more comments about kind checking on local move initializers
2011-09-27 16:03:10 -07:00
Brian Anderson
8217e4bd38
Add xfailed tests that resources can't be copied into various things
2011-09-27 16:03:10 -07:00
Brian Anderson
b8bb663df7
Don't ever raise unique kinds of pinned kinds to shared (again)
...
So *resource, ~resource, [resource] are all pinned. This is counter to the
design of the kind system, but this way is a much clearer path to type safety.
Once we've established a good baseline with lots of tests, then we can try to
make raising pinned kinds work.
2011-09-27 16:03:10 -07:00
Brian Anderson
e50580aa66
Revert "Use DPS for assignment and local initialization"
...
This reverts commit b1b202d302
.
2011-09-27 16:03:09 -07:00
Brian Anderson
1097463d96
Add an xfailed test for bogus deep copying of things containing resources
2011-09-27 14:28:20 -07:00
Brian Anderson
4bffa5e13a
Add an xfailed test for bogus vector addition of typarams
2011-09-27 14:24:28 -07:00
Marijn Haverbeke
04f062f9d4
Fix lurking bug in matching of nil
...
Which was somehow made visible by the DPS changes.
2011-09-27 22:49:33 +02:00
Marijn Haverbeke
b1b202d302
Use DPS for assignment and local initialization
...
Issue #667
2011-09-27 20:33:09 +02:00
Marijn Haverbeke
e42f3b8481
Safeguard against self-assignment for unique types
2011-09-27 20:33:09 +02:00
Jesse Ruderman
923aa4744e
Test for #924
2011-09-27 11:05:16 -07:00
Marijn Haverbeke
94db38a530
Move expr_unary to DPS style
...
Issue #667
2011-09-27 17:31:15 +02:00
Marijn Haverbeke
92d63ffa65
Make trans_rec and trans_tup understand overwrite dests
...
Issue #667
2011-09-27 17:31:15 +02:00
Marijn Haverbeke
8282f7fe80
Move expr_binary into trans_expr_dps
...
Issue #667
2011-09-27 17:30:54 +02:00
Marijn Haverbeke
806e74fbf5
Move expr_lit and expr_vec into trans_expr_dps
...
Issue #667
2011-09-27 17:30:45 +02:00
Marijn Haverbeke
8ea72fae99
Move more non-value-returning things to trans_expr_dps.
...
Issue #667
2011-09-27 17:30:45 +02:00
Brian Anderson
b49f4689f5
Add two xfailed tests for invalid copies into vectors
2011-09-26 23:45:51 -07:00
Brian Anderson
1796abc3ef
xfail-win32 -> xfail-fast
2011-09-26 23:34:54 -07:00
Brian Anderson
4f2a0117c7
Try to appease windows by xfail-win32'ing a random test
2011-09-26 23:34:12 -07:00
Brian Anderson
df19b7a13a
Test for issue #980
2011-09-26 23:24:53 -07:00
Brian Anderson
6b42ad5ea0
Enforce copy restrictions on let initializers
2011-09-26 22:00:15 -07:00
Brian Anderson
07e13fe447
Make some nocopy tests a bit more futureproof
...
Turn the let assignment initializers into move initializers since
that assignment is going to become illegal
2011-09-26 22:00:15 -07:00
Jesse Ruderman
20c2d2a999
Distinguish #924
2011-09-26 20:44:57 -07:00
Jesse Ruderman
4ff46a1502
Add a cycle-collection fuzzer
2011-09-26 20:34:07 -07:00
Brian Anderson
3778b6c6a8
Prevent copying of uncopyable things via the copy op
2011-09-26 20:03:30 -07:00
Brian Anderson
755001725a
Prevent copying of uncopyable things via compound assignment ops
2011-09-26 20:03:24 -07:00
Brian Anderson
99cbea51a1
Don't allow vectors of pinned kinds to be copied
2011-09-26 19:57:00 -07:00
Brian Anderson
4bee452221
Don't allow copying of unique boxes of pinned kinds
...
Issue #409
2011-09-26 18:43:49 -07:00
Brian Anderson
2d5e085eb9
Add a test that unique boxes in vectors are copied when the vector is
...
Issue #409
2011-09-26 17:59:58 -07:00
Patrick Walton
a88d9effbc
rt: Don't run arbitrary destructors on cycle collection; that's just broken.
2011-09-26 17:41:22 -07:00
Patrick Walton
5c973142df
rt: Turn on cycle collection at task death; add a test case
2011-09-26 16:59:15 -07:00
Patrick Walton
ad19ab4c6f
rt: Make the logic that moves environments between tasks update the GC alloc chain correctly
2011-09-26 16:59:15 -07:00
Patrick Walton
47e5ab093a
stdlib: Fix typos in comments in lib/test.rs
2011-09-26 16:59:15 -07:00
Brian Anderson
389852b5c0
Fix tags of unique boxes
...
Issue #409
2011-09-26 14:44:08 -07:00
Brian Anderson
223f5be166
Unique vectors and boxes of pinned are unique kinds. Closes #977
2011-09-26 13:38:46 -07:00
Marijn Haverbeke
8c0918ac18
Construct records and tuples in-place
...
Issue #667
Now, {a: {b: 10, c: 20}, d: @30} will simply write the values in the right
places, rather than creating intermediary records and then memmoving them.
Cuts about a megabyte off the unoptimized compiler size.
2011-09-26 22:13:08 +02:00
Marijn Haverbeke
5837975f95
Convert more expression types to use DPS
...
expr_rec, expr_tup, most of the exprs that don't return anything. Make
trans_ret almost trivial by using destination adaptors (trans_save_in,
trans_by_ref).
Issue #667
2011-09-26 21:34:10 +02:00
Marijn Haverbeke
345b5a47bd
Add a workaround hack for issue #913
...
I can't figure out what the real cause of this bug is, but I want
to be able to use blocks inside loops again.
2011-09-26 21:34:10 +02:00
Patrick Walton
37cf7b92c8
test: Fix more typos in weird-exprs.rs.
2011-09-26 10:26:30 -07:00
Patrick Walton
2348858995
test: wierd-exprs -> weird-exprs
2011-09-26 10:24:46 -07:00
Patrick Walton
81f1863de7
rt: Remove obsolete comment
2011-09-26 10:24:21 -07:00
Graydon Hoare
93f0e9bac3
Refine notes in kind.rs some more. Add a fixme to ty.rs.
...
Kinds are still pretty wobbly. See thread starting at
https://mail.mozilla.org/pipermail/rust-dev/2011-September/000807.html
2011-09-25 21:20:17 -07:00
Jesse Ruderman
798b3531a6
Enable hammertime
2011-09-25 21:13:52 -07:00
Jesse Ruderman
73898351d2
Test for #973
2011-09-25 21:01:50 -07:00
Jesse Ruderman
60ec49b121
Test for #942
2011-09-25 20:57:44 -07:00
Jesse Ruderman
56410b2fb6
Remove FIXME test that's covered by run-pass/unreachable-code.rs
2011-09-25 20:56:19 -07:00
Marijn Haverbeke
8911aef798
Make return-by-ref function headers pretty-print safely
...
Closes #972
2011-09-26 04:11:35 +02:00
Marijn Haverbeke
1e988f228d
Don't call trans_bind_thunk in an unreachable context
...
Closes #973
2011-09-26 04:08:45 +02:00
Marijn Haverbeke
4c5e42a139
Make 'fail fail;' compile.
...
Closes #972
2011-09-26 03:57:08 +02:00
Marijn Haverbeke
6164b72402
Fix bug in mutability-checking pass
...
It wasn't properly handling function arguments.
2011-09-26 03:56:39 +02:00
Jesse Ruderman
203bc16e7b
Fuzzer: stop ignoring fixed bugs
2011-09-25 12:24:42 -07:00
Brian Anderson
98db2febd3
Handle ~fail. Closes #968
2011-09-24 23:52:22 -07:00
Brian Anderson
895674b6eb
Add a test for assignment of unique boxes of generics
...
Closes #976
Issue #409
2011-09-24 21:31:28 -07:00
Brian Anderson
4f7ecce7d1
Support non-immediates in trans_uniq::copy_val
...
Issue #409
2011-09-24 21:28:58 -07:00
Jesse Ruderman
2b15aefffe
Fuzzer: ignore more bugs
2011-09-24 21:01:39 -07:00
Lindsey Kuper
822ed2c6d3
Small refactors.
...
Factor out some shared code from the start of process_fwding_mthd and
process_bkwding_mthd; get rid of unneeded temp variable.
2011-09-24 23:38:47 -04:00
Jesse Ruderman
3b5b29c7ec
Reduce and clarify abuse of 'pure' in interner
2011-09-24 16:33:26 -07:00
Jesse Ruderman
0125532106
Don't iloop (future-proof test against improved reachability computations)
2011-09-24 16:13:32 -07:00
Jesse Ruderman
c29f1af17e
Remove irrelevant parts of test
2011-09-24 16:11:50 -07:00
Jesse Ruderman
064f52fa96
Mark some fns as pure so type_is_unique_box doesn't need to be unchecked
2011-09-24 15:36:09 -07:00
Jesse Ruderman
48c2c9b3a7
Mark vec::len as pure
2011-09-24 15:10:03 -07:00
Brian Anderson
9029416e28
Tweak random thing to make windows build succeed. Awesome.
...
So, a recent commit made syntax-extension-fmt fail under check-fast.
This commit disables lots-a-fail under check-fast and voila! *grumble*
2011-09-24 14:44:42 -07:00
Brian Anderson
e804352de4
Move a previous run-pass test for kind-lowered unique boxes to compile-fail
...
This test tries to swap unique boxes containing resources, which is not
allowed.
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
c5877450e6
Tweak the type allocated for unique pointers
...
Seems to be more correctish...
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
777a536313
Support non-immediates in unique-box type glue
...
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
856acbf66d
Vectors containing pinned kinds become pinned
...
Otherwise they could be copied
2011-09-24 12:36:51 -07:00
Brian Anderson
e5d5682065
Unique pointers containing pinned kinds become pinned
...
Issue #409
2011-09-24 12:36:51 -07:00
Brian Anderson
97629727b1
Add tests for swapping unique boxes
...
Issue #409
2011-09-24 12:36:50 -07:00
Jesse Ruderman
fbe00fc236
Add rand_util.rs
2011-09-23 23:24:43 -07:00
Jesse Ruderman
3bac3378ae
Fuzzer: use different exclusions when testing pretty-printer than when testing compiler
2011-09-23 23:23:04 -07:00
Jesse Ruderman
3a7a2943dd
Add vec::filter
2011-09-23 19:10:48 -07:00
Patrick Walton
7979bbbf51
rt: Sweep in cycle collection
2011-09-23 17:57:25 -07:00
Patrick Walton
41082c6b83
rt: Whitespace police
2011-09-23 17:57:25 -07:00
Patrick Walton
b995028c47
rt: Turn off some debug code
2011-09-23 17:57:25 -07:00
Patrick Walton
0c4e0fdfae
rt: Get rid of the hack that looks for captured type descriptors adjacent to the root one for functions and objects
2011-09-23 17:57:25 -07:00
Erick Tryzelaar
6164de90e2
Add libuv upgrade instructions to src/etc/gyp-uv
2011-09-23 16:53:07 -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
d8f6e9f237
Add let destructuring for unique boxes
...
Issue #409
2011-09-23 16:12:04 -07:00
Brian Anderson
122f714fde
Add missing case for pat_uniq to syntax::visit
...
Issue #409
2011-09-23 16:03:35 -07:00
Brian Anderson
27972a6def
Add two tests for sending unique boxes across channels
...
Issue #409
2011-09-23 15:32:31 -07:00
Brian Anderson
68512f2d9d
Actually use unique boxes in run-fail/unwind-unique
2011-09-23 15:23:44 -07:00
Brian Anderson
18b01d5cfe
Create a bunch of test cases for unique boxes by copying box tests
...
XFAIL the ones that don't work
Issue #409
2011-09-23 15:15:30 -07:00
Brian Anderson
2082f67765
Begin to support pattern matching on unique boxes
...
Issue #409
2011-09-23 15:15:30 -07:00
Patrick Walton
87700adb2f
rt: Add missing <stdint.h> in rust_abi.h
2011-09-23 15:14:44 -07:00
Patrick Walton
e036c9d8d2
rt: Add missing const on the Windows path
2011-09-23 15:08:37 -07:00
Patrick Walton
557d641175
rt: Get RUST_TRACK_ORIGINS working. You can now call 'debug::dump_origin' in gdb and get a backtrace saying where a box came from.
2011-09-23 15:06:28 -07:00