Marijn Haverbeke
15be2fc73a
Add 'copy' bounds to functions that were faultily accepted without
...
Issue #1390
2012-01-02 15:31:58 +01:00
Marijn Haverbeke
8c14943dea
Properly handle expression blocks in kind.rs
...
It was only noticing them in expr_block form, not as function
bodies.
Closes #1390
2012-01-02 15:23:11 +01:00
Lenny222
86279e8693
typo
2012-01-02 15:16:15 +01:00
Marijn Haverbeke
1741ef75ac
Write out vtables for interface implementations
...
Issue #1227
2012-01-02 15:15:28 +01:00
Marijn Haverbeke
371b61a23d
Drop two useless sub-passes from trans
...
Neither collect_tag_ctors nor the second pass in collect_items needed
to be separate passes.
Also remove obsolete obj_methods table kludge.
2012-01-02 15:15:28 +01:00
Marijn Haverbeke
a4694ce146
Create a trans_impl module
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
3a1710d21e
Key tcx.ty_param_bounds on node_ids, not def_ids
...
This makes it clearer that it's only valid for local nodes.
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
9f2369dc9f
Box arrays of parameter bounds
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
270b4273e7
Pass bounds to trans::type_of_fn
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
664a0443ad
More resolving and typechecking of bounded type parameters.
...
Extern interfaces still don't get recognized.
Issue #1227
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
40d5f288c3
Check that type parameter bounds are interface types
...
Issue #1227
2012-01-02 15:15:27 +01:00
Marijn Haverbeke
bd6646e698
Make last-use pass properly handle closed-over variables
...
Closes #1399
2012-01-02 10:20:58 +01:00
Brian Anderson
1c125d8829
llvm: Upgrade LLVM with FreeBSD segmented stack support
2012-01-01 20:26:34 -08:00
Jyun-Yan You
4566578fbd
link with gcc44+
2012-01-01 20:18:55 -08:00
Jyun-Yan You
274fc1b59c
fix link error
2012-01-01 20:18:55 -08:00
Jyun-Yan You
21eadbe6f1
add missing library, enable segmented stacks for freebsd
2012-01-01 20:18:55 -08:00
Jyun-Yan You
d4884b6c6e
forgot to add parentheses
2012-01-01 20:18:55 -08:00
User Jyyou
a59c4b1b47
freebsd support
2012-01-01 20:18:55 -08:00
Lenny222
f8d7a1c258
"str": extract to_upper/lower_case() into "char"
2012-01-01 13:15:30 -08:00
Stefan Plantikow
16405386f0
core: added support for bessel functions
2011-12-31 03:45:17 +01:00
Stefan Plantikow
a72b1413ed
Removed now obsolete mtypes module
2011-12-31 03:45:17 +01:00
Stefan Plantikow
57ac67a5aa
core: killed all math wrappers
2011-12-31 03:45:17 +01:00
Stefan Plantikow
49d36c7f85
Trying to remove wrappers from float
2011-12-31 03:45:17 +01:00
Stefan Plantikow
c314a9cad1
added more ops to cmath
2011-12-31 03:45:17 +01:00
Stefan Plantikow
d124c6eda2
removes std::mtypes
2011-12-31 03:45:17 +01:00
Stefan Plantikow
e0cd06053a
added useful constants to math
2011-12-31 03:45:17 +01:00
Niko Matsakis
8319b5a252
add cap clause to pretty printer, with a test
2011-12-30 16:25:55 -08:00
Graydon Hoare
bfc9a499c2
Print usage messages to rustc and rustdoc when invoked with no args. Close #1394 .
2011-12-30 15:26:49 -08:00
Lenny222
ab2a643f27
add test for list:is_empty()
2011-12-30 10:54:31 +01:00
Niko Matsakis
aa5382bb13
split proto from fn_decl, as not all fn_decls know the proto.
...
this will address the (crashing) new test added.
2011-12-29 20:29:28 -08:00
Graydon Hoare
ca7d389e1d
Of course there were overlong lines.
2011-12-29 17:30:43 -08:00
Graydon Hoare
1cd132eef0
Teach unicode script to emit canonical and compat decomp mappings. Annoyingly large encoding.
2011-12-29 17:24:04 -08:00
Graydon Hoare
36c55b20a8
Add support in lexer for utf8 identifiers. No NFKC logic in char yet.
2011-12-29 14:45:18 -08:00
Lenny222
d07c6e8a0e
list: use predicate to enforce non-empty requirement
2011-12-29 21:24:03 +01:00
Graydon Hoare
5fd0a3be0c
Save and restore xmm regs across the call to UPCALL_NEW_STACK during __morestack, close #1388 .
2011-12-29 11:49:29 -08:00
Graydon Hoare
884adf38a1
Remove obsolete comments.
2011-12-29 10:21:05 -08:00
Marijn Haverbeke
816b0ac8ae
Box ty_param_bounds_and_ty
...
It contains a vector, which shouldn't be copied all the time.
2011-12-29 09:29:08 +01:00
Graydon Hoare
2ed1005bd7
On second thought, re-land pull request #1385 with backquotes; easier to grep, can change in the future.
2011-12-28 13:41:31 -08:00
Graydon Hoare
f2c88c1b80
Merge pull request #1385 from Lenny222/quotes
...
Use singlequotes in the typechecker error messages too, to distinguish code and English
2011-12-28 13:08:28 -08:00
Graydon Hoare
51227c1e8a
Merge pull request #1389 from erickt/master
...
misc standard library additions
2011-12-28 13:05:02 -08:00
Marijn Haverbeke
9236fdf39f
Move the kind datatype to middle::ty
...
The AST no longer references it.
2011-12-28 21:18:16 +01:00
Marijn Haverbeke
1ed6a27548
Change representation of type params to handle interface bounds
...
Issue #1227
2011-12-28 21:18:16 +01:00
Graydon Hoare
5930463faa
Tidy up some drift in runtime logging, close #1380 .
2011-12-28 11:53:12 -08:00
Erick Tryzelaar
b6cecdd4de
libstd: add bytes_reader and bytes_writer
...
This parallels nicely with string_reader and string_writer, but
working with raw byte strings. I'm not quite sure if the return
type for bytes_writer.get_bytes should be [u8] or [mutable u8]
though, so I'm arbitrarily picking mutable for now.
2011-12-28 11:19:41 -08:00
Erick Tryzelaar
1f0757c684
libstd: Allow io writer to write mutable arrays
2011-12-28 11:19:41 -08:00
Erick Tryzelaar
af41564747
libstd: add a method to generate random bytestrings.
2011-12-28 11:19:41 -08:00
Erick Tryzelaar
5d84652f51
comp: minor cleanup.
2011-12-28 11:19:41 -08:00
Erick Tryzelaar
38e796b943
libcore: Fix a typo.
2011-12-28 11:19:41 -08:00
Stefan Plantikow
7fd62bb2b5
Made matching machine types equal to float, int, uint ( fixes #1376 )
2011-12-28 18:02:49 +01:00
Brian Anderson
b9b9b3e570
rt: Set the initial obstack size to 128 bytes
...
Double the size on each allocation
2011-12-25 19:18:05 -08:00
Lenny222
0b9751b141
Use singlequotes in the typechecker too, to distinguish code and English
2011-12-25 20:27:09 +01:00
Graydon Hoare
b3eb9a0031
Merge pull request #1382 from Lenny222/char
...
"char": add is_lowercase(), is_uppercase()
2011-12-24 11:55:39 -08:00
Graydon Hoare
900bc1298d
Merge pull request #1377 from Lenny222/icu
...
std::unicode::icu: add "is*" functions + unit test
2011-12-24 11:54:07 -08:00
Lenny222
eb0cdc02e3
char: add is_lowercase(), is_uppercase()
2011-12-24 10:41:11 +01:00
Graydon Hoare
47271ab4c8
Forgot typo-fix.
2011-12-23 18:53:52 -08:00
Graydon Hoare
ac13f0da9e
Add support to libcore for encoded-in-rust unicode character properties, at least. Add script to compute them from unicode.org.
2011-12-23 18:48:08 -08:00
Marijn Haverbeke
46cddffb8f
Go back to a single visit_fn function in visit.rs
2011-12-23 18:45:02 +01:00
Marijn Haverbeke
711ff657e2
Get rid of visit_fn_block in visit.rs
...
It seems redundant and error-prone.
2011-12-23 18:24:49 +01:00
Marijn Haverbeke
25e65239ad
Check impls methods against the type of their iface.
2011-12-23 18:11:36 +01:00
Marijn Haverbeke
057617c665
Parse iface
items and interface references in impl
items.
...
The (temporary) syntax is
iface seq<T> {
fn len() -> uint;
fn iter(f: block(T));
}
// The 'blah<T>' can be left of to default the name of the
// impl to seq<T>. The 'of seq<T>' can be left off when
// not implementing a named interface.
impl blah<T> of seq<T> for [T] {
fn len() -> uint { vec::len(self) }
fn iter(f: block(T)) { for x in self { f(x); } }
}
2011-12-23 18:09:25 +01:00
Marijn Haverbeke
9292744959
Use the same type of record in ty::ty_fn and ty::method
...
Removes some more code duplication.
2011-12-23 16:11:35 +01:00
Marijn Haverbeke
970f5cc0e4
Make ast::ty_method hold a fn_decl, rather than duplicating its fields
2011-12-23 13:32:17 +01:00
Graydon Hoare
f0dfbe7b1b
Register new snapshots, purge log_err and log_full in favour of log(...).
2011-12-22 17:53:53 -08:00
Graydon Hoare
ccb5b6fb25
Switch core macros to expand to log(level, ...).
2011-12-22 16:36:55 -08:00
Graydon Hoare
389329ef1e
Merge all 3 log syntaxes, tidy up residual misuses.
2011-12-22 16:14:00 -08:00
Erick Tryzelaar
f816d8c71c
cargo: Adding my package index.
2011-12-22 15:05:59 -08:00
Erick Tryzelaar
43a6bd110e
Whitespace cleanup.
2011-12-22 15:05:59 -08:00
Graydon Hoare
dcd771cd48
Merge branch 'master' of github.com:graydon/rust
2011-12-22 14:50:52 -08:00
Graydon Hoare
8b580954fe
Register snapshots and switch logging over to use of log_full or #error / #debug.
2011-12-22 14:42:52 -08:00
Lenny222
d812d06bc8
std::unicode: add functions, unit test
2011-12-22 22:58:38 +01:00
Marijn Haverbeke
9587c67230
Fix rustdoc for AST changes
2011-12-22 22:16:02 +01:00
Marijn Haverbeke
eacb629442
Work around unwinding bug
...
See issue #1374
2011-12-22 20:38:09 +01:00
Marijn Haverbeke
0490c36143
Unify some data structures in syntax::ast that were doing the same thing
...
As a preparation to removing some duplication in typeck.
2011-12-22 20:18:56 +01:00
Graydon Hoare
3b61064631
Revert all of yesterday's snapshots and try again. Cursed!
2011-12-22 10:30:04 -08:00
Graydon Hoare
47d27af228
Merge branch 'master' of github.com:graydon/rust
2011-12-22 09:30:03 -08:00
Graydon Hoare
8005f0c564
Register another snapshot. There was nothing redeeming about the last one.
2011-12-22 09:29:45 -08:00
Marijn Haverbeke
07d7f828cd
Fix tag_var_cache to cache crate-external tags
...
And to not return a bogus mutable box.
2011-12-22 16:23:49 +01:00
Marijn Haverbeke
44f921c8a9
Do not use == and != to compare ty::t values
...
Issue #828
2011-12-22 15:05:38 +01:00
Marijn Haverbeke
3ee630bbee
Add ty::new_ty_hash, clean up comparing of ty::t's
2011-12-22 15:05:38 +01:00
Marijn Haverbeke
e2e077c831
Remove trivial cast checker
...
I consider the added complexity not justified at this point, and it
interacts badly with the patches for issue #828 . Feel free to discuss.
2011-12-22 15:04:00 +01:00
Lenny222
7beb21c6e3
tests: add corner case (empty list)
2011-12-22 08:59:22 +01:00
Lenny222
341e4151d6
json: to_str() also for "null"
2011-12-22 08:46:50 +01:00
Lenny222
6f5a0a3b3b
json: add "null"
2011-12-22 08:46:49 +01:00
Graydon Hoare
047b02d5bc
More flailing on log syntax due to call-expr ambiguity in previous attempt.
2011-12-21 18:05:08 -08:00
Graydon Hoare
7bf12f3723
Register fixed snapshots.
2011-12-21 16:47:13 -08:00
Graydon Hoare
5d1cf2a872
Out-of-order-code typo. Snapshot again.
2011-12-21 15:43:38 -08:00
Graydon Hoare
8fd5802c65
Register snapshots.
2011-12-21 15:29:18 -08:00
Graydon Hoare
8d9e7deab5
Switch log_expr to carrying a full expr:u32 for level. Add log_full variant that parses that expr, prepare for snapshot.
2011-12-21 14:31:31 -08:00
Niko Matsakis
66856a39b3
add tests I forgot to add
2011-12-21 08:41:41 -08:00
Niko Matsakis
627217fa55
valid cap clause for kind-ness too
2011-12-21 06:14:36 -08:00
Niko Matsakis
c03d14a33d
upgrade kind check
2011-12-21 06:14:36 -08:00
Niko Matsakis
01cb1044f7
update pprinter to understand ret type of block, add warnings
2011-12-21 06:14:35 -08:00
Niko Matsakis
6a90140941
Make { || ... } sugar for any type of closure, inferred
2011-12-21 06:14:35 -08:00
Haitao Li
1e4de33374
rustc: Exclude stdin from codemap files when lookup_pos
...
Fixes issue #1362
2011-12-21 22:07:48 +08:00
Brian Anderson
085c813fe3
Merge pull request #1365 from elly/cargo
...
cargo: allow 'ref' package key for git packages.
2011-12-20 20:59:03 -08:00
Brian Anderson
dedfef4c4c
Revert "wip"
...
This reverts commit aeadc6269e
.
2011-12-20 20:57:04 -08:00
Brian Anderson
854daaec0c
rt: Lock before using the random number generator
...
Seeing crashes here trying to stress test concurrent tasks
2011-12-20 20:56:06 -08:00
Elly Jones
bbc534bccc
cargo: allow 'ref' package key for git packages.
...
This lets you specify e.g. a tag or a branch name to be checked out for that
package.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 23:41:22 -05:00
Brian Anderson
aeadc6269e
wip
2011-12-20 20:15:09 -08:00
Brian Anderson
128621be97
rt: Remove rust_task::grow. Obsolete
2011-12-20 20:02:57 -08:00
Graydon Hoare
2841ce7822
Missing comma.
2011-12-20 19:09:53 -08:00
Graydon Hoare
200439406d
Add pointer to cargo-central.
2011-12-20 19:04:02 -08:00
Elly Jones
2bdb0b6d40
cargo: syntax fixes
2011-12-20 21:52:50 -05:00
Elly Jones
9834321615
cargo: Add list and search.
...
In aid of search, add a new field to the packages.json format, called "tags",
whose value is a list of strings. Search accepts a list of tags, all of which
must match for the package to be shown.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 20:41:23 -05:00
Elly Jones
af564caff7
cargo: support optional signing of packages.json files.
2011-12-20 20:10:21 -05:00
Brian Anderson
cab4da70c8
rt: Don't check the stack canary on most upcalls
2011-12-20 16:50:54 -08:00
Brian Anderson
a5d48ce286
cargo: Make sources.json parsable again
2011-12-20 16:38:54 -08:00
Brian Anderson
82cdbfc818
cargo: Add my package index
2011-12-20 16:35:25 -08:00
Brian Anderson
2a490d1cf8
Revert "rt: Reduce the mac red zone to 2K"
...
This reverts commit ba8f369f89
.
2011-12-20 15:17:30 -08:00
Brian Anderson
ba8f369f89
rt: Reduce the mac red zone to 2K
2011-12-20 14:24:13 -08:00
Graydon Hoare
f5c4cc70d6
Merge pull request #1361 from elly/rustdoc
...
rustdoc: delete bogus license text
2011-12-20 14:22:41 -08:00
Elly Jones
c83cc5792f
rustdoc: Some rights reserved?
2011-12-20 17:19:46 -05:00
Elly Jones
00af3406fe
rustdoc: delete bogus license text
...
Rustdoc is under the same license as the rest of Rust, not under apache-2.0.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 17:15:49 -05:00
Graydon Hoare
f2715f3c64
Merge pull request #1360 from elly/rustdoc
...
rustdoc: Add.
2011-12-20 14:07:55 -08:00
Brian Anderson
2e230b1cf9
rt: Reduce the linux red zone to 2K
2011-12-20 14:02:59 -08:00
Brian Anderson
6443a7b513
rt: Do fewer stack canary checks
2011-12-20 13:54:47 -08:00
Elly Jones
fb0896fe7b
rustdoc: Add.
...
Parses #[doc] attributes on top-level module items and generates Markdown.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-20 16:52:04 -05:00
Graydon Hoare
3bc4da96f1
Inject "core macros" into default syntax-expansion environment. Bit of a kludge but enough to work on logging-via-macros.
2011-12-20 13:38:10 -08:00
Graydon Hoare
a24c19e867
Add companion-module core.rs that exports log levels and option/some/none everywhere.
2011-12-20 12:41:44 -08:00
Graydon Hoare
8bde865d09
Merge pull request #1349 from lht/driver
...
Separate driver rustc and librustc
2011-12-20 12:28:40 -08:00
Graydon Hoare
96d7f83eb0
Merge pull request #1350 from boggle/kmath
...
removed math leftovers from std
2011-12-20 12:28:07 -08:00
Brian Anderson
93fef2e113
rt: Parenthesize the red zone macros
2011-12-20 11:57:22 -08:00
Brian Anderson
784713ec68
rt: Add a canary value to the end of every stack
...
Check it on upcall entry and exit, and on stack deletion
2011-12-20 11:48:47 -08:00
Marijn Haverbeke
4475ec863d
Fix misleading comment about type_is_pod
2011-12-20 20:47:03 +01:00
Brian Anderson
56ec9cb278
rt: Run yet more task_start_wrapper cleanup on the C stack
2011-12-20 10:29:40 -08:00
Stefan Plantikow
b957916e06
removed math leftovers from std
2011-12-20 18:07:36 +01:00
Haitao Li
bc95ccb536
Separate driver rustc and librustc
...
rustc is now a minimal wrapper of librustc.
2011-12-20 21:06:04 +08:00
Haitao Li
28b825d846
test: Remove 'error:' from error pattern
...
May include ansi escape code for color rendering on certain terminal.
2011-12-20 15:38:40 +08:00
Haitao Li
5cfcf20b25
rustc: Cleanup unused ext_map
2011-12-20 15:38:40 +08:00
Haitao Li
5e3ffb6cbd
rustc: Re-export the same name in different namespaces
...
Issue #1115 .
2011-12-20 15:38:40 +08:00
Haitao Li
bd300636ee
rustc: Implement re-export of renamed modules
...
Issue #1115
2011-12-20 15:38:40 +08:00
Brian Anderson
25f7c844df
rt: Don't reuse stack segments when they are not big enough
2011-12-19 22:47:28 -08:00
Brian Anderson
05bf105c90
rt: Rename asm_call_on_stack to __morestack
...
Newer gdb's will backtrace through functions named __morestack even
if they change the stack.
2011-12-19 22:05:40 -08:00
Brian Anderson
f302b79d61
Register snapshots
2011-12-19 21:43:01 -08:00
Brian Anderson
edf6e1ec0e
rt: Zero the bottom frame's return address and base pointer
...
My reading of libunwind leads me to believe this is expected.
Closes #1322
2011-12-19 18:47:39 -08:00
Brian Anderson
586281e2d6
libcore: Remove stack alignment from task spawning
...
This is already done by the native task start code. Closes #1324
2011-12-19 18:43:39 -08:00
Brian Anderson
1bfc4e2e6c
rt: Save and restore %rax/%eax in __morestack
...
This doesn't matter now since we use an out pointer for return
values but it's sure to show up mysteriously someday.
2011-12-19 18:16:21 -08:00
Brian Anderson
c3569abb8c
rt: Remove some unused stack from i386/morestack.S
2011-12-19 18:16:19 -08:00
Brian Anderson
d2e7336a01
rt: Remove unused saves from __morestack
2011-12-19 16:24:10 -08:00
Brian Anderson
50dc80f617
rt: Give upcall_new_stack the same convention as other upcalls
2011-12-19 16:24:10 -08:00
Brian Anderson
bedcaad97e
rt: Give upcall_del_stack the same convention as other upcalls
2011-12-19 16:24:10 -08:00
Niko Matsakis
55a2fd18ec
implement capture clauses (move, in particular) and integrate
...
them into type state and so forth
2011-12-19 14:07:46 -08:00
Niko Matsakis
41ae146057
integrate cap clause into type state, but not trans
2011-12-19 14:07:46 -08:00
Niko Matsakis
b2b2a430df
resolve capture clauses
2011-12-19 14:07:46 -08:00
Niko Matsakis
b0f1a5f051
when collecting free vars, track the span where it is used too
2011-12-19 14:07:46 -08:00
Niko Matsakis
98cbbbb642
impl the proper partial order between fn types
2011-12-19 14:07:46 -08:00
Graydon Hoare
1bc6e72b97
Remove cargo from snapshot file-list again; overestimated.
2011-12-19 13:42:33 -08:00
Graydon Hoare
abbd86f1e6
Merge pull request #1334 from boggle/kmath
...
preparing for removing math from std
2011-12-19 11:58:19 -08:00
Erick Tryzelaar
02d84d89e0
libcore: add splitn to split a string N times.
2011-12-19 10:22:07 -08:00
Erick Tryzelaar
8e54e74be4
libcore: add vec push.
...
This is a simple wrapper around grow for the common
case of pushing a value on the end of a vector.
2011-12-19 10:22:07 -08:00
Erick Tryzelaar
6b1c60d312
libcore: Add vec any2 and all2 functions.
2011-12-19 10:22:07 -08:00
Erick Tryzelaar
f9df32adac
vim comment highlighting can contain comments.
2011-12-19 07:27:17 -08:00
Erick Tryzelaar
a66f0688fd
getopts: add test for strings with spaces.
2011-12-19 07:27:16 -08:00
Erick Tryzelaar
8e9be037d1
Simplify getopts::find_opt.
2011-12-19 07:27:16 -08:00
Erick Tryzelaar
9db3525e42
Fix a typo.
2011-12-19 07:27:16 -08:00
Marijn Haverbeke
e4e2d6d1a1
Fix bug in type parameter handling for impl methods
...
The parameters of the impl weren't being combined in the right way
with the parameters of the methods. The test worked only by accident.
Issue #1227
2011-12-19 15:43:02 +01:00
Marijn Haverbeke
619d7c3f72
Associate names with types introduced by items
...
Issue #828
This is not a full solution yet. To really get sane error messages,
we'll also have to guess the name to apply to literals, which seems
non-trivial.
2011-12-19 13:52:58 +01:00
Marijn Haverbeke
60acae4df7
Add type argument field to expr_path
...
This way, you can explicitly provide type parameters when calling a
generic method.
Issue #1227
2011-12-19 10:43:23 +01:00
Marijn Haverbeke
4d524b957f
Complain when multiple methods in the same scope match a call
...
Issue #1227
2011-12-19 10:13:42 +01:00
Marijn Haverbeke
7185ea35c3
Use quotes around tokens in parser error messages to make them more readable
...
Closes #1328
2011-12-19 09:59:51 +01:00
Josh Matthews
6637340c28
Properly calculate base working dir for compile units.
2011-12-19 03:42:58 -05:00
Josh Matthews
1d3d28bdf1
Long lines.
2011-12-19 02:52:21 -05:00
Josh Matthews
52dbe4cc1d
Fix merge error and rebasing changes for debug information.
2011-12-19 01:36:37 -05:00
Josh Matthews
df6052c4f8
Remove source line generation craziness. Ensure incorrect subprogram caches are not conflated. Generate ast_map entries for object members and resource constructors and destructors.
2011-12-18 23:53:44 -05:00
Josh Matthews
c6f16ed2c4
Hide extended, unfinished debug information behind --xg compiler flag.
2011-12-18 23:48:04 -05:00
Josh Matthews
8597077b7a
Clean up some names and factor out some common code.
2011-12-18 23:46:39 -05:00
Josh Matthews
61e8b44f20
Add support for vectors.
2011-12-18 23:46:39 -05:00
Josh Matthews
30d019d520
Add record debug information.
2011-12-18 23:46:39 -05:00
Josh Matthews
f43ed8f1bd
Fix up ast types after literal changes.
2011-12-18 23:44:21 -05:00
Josh Matthews
134585bb06
Add debug information for boxed and unique values.
2011-12-18 23:44:21 -05:00
Josh Matthews
e25f6d03eb
Remove rebase error.
2011-12-18 23:44:21 -05:00
Josh Matthews
064d757ece
Handle inferred basic types when generating debug information for types.
2011-12-18 23:44:21 -05:00
Josh Matthews
6c26b892e4
Add argument metadata and aborted return value code.
2011-12-18 23:44:21 -05:00
Josh Matthews
0752252737
Use proper size and alignment of types for debuginfo.
2011-12-18 23:44:21 -05:00
Josh Matthews
1da4b3b987
Fix build error after rebasing.
2011-12-18 23:44:21 -05:00
Josh Matthews
0b303523bd
Fix up local variable support so it actually works.
2011-12-18 23:44:21 -05:00
Josh Matthews
e95c56f855
Fix up subprogram composite type nodes, and lexical block context nodes.
2011-12-18 23:44:21 -05:00
Josh Matthews
544bcfece2
Fix LLVM assertions when lowering log statements.
2011-12-18 23:44:21 -05:00
Josh Matthews
fa6d871e11
Build fix.
2011-12-18 23:43:37 -05:00
Josh Matthews
e383004985
Add debug info for local vars, basic fundamental types, and lexical blocks, along with source line information generation for individual instructions.
2011-12-18 23:41:03 -05:00
Josh Matthews
10030a37d5
Generate basic debug info for files, functions and compile units.
2011-12-18 23:39:54 -05:00
Stefan Plantikow
fa27724a4b
std: getopts now uses result::t ( fixes #1289 )
2011-12-18 18:55:39 -08:00
Stefan Plantikow
e1a9668ab2
preparing for removing math from std
2011-12-19 03:19:37 +01:00
Brian Anderson
bd6b80c972
rt: Get rid of the rethrow in upcall_fail
...
Throwing in upcall_fail ends up running lots of code in the red zone. To avoid
it we have the personality function figure out which stack it's on and switch
as needed.
2011-12-18 17:17:31 -08:00
Brian Anderson
c73eb8ff51
rt: Create different stack-switching paths for upcalls and shims
...
Shims need to play with the stack limit, upcalls don't. Only one upcall,
upcall_fail is allowed to catch, and we need a find a way to get rid of that
catch as well because it results in _Unwind_Resume running off the end of the
Rust stack.
2011-12-18 16:17:55 -08:00
Brian Anderson
f57fd8de1f
rt: Run the cycle collector on the C stack
2011-12-18 15:23:44 -08:00
Brian Anderson
74d5faa86e
rt: Give each platform its own red zone definition
2011-12-18 15:23:41 -08:00
Brian Anderson
762d7e43a6
rt: Trim the red zone to 20k on all platforms
2011-12-18 15:22:56 -08:00
Brian Anderson
12cde6ebee
libcore: Remove task::set_min_stack
...
This existed to make up for the lack of stack growth, and wasn't generally
safe.
2011-12-18 14:10:41 -08:00
Brian Anderson
22ac628e8c
test: Enable all morestack tests
2011-12-18 13:37:33 -08:00
Marijn Haverbeke
f4acaf6934
Only look for a matching method when normal field access fails
...
We should probalby warn when defining a method foo on {foo: int} etc.
This should reduce the amount of useless typevars that are allocated.
Issue #1227
2011-12-18 19:41:44 +01:00
Marijn Haverbeke
b36ade1367
Improve efficienty of impl cache in resolve
...
And fix a bug where importing anything from an external module would
import all impls in the module.
Issue #1227
2011-12-18 19:07:26 +01:00
Brian Anderson
3fa930f598
rt: Remove a bogus FIXME from ~rust_task
2011-12-18 02:09:41 -08:00
Brian Anderson
1a1fdf34b1
rt: Add lots of documentation to __morestack
2011-12-18 02:02:35 -08:00
Brian Anderson
7359fa422b
Revert "rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac"
...
This reverts commit 68f4849f0f
.
2011-12-18 00:42:46 -08:00
Brian Anderson
cb5f636ff1
rustc: Don't emit compact unwind info on mac
...
It's not compatible with the subtlety of __morestack
2011-12-18 00:42:37 -08:00
Brian Anderson
68f4849f0f
rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac
2011-12-17 17:54:43 -08:00
Brian Anderson
39c8f0cb4a
libstd: Long lines
2011-12-17 17:02:07 -08:00
Brian Anderson
555006a304
rustc: Remove --stack-growth option
2011-12-17 16:58:26 -08:00
Brian Anderson
fe683dfb80
rt: Get rid of the valgrind guard bytes at the end of the stack
...
Preventing us from writing beyond our allocations is _what valgrind does_,
so telling valgrind not to let us write to the end of the stack isn't
buying anything.
2011-12-17 16:46:50 -08:00
Brian Anderson
00be346089
libstd: Add 'xterm-256-color' to list of color-enabled terminals
2011-12-17 16:44:27 -08:00
Brian Anderson
471b4d6e58
rt: Use a DWARF CFI scheme that works on mac in __morestack
2011-12-17 14:10:44 -08:00
Brian Anderson
7da8ab8fab
rt: Turn on stack alignment checks for mac
2011-12-17 14:10:40 -08:00
Brian Anderson
4ac345939c
rt: Cache an extra stack segment to avoid bad behavior at stack boundaries
2011-12-17 13:45:38 -08:00
Brian Anderson
0ed5117a9d
rt: Set the default stack size to 768 bytes. Double on each alloc
2011-12-17 13:45:38 -08:00
Elly Jones
bb2c1f7613
cargo: complain if rustc fails
2011-12-16 20:40:10 -08:00
Brian Anderson
f8d06a2a84
Merge pull request #1320 from elly/cargo
...
cargo: shorten a line
2011-12-16 20:16:13 -08:00
Elly Jones
648b69d692
cargo: shorten a line
2011-12-16 23:15:13 -05:00
Graydon Hoare
bf4efa3a20
Merge pull request #1319 from elly/cargo
...
cargo: support distributed package indexes
2011-12-16 19:48:19 -08:00
Elly Jones
c8427e4ffd
cargo: fix lib detection logic
2011-12-16 22:39:33 -05:00
Graydon Hoare
c758e11fd3
Install and snapshot cargo by default.
2011-12-16 19:37:27 -08:00
Elly Jones
b7e30bc4c5
cargo: fix remaining warnings
2011-12-16 22:31:49 -05:00
Elly Jones
7bd003a1d0
cargo: remove obsolete rust-pkg-index lookup code
2011-12-16 22:27:47 -05:00
Elly Jones
9a0b89b534
cargo: fix some warnings
2011-12-16 22:27:04 -05:00
Elly Jones
327af5b9f3
cargo: flesh out usage
2011-12-16 22:24:01 -05:00
Elly Jones
8b7a41f23d
cargo: Support distributed package indexes.
...
Indexes are listed in ~/.cargo/sources.json and ~/.cargo/local-sources.json, the
former of which is stored in the rust source tree in src/cargo. Each entry in
either of these files is a source, which is a dictionary with (currently) a
single key, "url". The supplied url should point to a json list, each element of
which should be a dictionary with four keys: "name", "uuid", "url", and
"method". The name and uuid serve to identify the package; the method describes
how to fetch the package; the url describes where to fetch it from. Currently
supported methods are "git", "http", and "file".
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-12-16 22:08:25 -05:00
Brian Anderson
b5b2ac0ec4
rt: Make 32-bit morestack compatible with fastcc
2011-12-16 18:18:43 -08:00
Brian Anderson
7d51961b6f
rt: Fix saved address of unwinding %rsp in __morestack
...
I haven't thought too deeply about this, but I think I was telling the
unwinder to use the stack pointer for the wrong frame when unwinding. Not sure
how that could have worked at all, but this results in the correct alignment
for cleanups.
2011-12-16 18:18:43 -08:00
Brian Anderson
9d70c1949e
rt: Fix alignment of the call to upcall_del_stack in __morestack
2011-12-16 18:18:43 -08:00
Brian Anderson
23df4de86d
rt: Fix alignment of new stack segments
2011-12-16 18:18:43 -08:00
Brian Anderson
ab4f35c1f1
rt: Only call check_stack_alignment on linux
2011-12-16 18:18:43 -08:00
Brian Anderson
121c420184
rt: Insert stack alignment checks into upcalls
2011-12-16 18:18:43 -08:00
Elly Jones
10cf4a1b0a
cargo: wip
2011-12-16 20:33:39 -05:00
Graydon Hoare
4f826b34cb
Update build machinery to build and install librustc everywhere (including snapshots).
2011-12-16 17:21:28 -08:00
Brian Anderson
1477fb3f2b
libstd: Temporarily use #[link_name = ""]
2011-12-16 15:29:59 -08:00
Graham Fawcett
f14bc54b06
allow #[link_args] with #[nolink]. For now, fail if two modules link same lib, and second has link_args.
...
I think it should undefined to have multiple modules that link in the same
library, but provide different link arguments. Unfortunately we don't track
link_args by module -- they are just appended as discovered into the crate
store -- but for now, it should be an error to provide link_args on a module
that's already been included (with or without link_args).
2011-12-16 15:29:59 -08:00
Graham Fawcett
7ddd353ef6
implement #[nolink]; deprecate #[link_name = ""]; note in stdlib to remove empty link_name.
...
Can't remove them from stdlib until the snapshotted compiler supports #[nolink].
2011-12-16 15:29:59 -08:00
Elly Jones
89e880d613
std: file_is_dir -> path_is_dir, add path_exists
2011-12-16 17:37:21 -05:00
Marijn Haverbeke
b11268780e
Fix arg order for vec::map call
2011-12-16 22:29:01 +01:00
Marijn Haverbeke
58a81a68ed
Finish resolving and calling of crate-external impls
...
Issue #1227
2011-12-16 22:18:38 +01:00
Marijn Haverbeke
dd9693f211
Reserve node_id 0 for the crate top-level module
...
And define a const to refer to it.
2011-12-16 22:17:47 +01:00
Graydon Hoare
dbfa1b5689
Merge pull request #1317 from boggle/fix1315
...
fix to #1315 + small additions to std::either and result
2011-12-16 13:01:47 -08:00
Graydon Hoare
1bf078f988
Remove hopefully-now-redundant chops of ./ at the beginning of filenames in cargo.
2011-12-16 12:28:39 -08:00
Graydon Hoare
d1bca753b8
Switch fmt extension to reference extfmt that's in core.
2011-12-16 10:59:11 -08:00
Stefan Plantikow
7d786318a1
std: declared fns as pure where sensible
2011-12-16 18:18:34 +01:00
Stefan Plantikow
bfbaadc694
core: marked fns as pure where possible
2011-12-16 17:41:07 +01:00
Niko Matsakis
88818334b7
update to not look at descs[], which is not necessarily valid
...
if the input is a statically allocated type_desc
2011-12-16 08:06:45 -08:00
Niko Matsakis
34283c6a78
add test that requires capturing generic descriptors
2011-12-16 08:06:45 -08:00
Niko Matsakis
4465c1ad02
first test of sendable fns (passes)
2011-12-16 08:06:45 -08:00
Niko Matsakis
21cc0c6e69
revoke cleanup of sendable closure once construction completes
2011-12-16 08:06:44 -08:00
Niko Matsakis
52f76400b5
extend with ty_send_type and ty_opaque_closure
2011-12-16 08:06:44 -08:00
Niko Matsakis
b5e5043d5d
reorder block() argument to bitv::process()
2011-12-16 08:01:05 -08:00
Stefan Plantikow
1fe4bd0f43
std: added either::flip, to_result and result::to_either
2011-12-16 16:31:42 +01:00
Niko Matsakis
ac6aba016e
rename iter2 to iteri to match typical convention
2011-12-16 07:17:29 -08:00
Niko Matsakis
2833ca478c
reorder args to the various vec, option fns so blk comes last
2011-12-16 07:17:23 -08:00
Marijn Haverbeke
0a3626161d
Write impl data to crate library files
...
(No one is actually reading it yet.)
Issue #1227
2011-12-16 14:17:52 +01:00
Marijn Haverbeke
d529757515
Make polymorphic impl methods work
...
Something will still have to be done to the AST to make it possible to
say `x.foo::<int>()`, since currently field access never allows type
parameters.
Issue #1227
2011-12-16 13:47:48 +01:00
Marijn Haverbeke
cff6bdd036
Change syntax for impl
...
Move the name of the bundle to the front, allow type parameters (not
handled yet), and add a 'for' keyword:
impl utils for int {
fn str() -> str { int::str(self) }
fn times(f: block()) { ... }
}
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
4f826d81f6
Make 1.f parse as a field access on the integer 1
...
A dot is only considered part of a number when not followed by a letter
Closes #1306
2011-12-16 11:46:57 +01:00
Marijn Haverbeke
14fcb135a9
Improve resolution of impls
...
Issue #1227
2011-12-16 11:46:57 +01:00