Graydon Hoare
721c5bbee8
More work on proper linkage name-mangling. Almost right, aside from version numbers.
2011-06-07 18:08:17 -07:00
Rafael Ávila de Espíndola
7034a28241
Update the snapshot.
2011-06-07 20:40:31 -04:00
Lindsey Kuper
a4ca75e6af
For consistency, use ctxt instead of ty_ctxt outside of unify.
2011-06-07 15:18:30 -07:00
Lindsey Kuper
ab69c4a98f
Removing dead code and redundant fails; changing fails to sess.bug
...
calls (issue #444 ).
2011-06-07 14:12:34 -07:00
Rafael Ávila de Espíndola
b1d6f12a05
Don't put a copy of main (the C one) in each binary we produce. This is a step
...
in getting a driver that works on all linux systems.
Sorry for the linker hacks, I will remove them after snapshotting a new compiler.
2011-06-07 16:56:27 -04:00
Josh Matthews
df9cf0be9b
Add multiline, whitespace-eating strings.
2011-06-07 11:21:10 +02:00
Josh Matthews
a078844201
Add multiline, whitespace-eating strings.
2011-06-07 04:53:47 -04:00
Graydon Hoare
319156c8d1
Begin tidying up name-mangling rules.
2011-06-06 15:48:47 -07:00
Rafael Ávila de Espíndola
ee54fa5c7d
Implement enough support for pointer to get an identity function working.
2011-06-06 16:36:01 -04:00
Marijn Haverbeke
4bd5f834b0
First take on an alias-safety checker
...
The alias checker works by ensuring that any value to which an alias
is created is rooted in some way that ensures it outlives the alias.
It is now disallowed to create an alias to the content of a mutable
box, or to a box hanging off a mutable field. There is also machinery
in place to prevent assignment to local variables whenever they are
the root of a live alias.
2011-06-06 21:24:03 +02:00
Marijn Haverbeke
2b334f061a
Change unsafe aliases
...
This litters aberrations like 'alt({foo.bar}) { ... }' and f({*baz})
though the code (mostly in trans.rs). These are a way to explicitly
copy the given value so that it can be safely aliased. At some point
we'll probably want a more explicit copy operator.
2011-06-06 21:09:55 +02:00
Brian Anderson
4d8f715dab
rustc: Make resolve::unresolved return !. Remove redundant fails
2011-06-05 00:11:44 -04:00
Lindsey Kuper
2736d63db0
Adding comments; removing dead code.
2011-06-04 19:38:11 -07:00
Lindsey Kuper
5f95766a40
Remove redundant 'fail' exprs and dead code; use sess.bug or
...
sess.span_err instead of 'fail'. (issue #444 )
2011-06-04 18:34:40 -07:00
Brian Anderson
53ea2a4751
stdlib: Use spans for #fmt errors originating in std
...
Issue #444
2011-06-04 19:48:19 -04:00
Brian Anderson
a177dc485b
rustc: Reenable debug logging in extfmt
...
This is not obnoxious now that logging is off by default
2011-06-04 17:57:53 -04:00
Brian Anderson
4b566fe7f9
rustc: Hide the parser from syntax extensions
...
Eventually extensions will probably need access to the parser again, but it'll
be in a different form.
2011-06-04 17:51:59 -04:00
Brian Anderson
c88fa92de4
rustc: Generate extension annotations from ext_ctxt instead of parser
2011-06-04 17:44:24 -04:00
Brian Anderson
1d6f1dc58d
rustc: Add a next_ann method to ext_ctxt
...
After this we can remove the parser from the syntax extensions, at least for
now.
2011-06-04 17:31:44 -04:00
Brian Anderson
3ca5fff195
rustc: Use spans for #env errors
...
Issue #444
2011-06-04 17:14:32 -04:00
Brian Anderson
ac83e34dc6
rustc: Report unimplemented #fmt features with spans
2011-06-04 17:10:08 -04:00
Brian Anderson
dd588519bd
rustc: Add a span_unimpl method to ext_ctxt
2011-06-04 17:10:08 -04:00
Brian Anderson
ecf1bd7651
rustc: Use spans on extfmt error messages
...
Issue #444
2011-06-04 17:10:04 -04:00
Brian Anderson
794221b353
rustc: Return the correct span from parse_seq
2011-06-04 16:36:08 -04:00
Brian Anderson
c18f2e2dac
rustc: Pass the correct span to syntax extensions
2011-06-04 15:57:13 -04:00
Brian Anderson
af46f3ed0d
rustc: Introduce ext module. Move some things from parser to ext.
...
Introduce an ext_ctxt record to provide a span_err method for use while
expanding syntax extensions. Hopefully it will be useful for other things.
2011-06-04 15:49:42 -04:00
Paul Stansifer
dbd066a02a
"macro" -> "syntax extension" for now
2011-06-03 18:47:11 -07:00
Paul Stansifer
79fcd51b46
Make the macro system more modular.
2011-06-03 18:47:11 -07:00
Graydon Hoare
cfc75695a5
Register new snapshots.
2011-06-03 18:47:08 -07:00
Graydon Hoare
f29d04672b
Remove zerobreak between foo and ( on a call expr. Never looks right.
2011-06-03 17:32:29 -07:00
Graydon Hoare
f34d19a242
Make pp more conservative about inserting trailing comments mid-list.
2011-06-03 17:32:29 -07:00
Lindsey Kuper
69325f815d
More comments.
2011-06-03 17:16:28 -07:00
Lindsey Kuper
dcf7fbf833
Comments and cleanup.
2011-06-03 17:09:50 -07:00
Patrick Walton
cb4c969ba6
rustc: Add a "smallintmap" implementation
2011-06-03 16:15:14 -07:00
Graydon Hoare
088ab03fdb
Add spans to fields, args, methods. Improve pp of same.
2011-06-03 15:42:42 -07:00
Graydon Hoare
8235e76a47
Tidy up printing of ty_fn.
2011-06-03 15:42:42 -07:00
Rafael Ávila de Espíndola
429e21414b
Parse pointers in metadata.
2011-06-03 15:13:10 -04:00
Rafael Ávila de Espíndola
ba74c6cfdc
Boilerplate for pointers. Sorry for missing this on the first patch.
2011-06-03 15:02:58 -04:00
Rafael Ávila de Espíndola
18b63865ce
Accept *foo as a pointer to foo.
...
This is accepted everywhere, since just passing a pointer is safe.
2011-06-03 14:34:19 -04:00
Marijn Haverbeke
07667d29aa
Temporarily xfail compile-fail/pattern-tyvar
...
So that the tinderboxes can go green again. Patrick, please look into
this at some point.
2011-06-03 10:23:13 +02:00
Lindsey Kuper
dc29dead2e
Removing redundant "fail"s.
2011-06-02 18:15:29 -07:00
Patrick Walton
ad9afefa10
rustc: Typecheck patterns from the top down; remove pushdown_pat
2011-06-02 18:11:26 -07:00
Tim Chevalier
76bcbfd269
Un-XFAIL break-value
...
It passes thanks to the previous two commits.
2011-06-02 17:52:04 -07:00
Tim Chevalier
ba377c043d
Handle _|_ values properly in trans
...
Generate an LLVMUndef value of the proper type for an argument of
type _|_. Otherwise we get an LLVM assertion failure.
2011-06-02 17:52:04 -07:00
Tim Chevalier
468786e36d
Fix unification bug
...
Hello from SFO Terminal 3!
unify_fn_common had the expected and actual types reversed in one
place. This was causing the type of an occurence of a function f
with type fn(int) -> T to be set to fn(_|_) -> T at a call site like
f(fail); I think this was also making some of the type error messages
come out backwards, but I haven't checked.
Also: ty_bot does not contain pointers
2011-06-02 17:52:04 -07:00
Patrick Walton
c515ed13de
Merge pull request #450 from paulstansifer/quick_error_message_fix_2
...
Flatten functions and objects in trans::simplify_type.
2011-06-02 17:43:11 -07:00
Paul Stansifer
20bd927c3f
Flatten functions and objects in trans::simplify_type.
2011-06-02 17:40:12 -07:00
Graydon Hoare
cb61d7b38e
Pretty-print literals exactly as we saw them in the source.
2011-06-02 17:18:49 -07:00
Lindsey Kuper
3a6b5576ac
Refactor make_fp_cmp_glue and make_integral_cmp_glue into one.
2011-06-02 16:35:25 -07:00
Paul Stansifer
1377e9b341
Implement pcwalton's code review suggestions.
2011-06-02 15:12:17 -07:00