Commit graph

6462 commits

Author SHA1 Message Date
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