Brian Anderson
12e401cc7e
rustc: Remove whitespace
2011-12-05 11:21:44 -08:00
Haitao Li
47ea57fead
rustc: Add suffix ".rc" to LLVM module identifier
...
LLVM code generator emits the ".file filename" directive for ELF
backends. Value of the "filename" is set as the LLVM module identifier.
Due to a LLVM MC bug[1], LLVM crashes if the module identifer is same as
other symbols such as a function name in the module.
This patch adds a ".rc" suffix (means crates) to LLVM module identifier
to workaround the bug.
Fixes issue #1251 .
1. http://llvm.org/bugs/show_bug.cgi?id=11479
2011-12-05 17:21:20 +08:00
Stefan Plantikow
a69eab16ec
typeck: Fix for #932
2011-12-05 01:23:10 +01:00
Haitao Li
96b0881a68
rustc: Fix memory leak in do-while loop
...
Issue #1257
2011-12-05 00:38:38 +08:00
Stefan Plantikow
68a82e4468
const_check: trans: added support for trivial casts
...
Part of #1215
2011-12-02 11:58:35 -08:00
Stefan Plantikow
4ba3158e4f
parse: typeck: enabling trivial casts of tail-call return values
...
introduces ctypes::m_* machine type aliases for int, uint, float
depending on cfg(target_arch) that are used in tests
2011-12-02 11:38:24 -08:00
Stefan Plantikow
29f7cdffa4
ty: trans: added support for dropping trivial casts
2011-12-02 11:38:24 -08:00
Stefan Plantikow
d116a6f2d3
ty: added type comparison that subs prim types with targ_cfg machine types
2011-12-02 11:38:24 -08:00
Marijn Haverbeke
817c9f2a54
Include full module path in unresolved errors when looking in module
...
Closes #1228
2011-12-02 16:46:19 +01:00
Marijn Haverbeke
0f918ddd8b
Make import ignore imports coming after them
...
This broke no code at all, so I guess people were already writing
imports in this style.
Issue #1228
2011-12-02 16:06:55 +01:00
Marijn Haverbeke
8a1cc738fa
Finally make the -1 crate id in resolve.rs a const
2011-12-02 14:00:45 +01:00
Marijn Haverbeke
64ce092c27
Allow literal patterns to contain arbitrary literal expressions
...
This removes the need for the unary minus hacks, and allows some other
neat things like matching on 1 >> 4.
Issue #954
2011-12-02 13:42:51 +01:00
Marijn Haverbeke
98ca6d0c61
Fix mistake in last use pass
...
Closes #1243
2011-12-01 16:47:07 +01:00
Marijn Haverbeke
b40c6773c2
Box ast::path values
...
It seems inefficient to copy them around. Let's measure whether that's actually
> the case
2011-11-30 13:38:38 +01:00
Niko Matsakis
152bb314f5
fix bug in shape concerning size of tag variant
2011-11-29 12:51:08 -08:00
Marijn Haverbeke
8746ebe2e6
Add some changes that *should* have been in e98286b594
...
Forgot to amend the commit after fixing the failure.
2011-11-23 21:22:56 +01:00
Marijn Haverbeke
e98286b594
Allow import directives in any block
...
Closes #49
2011-11-23 20:57:34 +01:00
Marijn Haverbeke
03f6060e80
Make type_kind properly recognize ty_ptr as sendable
2011-11-23 13:27:04 +01:00
Marijn Haverbeke
9fb3719ded
Rollback return-by-reference
...
It's proving too inflexible, so I'm ripping out the extra complexity
in the hope that regions will, at some point, provide something
similar.
Closes #918
2011-11-23 11:02:27 +01:00
Marijn Haverbeke
acbc4aa9f8
Remove deep scope traversal in revoke_clean
...
It is not needed anymore.
2011-11-23 11:02:27 +01:00
Stefan Plantikow
148a6c1a38
comp: allowed the declaration of pure fn's in native mods
...
This is especially useful for the native calls in std::math
This commit does NOT yet point to new snapshots
2011-11-22 20:01:25 +01:00
Marijn Haverbeke
1b8b0b8584
Properly check for copies when constructing a record using with
...
Closes #989
2011-11-22 13:27:40 +01:00
Marijn Haverbeke
1ce3a84a8f
Make type_needs_drop accurate, get rid of type_has_pointers
...
Closes #1209
2011-11-22 13:16:23 +01:00
Marijn Haverbeke
bd16aac903
Fix inconsistency in ordering of patterns during alt compilation
...
Closes #1153
2011-11-22 12:44:59 +01:00
Marijn Haverbeke
5d6a74f020
Only warn about unreachable range patterns when appropriate
...
Also simplifies the literal-munging, and moves it into ast_util
Closes #1170
2011-11-22 11:49:29 +01:00
Marijn Haverbeke
8cc852af8c
Make ast::visit only descend into types when necessary
...
If visit_ty is not overridden, it uses a stub function which does not
descend into types.
Closes #1204
2011-11-22 10:57:47 +01:00
Haitao Li
5ca83553bc
rustc: Remove abi from ast::native_mod
2011-11-21 13:49:52 +01:00
Marijn Haverbeke
02574a5bdb
Close hole in safe-reference analysis
2011-11-21 12:07:40 +01:00
Marijn Haverbeke
b4217b383b
Add a pass that checks that blocks are only used in safe ways
...
Closes #1188
2011-11-21 11:01:15 +01:00
Marijn Haverbeke
86c1f16a10
Fix bad interaction between last-use finding and references
...
The last-use pass now takes input from the alias pass to not mark things
as last uses that are still accessed through a reference.
Issue #925
2011-11-21 09:25:42 +01:00
Niko Matsakis
9fa44a41e6
get pure wrappers approach running
2011-11-18 16:32:19 -08:00
Niko Matsakis
6072ddad33
sketch out design
2011-11-18 16:32:19 -08:00
Marijn Haverbeke
0e21df4610
Add some comments to kind.rs and last_use.rs
2011-11-18 17:09:36 +01:00
Marijn Haverbeke
8cf3ca3b55
Make sure by-copy arguments take last-use into account
2011-11-18 16:43:30 +01:00
Marijn Haverbeke
196b2b920f
Make sure trans translates record fields in the order they appear in code
...
This prevents surprising side-effect orders, and makes them easier for
the other passes to deal with.
2011-11-18 15:59:47 +01:00
Marijn Haverbeke
68db68c4cc
Make trans use last_use info to not actually generate copies
...
Issue #925
2011-11-18 15:56:53 +01:00
Marijn Haverbeke
f6491bb426
Update stdlib, compiler, and tests to new kind system
...
This involved adding 'copy' to more generics than I hoped, but an
experiment with making it implicit showed that that way lies madness --
unless enforced, you will not remember to mark functions that don't
copy as not requiring copyable kind.
Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
8f8ebb550c
Implement a last-use-of-local finding algorithm
...
Issue #925
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
0c97fcbf66
Properly check kinds in instantiation of generics
...
Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
7bef89f9b5
Prevent alias pass from inserting implicit copies for noncopyable types
...
Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
17b78c4a7a
Overhaul the kind-checking pass
...
Not really useful yet because missing last-use-of-local optimization.
Also: instantiation of type parameters needs to be checked.
Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
cefff237bf
Make tag, resource and object constructors take their arguments by copy
...
Doing something like some([1, 2, 3]) will now no longer create a temporary
copy of the vector. It will also be easier for the kind checker to see that
putting a resource into a data-structure constructor is safe.
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
4e03112141
Add a pass-by-copy parameter passing convention
...
This is intended to solve the problem of how to pass arguments to
constructor functions -- you want to move in rvalues, but not have to
explicitly copy stuff that is not an rvalue. The by-copy passing
convention will ensure the callee gets its own copy of the value. For
rvalues, it'll just pass off the value. For lvalues, it'll make a
copy.
Issue #1177
2011-11-18 12:49:00 +01:00
Marijn Haverbeke
9cf48d3753
Preparation for kind system overhaul
...
This goes before a snapshot, so that subsequenct patches can make the
transition without breaking the build. Disables kind checking pass, makes
parser accept both new and old-style kind annotation.
Issue #1177
2011-11-18 10:52:28 +01:00
Niko Matsakis
b30f7af98b
remove blank line
2011-11-17 15:11:52 -08:00
Niko Matsakis
8925875ccb
add FIXME for issue #1184
2011-11-17 13:44:13 -08:00
Niko Matsakis
0d874476cf
fix resource-generic
2011-11-17 13:44:13 -08:00
Brian Anderson
dd275cd749
Stop using temporary intrinsic_2 functions
2011-11-17 11:55:04 -08:00
Niko Matsakis
adc79e2f44
remove compile-command from local variable blocks
2011-11-17 11:46:13 -08:00
Haitao Li
388eed383f
rustc: Add a flag '--warn-unused-imports'
...
Followup of issue #889
2011-11-17 09:28:30 +01:00