Brian Anderson
d7fa75413f
Convert rustc::lib::llvm to istr::sbufs. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
7284f820d5
Support istrs in #fmt. Issue #855
...
The format string may be an istr and istr args may be used with %S
2011-08-27 15:54:44 -07:00
Brian Anderson
6b3f0b21be
Convert the rest of rustc::back to istrs. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
a58bfced3c
Convert back::link to istrs. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
9c9c5c9054
Remove ast::identistr. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
03119fe269
Convert ast::ident to istr. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
652332f9d4
Convert std::map::new_str_hash to istrs. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
15e3ae7936
Convert std::os to istrs. Issue #855
2011-08-27 15:54:44 -07:00
Brian Anderson
85b4253bc1
Convert std::generic_os to istrs. Issue #855
2011-08-27 15:54:43 -07:00
Brian Anderson
b2408d57f0
Convert portions of rustc to istrs. Recover a lot of performance.
...
Issue #855
2011-08-27 15:54:43 -07:00
Brian Anderson
fcc031c5b4
Convert std::io to istrs. Issue #855
2011-08-27 15:54:43 -07:00
Brian Anderson
20178b9312
Convert std::run to istrs. Issue #855
2011-08-27 15:53:09 -07:00
Brian Anderson
4cf2e510e0
Convert std::getopts to istrs. Issue #855
2011-08-27 15:53:09 -07:00
Brian Anderson
c2eafd268b
Convert std::fs to istrs. Issue #855
2011-08-27 15:53:09 -07:00
Brian Anderson
051f1ff562
Convert std::sha1 to istrs. Issue #855
2011-08-27 15:53:09 -07:00
Brian Anderson
53be480d20
Convert std::int to istrs. Issue #855
2011-08-27 15:53:08 -07:00
Brian Anderson
ee2a11eb4f
Convert std::uint to istrs. Issue #855
2011-08-27 15:53:08 -07:00
Brian Anderson
805e3098c5
Don't output bogus spans when reporting a message without one.
...
Emacs gets confused by <input>:0:0:0:0:
2011-08-27 15:45:11 -07:00
Brian Anderson
609e38d8e7
Output error spans that don't confuse emacs compilation mode. Closes #845
2011-08-27 15:39:53 -07:00
Eric Holk
640886ceb6
Polymorphic MapReduce!
2011-08-26 18:03:33 -07:00
Eric Holk
78f07a1453
Deleting trailing whitespace
2011-08-26 18:03:32 -07:00
Patrick Walton
5fe80a0d48
rt: Allow closures to be logged
2011-08-26 17:05:59 -07:00
Paul Stansifer
230a5869b4
Bugfix. --pretty typed
requires expansion. Closes #691 .
2011-08-26 15:13:57 -07:00
Brian Anderson
22d4641a30
Fix invalid reads of cstrs in trans
2011-08-26 14:03:22 -07:00
Brian Anderson
2744bcd693
Revert "Use cstrcache in C_str, C_cstr, C_shape."
...
This reverts commit d5173b1f2cc174d53272be0d14a8290c05b8670a.
2011-08-26 13:58:26 -07:00
Brian Anderson
f0820662c9
Revert "Add rustc::middle::cstrcache for getting c string bufs safely"
...
This reverts commit 4e136d1fd9bd5536d441c062d41e7b71b375a942.
2011-08-26 13:58:19 -07:00
Brian Anderson
d5173b1f2c
Use cstrcache in C_str, C_cstr, C_shape.
...
This fixes up the current leaks.
2011-08-26 13:20:23 -07:00
Brian Anderson
4e136d1fd9
Add rustc::middle::cstrcache for getting c string bufs safely
...
We continue to leak string buffers in trans so this creates a way to get c
string buffers from strings while guaranteeing that they are not freed before
use.
Hopefully this can be made efficient in the istr regime.
2011-08-26 13:20:23 -07:00
Tim Chevalier
c02f346e2c
Revert "Revert "Use typestate constraints for trans_be""
...
This reverts commit b0db13956f4f106c4bf5a9210c7df439b34506a4.
(Should work now that we have a new snapshot)
2011-08-26 10:14:58 -07:00
Marijn Haverbeke
5917d80cd7
Pass stuff to take_ty, free_ty, and drop_ty by address, even when immediate
...
The glue-calling will spill the values again anyway. This should
prevent a lot of load/spill junk in the output. It is also necessary
to be able to have unique vecs be immediate values (take must know the
actual address to be able to duplicate).
2011-08-26 11:20:10 +02:00
Tim Chevalier
b0db13956f
Revert "Use typestate constraints for trans_be"
...
This reverts commit 1b60bba141c54f374d3378aa229c756d4a8f7f3d.
(Need a snapshot first)
2011-08-26 00:59:41 -07:00
Tim Chevalier
1b60bba141
Use typestate constraints for trans_be
...
trans_be now has a precondition that its expression argument
is a call expr. Obviously this code may be going away soon, but
I wanted to exercise typestate somehow and this was an easy one :-)
2011-08-26 00:47:21 -07:00
Tim Chevalier
26e1cacb21
Let typestate constraints mention pattern-bound vars
2011-08-26 00:39:50 -07:00
Tim Chevalier
b099760269
Remove remaining use of 'pred' and make 'pred' a non-reserved word. Huzzah\!
2011-08-25 22:26:45 -07:00
Tim Chevalier
48c6953001
Remove typestate workaround that's no longer necessary
2011-08-25 18:48:34 -07:00
Tim Chevalier
f841e89443
Support unchecked blocks
...
This patch supports the syntax
unchecked {
...
}
to disable purity checking within a block. Presumably it will only be
used within a declared "pure fn". However, there is no checking that it
doesn't occur elsewhere, and it would be harmless for it to do so.
I went with Lindsey's suggestion for the syntax, but it's subject to
change.
This allows you to write code that uses predicates that call arbitrary
Rust functions, but you must declare your intentions by wrapping it in
an unchecked { ... } block. The test case run-pass/unchecked-predicates.rs
demonstrates how to do that.
2011-08-25 18:28:23 -07:00
Tim Chevalier
1cb85015c3
Change "pred" to "pure fn" within the compiler.
2011-08-25 18:24:40 -07:00
Tim Chevalier
e241f2996d
Allow pure fns to have any return type
2011-08-25 17:23:35 -07:00
Patrick Walton
8bd019bdc8
rt: Remember the number of captured type descriptors for objects in the type descriptor crate cache
2011-08-25 14:21:05 -07:00
Brian Anderson
608f7ccded
Move ast::pat_id_map to ast::util
2011-08-25 14:15:54 -07:00
Patrick Walton
880fd788eb
rustc: Add an extra flag to object tydescs so that shapes know how to find the captured subtydescs
2011-08-25 12:01:10 -07:00
Tim Chevalier
da766791d3
hmm, this should have been in the last commit. Oops.
2011-08-24 14:29:08 -07:00
Tim Chevalier
c6155d1fd1
Change "pred" to "pure fn" (but still accept "pred")
...
This is part 1 of changing the "pred" keyword to "pure fn".
Right now, the compiler accepts both "pred" and "pure fn".
2011-08-24 14:21:37 -07:00
Marijn Haverbeke
fa97793139
Revert "Back out copy-glue"
...
This reverts commit 629ee94a0b360e2df1a1bbf7bf61ef346adf36ad.
2011-08-24 20:30:20 +02:00
Brian Anderson
60547f6500
Use memmove to load istr literals. Issue #855
2011-08-24 10:24:59 -07:00
Marijn Haverbeke
629ee94a0b
Back out copy-glue
...
This wasn't a good idea after all.
2011-08-24 17:05:53 +02:00
Marijn Haverbeke
15b540ded4
Use a single builder object throughout
...
This seems to be faster than creating separate ones for each block
context.
2011-08-24 16:57:33 +02:00
Marijn Haverbeke
b9112525ba
Move to a more lightweight builder system
...
You now do
bld::Ret(bcx, someval)
where you used to say
bcx.build.Ret(someval)
Two fewer boxes are allocated for each block context, and build calls
no longer go through a vtable.
2011-08-24 16:48:10 +02:00
Marijn Haverbeke
9f44df65ef
Ensure values created in an alt guard are cleaned up properly
2011-08-24 14:01:56 +02:00
Marijn Haverbeke
e58c48bdda
Optimize += [x] into a simple push operation
...
This is a preparation for making vectors always-on-the-heap again,
which would cause way too much malloc traffic for this idiom. I will
add an efficient std::vec::push in the future, and migrate += [x] to
that instead.
Reduces compiler code size by 3%
2011-08-24 13:57:27 +02:00