Commit graph

7242 commits

Author SHA1 Message Date
Niko Matsakis
56db37d4c7 add iter library in preliminary form (limited syntactic support) 2012-01-31 19:21:26 -08:00
Tim Chevalier
e5d095d67e Change option::t to option
Now that core exports "option" as a synonym for option::t, search-and-
replace option::t with option.

The only place that still refers to option::t are the modules in libcore
that use option, because fixing this requires a new snapshot
(forthcoming).
2012-01-31 17:05:20 -08:00
Kevin Cantu
1f795ff3b0 Re-implementing str::to_upper and str::to_lower using str::map 2012-01-31 14:29:11 -08:00
Kevin Cantu
a8b657397a Add str::split_chars_iter and str::splitn_chars_iter 2012-01-31 14:29:11 -08:00
Kevin Cantu
ebf14cb3a9 Rename str::iter_chars -> str::chars_iter 2012-01-31 14:29:11 -08:00
Kevin Cantu
c7454f5595 Rename str::to_chars -> str::chars 2012-01-31 14:29:11 -08:00
Kevin Cantu
685a434e0a Rename str::loop_chars to str::all,
rename str::loop_chars_sub to str::substr_all, and
propagate this change to std::rope and rustdoc's calls to these
2012-01-31 14:29:11 -08:00
Kevin Cantu
be9129f556 Comment fixes in str 2012-01-31 14:29:11 -08:00
Kevin Cantu
03b8c8df01 Rename str::from_byte(s) to str::unsafe::from_byte(s),
mark them as unsafe,
make comp/driver/driver.rs use str::from_bytes...
2012-01-31 14:29:10 -08:00
Graydon Hoare
24668d7578 Merge pull request #1713 from killerswan/manpg
Updating the manpage and usage message
2012-01-31 14:09:48 -08:00
Graydon Hoare
fb236b0bb6 Merge branch 'master' of github.com:mozilla/rust 2012-01-31 12:51:53 -08:00
Tim Chevalier
45c1dfe5b3 Don't compute pre- and postconditions for item_consts
Since item_consts can't refer to or modify local variables, they
don't participate in typestate and thus get empty pre and
postconditions by default.

Closes #1660
2012-01-31 11:52:46 -08:00
Graydon Hoare
f7d756fcac Remove NSIS package, obsolete (and hazardous). 2012-01-31 11:46:47 -08:00
Tim Chevalier
fba35e1a3c Require alts to be exhaustive
middle::check_alt does the work. Lots of changes to add default cases
into alts that were previously inexhaustive.
2012-01-31 10:08:24 -08:00
Marijn Haverbeke
813a55d891 Move walk_ty to stack closure 2012-01-31 13:02:46 +01:00
Marijn Haverbeke
25d60172d6 Don't consider references to nullary tag variants lvals in kind.rs
This allows us to express option::map with noncopyable type
parameters, which makes sense, since the type params aren't being
copied (none doesn't contain any).
2012-01-31 13:02:46 +01:00
Brian Anderson
b9bb58f104 core: Add ctypes::c_char 2012-01-30 22:08:57 -08:00
Brian Anderson
19b9a0d363 rustdoc: Reenable a working test 2012-01-30 21:02:03 -08:00
Brian Anderson
868d9c753c rustdoc: Add some rustdocs 2012-01-30 21:01:09 -08:00
Brian Anderson
bc450e60c3 rustdoc: Add ifaces to demo module 2012-01-30 20:54:02 -08:00
Brian Anderson
38197d8728 rustdoc: Write markdown for ifaces 2012-01-30 20:53:52 -08:00
Brian Anderson
f4aba18ae7 rustdoc: Apply generic string ops to ifaces 2012-01-30 19:37:32 -08:00
Brian Anderson
fd7bb70d6f rustdoc: Promote iface descriptions to brief descriptions 2012-01-30 19:37:32 -08:00
Brian Anderson
a64030697b rustdoc: Prune undocumented ifaces 2012-01-30 19:37:32 -08:00
Brian Anderson
2c495a9bf8 rustdoc: Add iface attribute docs to the doc tree 2012-01-30 19:37:32 -08:00
Brian Anderson
b8a683415c rustdoc: Add attribute parsing for ifaces and methods 2012-01-30 19:37:32 -08:00
Brian Anderson
dd1564a6d3 rustdoc: Add iface method type info to the doc tree 2012-01-30 19:37:32 -08:00
Brian Anderson
c775798124 rustdoc: Add a test that unexported ifaces are pruned 2012-01-30 19:37:32 -08:00
Brian Anderson
cb4a383922 rustdoc: Extract iface doc nodes from the AST 2012-01-30 19:37:32 -08:00
Brian Anderson
d3aa174846 rustdoc: Add definition of iface docs 2012-01-30 19:37:32 -08:00
Kevin Cantu
8abcafe7ad Updating the manpage and usage message 2012-01-30 19:02:20 -08:00
Brian Anderson
fe745f1b5d rustdoc: Use fewer unique pointers 2012-01-30 13:05:25 -08:00
Brian Anderson
0e498da47e rustc: Allow attributes on methods. Closes #1709 2012-01-30 11:43:45 -08:00
Paul Woolcock
6ba3d24355 Remove ternary operator
`expr_ternary`, `ternary_to_if`, and all parses & lexer definitions have
been removed.
2012-01-30 18:21:19 +01:00
Paul Woolcock
a02493b969 Fix last failing test
All tests now pass, without the ternary operator.
2012-01-30 18:21:12 +01:00
Paul Woolcock
e1251f7b00 Change all ternary ops to if/then/else
All the files below had at least one instance of the ternary operator
present in the source.  All have been changed to the equivalent
if/then/else expression.
2012-01-30 18:21:01 +01:00
Paul Woolcock
e1f15a71e3 Alter/remove tests that include/concern ternary
3 tests, pretty/block-disambig.rs, run-pass/operator-overloading.rs,
and run-pass/weird-exprs.rs, all included the ternary operator.  These
were changed to use the if-then-else construct instead.

2 tests, run-pass/block-arg-in-ternary.rs and run-pass/ternary.rs, were
only there because of the ternary operator, and were removed.
2012-01-30 18:20:05 +01:00
Marijn Haverbeke
86d473ad1f Substitute type parameters more eagerly
This simplifies the typechecker a bit (no more ty_param_substs_opt_and_ty)
and is needed for another experiment I'm playing with. I hope it also
makes compilation faster (the bots will tell).
2012-01-30 17:28:30 +01:00
Marijn Haverbeke
964bd485c6 Revert self types 2012-01-30 11:37:52 +01:00
Marijn Haverbeke
98c3396ab6 Remove trailing whitespace in debuginfo.rs 2012-01-30 10:21:25 +01:00
Marijn Haverbeke
55c938b2c2 Only build debuginfo blocks for blocks that appear in the program text
I.e. a set of curly braces, not everything that creates a block
context in the trans pass.

Issue #1694
2012-01-30 10:06:06 +01:00
Brian Anderson
0ec92a4ca7 rustc: Add a missing llvm linkage type 2012-01-29 23:27:54 -08:00
Brian Anderson
c77f1d47f8 rustc: Add some missing llvm defs. Fix comments 2012-01-29 23:10:39 -08:00
Brian Anderson
fa13fd9d64 rt: Remove set_min_stack 2012-01-29 21:27:37 -08:00
Brian Anderson
cad4918b2a core: Remove sys::set_min_stack
This was a temporary hack with global effect. Eventually there will
be a real solution for controlling stack sizes.
2012-01-29 21:27:09 -08:00
Brian Anderson
6548cdd59b rt: Make the initial segment of the main task's stack 1MB
This is a trick to fool microbenchmarks. Closes #1681
2012-01-29 21:20:39 -08:00
Brian Anderson
361f90e618 rustdoc: Sort the items so modules are printed last 2012-01-29 14:51:09 -08:00
Brian Anderson
07ac2e1043 rustdoc: Add a sorting pass 2012-01-29 14:15:14 -08:00
Brian Anderson
55e69eb458 rustdoc: Extract method to get item names 2012-01-29 13:36:54 -08:00
Brian Anderson
dbe2928c4d rustdoc: Fix typo in attr_pass 2012-01-29 13:25:38 -08:00
Brian Anderson
f8c93bdbe1 rustdoc: Move mod docs into the item tag 2012-01-29 13:08:18 -08:00
Brian Anderson
9732e0d554 rustdoc: Move fn docs into the item tag 2012-01-29 12:47:06 -08:00
Brian Anderson
5aa6c3a49a rustdoc: Move const docs into the item tag 2012-01-29 12:46:26 -08:00
Brian Anderson
95e2b1b8f9 rustdoc: Add test that unexported resources are pruned 2012-01-29 11:38:44 -08:00
Brian Anderson
d56a4dd04b rustdoc: Move enum docs into the item tag 2012-01-29 11:38:44 -08:00
Brian Anderson
40cbc89b6f rustdoc: Move resource docs into the item tag 2012-01-29 11:38:44 -08:00
Brian Anderson
bfd8a14065 rustdoc: Create an item tag to hold doc for all item types 2012-01-29 11:38:44 -08:00
Marijn Haverbeke
2740a6b605 Fix mistake in previous commit 2012-01-29 19:57:57 +01:00
Marijn Haverbeke
d6996c0210 Fix bug where resolve didn't descend method ty params
Closes #1700
2012-01-29 19:46:36 +01:00
Josh Matthews
a831e7ce13 Merge remote-tracking branch 'mozilla/master' 2012-01-28 11:50:48 -05:00
Josh Matthews
fcb381410d Disable lexical block and function debug info caches to improve compilation time while #1694 is unfixed, and fix stack-exhaustion bug in block parent generation. 2012-01-28 11:50:26 -05:00
Brian Anderson
fc5ec630d4 rt: Remove unused variable 2012-01-27 18:45:43 -08:00
Brian Anderson
53dbde6cc2 rustc: Make 'attempted access of field' error non-fatal 2012-01-27 16:58:27 -08:00
Brian Anderson
3321880f13 Merge remote-tracking branch 'killerswan/fixing_strings_2'
Conflicts:
	src/comp/driver/driver.rs
	src/comp/middle/trans/base.rs
	src/comp/syntax/parse/lexer.rs
2012-01-27 16:44:40 -08:00
Brian Anderson
7e620f87a6 std: Long lines 2012-01-27 15:11:45 -08:00
Donovan Preston
6b42e6b298 Re-apply fixes brson made. 2012-01-27 15:07:29 -08:00
Donovan Preston
3d76922f97 Implement timers. 2012-01-27 14:04:13 -08:00
Marijn Haverbeke
e48bf6f3f4 Make occurs check in ty::fixup_vars more reliable
It wouldn't detect cycles that went through several type vars before.

Closes #1464
2012-01-27 18:58:52 +01:00
Marijn Haverbeke
362625008a Allow moving out of mutable unsafe pointers
This makes it possible to de-initialize values anywhere in
memory, which is needed, for example, for a fast imlementation
of vec::pop.
2012-01-27 17:15:40 +01:00
Marijn Haverbeke
dc55c06aa3 Properly check enum types for recursion
Closes #742
2012-01-27 16:03:43 +01:00
Marijn Haverbeke
03e9dac09a Move various trans_ modules under a trans:: umbrella module
Closes #1304
2012-01-27 13:20:36 +01:00
Marijn Haverbeke
b3f06c7d54 Stop passing spans to middle::trans functions that don't need them
Removes a bunch of (eventually) unused arguments. Makes span passing to debuginfo
explicit, instead of relying on the (usually incorrect) spans held in the contexts.

Closes #1439
2012-01-27 13:20:36 +01:00
Marijn Haverbeke
b80f0a3c9f Use the method name 'unary-' for overloading negation
It's less likely to clash with something than 'neg'.

Issue #1520
2012-01-27 10:06:53 +01:00
Brian Anderson
7b67e2d274 rustdoc: Write both crates and mods as header level 1 2012-01-26 23:16:42 -08:00
Brian Anderson
7c925cfaaf core: Long lines 2012-01-26 23:12:30 -08:00
Brian Anderson
7820c2f17a Merge pull request #1684 from rtanglao/master
rustdocs for f32.rs and f64.rs
2012-01-26 23:00:06 -08:00
Brian Anderson
094f91b685 rustdoc: Write markdown for resources 2012-01-26 22:54:20 -08:00
Brian Anderson
ca0aefa8bf rustdoc: Add resource arg tys to doc tree 2012-01-26 22:54:16 -08:00
Roland Tanglao
4e1bf8d692 rustdocs for f32.rs and f64.rs 2012-01-26 22:46:39 -08:00
Brian Anderson
e51ae23317 rustdoc: Apply generic string-op passes to resources 2012-01-26 22:27:13 -08:00
Brian Anderson
4c188fb82f rustdoc: Promote resource long descriptions to brief descriptions 2012-01-26 22:19:47 -08:00
Brian Anderson
21fc2a36d8 rustdoc: Build resource arguments as well 2012-01-26 22:14:16 -08:00
Brian Anderson
06ab83de2c rustdoc: Prune undocumented resources 2012-01-26 22:07:14 -08:00
Brian Anderson
ce7d150493 rustdoc: Add resource attribute docs to the doc tree 2012-01-26 21:39:20 -08:00
Brian Anderson
2efc6004b5 rustdoc: Parse resource doc attributes 2012-01-26 21:20:17 -08:00
Brian Anderson
97a1110c5f rustdoc: Add resource signatures to doc tree 2012-01-26 20:59:15 -08:00
Brian Anderson
9f80a17c0e rustc: Add pprust::res_to_str 2012-01-26 20:54:36 -08:00
Brian Anderson
e44467a47f rustdoc: Add resources to the doc fold 2012-01-26 20:34:16 -08:00
Brian Anderson
23e9f7a1b6 rustdoc: Extract resources from the AST 2012-01-26 20:34:16 -08:00
Brian Anderson
7cf725355a rustdoc: Add a resource node to the doc tree 2012-01-26 20:34:16 -08:00
Brian Anderson
f0ba69a96f Remove the --no-core command-line option
It is superceeded by the #[no_core] attribute
2012-01-26 20:30:46 -08:00
Brian Anderson
a3beeac4ec Register snapshots 2012-01-26 18:39:00 -08:00
Graydon Hoare
0bf992969f Merge pull request #1669 from graydon/inno-setup
Add Inno Setup installer script rather than NSIS
2012-01-26 18:16:30 -08:00
Brian Anderson
a06850c8aa rustdoc: Prune unexported enums and variants 2012-01-26 17:29:55 -08:00
Brian Anderson
28fbb19664 rustc: Switch the --no-core switch to a #[no_core] attribute 2012-01-26 16:43:33 -08:00
Brian Anderson
2220d0f20f rustc: Make core injection a timed pass
It's not much of a pass, but lets be consistent
2012-01-26 16:23:48 -08:00
Brian Anderson
5610205363 rustc: Move core injection to its own module 2012-01-26 16:23:48 -08:00
Brian Anderson
335302f08d std: Fix types in uvtmp tests 2012-01-26 16:19:46 -08:00
Donovan Preston
9e39219d9b Shuffle around to work with rust-spidermonkey 2012-01-26 16:01:26 -08:00
Brian Anderson
91ee6afeae rustdoc: Set up the compiler session properly in prep for running resolve 2012-01-26 11:36:29 -08:00
Brian Anderson
38908581f7 rustdoc: Rename astsrv::ctxt.map to ast_map 2012-01-26 11:05:21 -08:00
Marijn Haverbeke
c590bdeea4 Make re-exporting of impls work
Closes #1438
2012-01-26 18:58:35 +01:00
Marijn Haverbeke
6bead0e4cc Use operator names for operator methods
The methods used to implement operators now simply use
the name of the operator itself, except for unary -, which is called
min to not clash with binary -. Index is called [].

Closes #1520
2012-01-26 15:52:28 +01:00
Marijn Haverbeke
305b1c8701 Fix small bug in iface self types
Issue #1661
2012-01-26 15:24:52 +01:00
Marijn Haverbeke
888262b337 Allow operator overloading of the indexing operator
The method `op_index` (which takes a single argument) is used for
this.

Issue #1520
2012-01-26 15:23:11 +01:00
Marijn Haverbeke
87b064b249 First stab at operator overloading
When no built-in interpretation is found for one of the operators
mentioned below, the typechecker will try to turn it into a method
call with the name written next to it. For binary operators, the
method will be called on the LHS with the RHS as only parameter.

Binary:

    +   op_add
    -   op_sub
    *   op_mul
    /   op_div
    %   op_rem
    &   op_and
    |   op_or
    ^   op_xor
    <<  op_shift_left
    >>  op_shift_right
    >>> op_ashift_right

Unary:

    -   op_neg
    !   op_not

Overloading of the indexing ([]) operator isn't finished yet.

Issue #1520
2012-01-26 14:25:06 +01:00
Marijn Haverbeke
1792d9ec96 Use string stored in codemap for pretty-printing comments and literals
Closes #1665
2012-01-26 10:52:08 +01:00
Marijn Haverbeke
ec4d05de3b Remove ty_native_fn
It was being used as a clumsy synonym of ty_fn.
2012-01-26 10:37:50 +01:00
Kevin Cantu
3afc16f7a4 Change FIXME comments in str 2012-01-25 23:20:10 -08:00
Kevin Cantu
4d7c297bea (FIX) Change encoder::encode_metadata to return a [u8] (which will become an LLVM string) 2012-01-25 22:27:29 -08:00
Kevin Cantu
5847cf0367 (TEMPORARY) Break something by making io::mem_buffer_str UTF-8 safe 2012-01-25 21:53:37 -08:00
Brian Anderson
566a4be1f8 rustdoc: Add some test enums to demo module 2012-01-25 21:04:53 -08:00
Brian Anderson
74e8b11194 rustdoc: Write markdown for enums 2012-01-25 21:04:53 -08:00
Brian Anderson
d6ce20973a rustdoc: Apply general string ops to enum docs 2012-01-25 21:04:53 -08:00
Brian Anderson
53c6454de5 rustdoc: Extract brief enum descs from long descs 2012-01-25 21:04:53 -08:00
Brian Anderson
1d94f40c6c rustdoc: Prune undocumented enums 2012-01-25 21:04:53 -08:00
Brian Anderson
95a006ce52 rustdoc: Add enum doc attributes to the doc tree 2012-01-25 21:04:53 -08:00
Brian Anderson
a25bc195e2 rustdoc: Parse variant doc attributes 2012-01-25 21:04:53 -08:00
Brian Anderson
87c3a5c1a3 rustdoc: Extract some common functions from attr_parser 2012-01-25 21:04:52 -08:00
Brian Anderson
259ea4e4b4 rustdoc: Parse enum doc attributes 2012-01-25 21:04:52 -08:00
Brian Anderson
5166cc29e9 rustdoc: Fix a copy&paste bug in attr_parser tests 2012-01-25 21:04:52 -08:00
Brian Anderson
0b9f2a8215 rustdoc: Extract variant signatures 2012-01-25 21:04:49 -08:00
Brian Anderson
b7b8455e54 rustc: Add pprust::variant_to_str 2012-01-25 17:22:08 -08:00
Brian Anderson
1586cce0ea rustdoc: Add enum folding 2012-01-25 16:56:28 -08:00
Brian Anderson
e946792a78 rustdoc: Extract enum doc nodes from AST nodes 2012-01-25 16:50:32 -08:00
Brian Anderson
2999479a2d rustc: Allow attributes on enum variants. Closes #1663 2012-01-25 16:24:06 -08:00
unknown
fe57a7e582 Add Inno Setup installer script rather than NSIS 2012-01-25 16:02:53 -08:00
Brian Anderson
08c6cb5f70 Merge pull request #1664 from kevina/issue-1612
See Issue #1612
2012-01-25 15:22:10 -08:00
Kevin Atkinson
60a146bf0f Correctly increment sess.byte_pos. 2012-01-25 16:01:58 -07:00
Kevin Atkinson
c5e03e0e59 Keep source file around after parsing.
Specifically box the string (to avoid unnecessary copies) and store it
in codemap::filemap.

Remove the hack in driver::diagnostic that rereads the source from the
file and instead just get the source from the filemap.

(This commit is also a prerequisite for issue #1612)
2012-01-25 16:00:47 -07:00
Brian Anderson
ab223e0618 Merge pull request #1627 from graydon/win32-quoting
Fix win32 command-line quoting on rust_run_program.
2012-01-25 14:33:10 -08:00
Brian Anderson
4168101b03 test: Un-xfail run-pass/tag-auto-disr-val-shape 2012-01-25 12:44:13 -08:00
Brian Anderson
19a9a475a6 test: Add regression test for #1659 2012-01-25 12:40:08 -08:00
Brian Anderson
ba7299ba65 test: Un-xfail run-pass/tag-disr-val-shape
Fixed by 96f1eda6d0
2012-01-25 12:34:37 -08:00
Marijn Haverbeke
2d4d8e8bdb Implement implicit self type parameters for ifaces
Closes #1661
2012-01-25 20:47:11 +01:00
Marijn Haverbeke
76aabbe99d Rename tag to enum throughout the compiler
This should reduce confusion of people trying to read the code.
2012-01-25 14:34:31 +01:00
Marijn Haverbeke
8420f8c52e Repair zero-variant tags
The parser no longer parsed them.
2012-01-25 14:10:33 +01:00
Marijn Haverbeke
2f0f6c782a Add bit-shifting ops to ast_util::eval_const_expr
Closes #1659
2012-01-25 13:19:32 +01:00
Kevin Cantu
fec36de94e Making str::from_cstr UTF-8 safe 2012-01-25 02:25:57 -08:00
Kevin Cantu
a185b10647 Replacing str::unsafe_from_bytes with str::from_bytes (part 6) 2012-01-25 01:42:28 -08:00
Kevin Cantu
57717fa4d8 Replacing str::unsafe_from_bytes with str::from_bytes (part 5) 2012-01-25 01:29:44 -08:00
Kevin Cantu
87320a9f27 Replacing str::unsafe_from_bytes with str::from_bytes (part 4) 2012-01-25 01:20:55 -08:00
Kevin Cantu
eaa4befd6d Replacing str::unsafe_from_bytes with str::from_bytes (part 3) 2012-01-25 01:07:05 -08:00
Kevin Cantu
64ce563c05 Replacing str::unsafe_from_bytes with str::from_bytes (part 2) 2012-01-25 01:00:21 -08:00
Kevin Cantu
c7b23f9a86 Replacing str::unsafe_from_bytes with str::from_bytes (part 1) 2012-01-25 00:53:17 -08:00
Kevin Cantu
9750e83a17 Replace uses of str::unsafe_from_byte 2012-01-24 23:47:32 -08:00
Kevin Cantu
2496dccae4 Changed type of str::from_bytes and added str::from_byte 2012-01-24 23:44:19 -08:00
Brian Anderson
61b5cc95d1 rustdoc: Add enums to the doc tree 2012-01-24 23:24:55 -08:00
Brian Anderson
b779277dae rustdoc: Add a pass to normalize indentation levels in doc comments 2012-01-24 23:24:54 -08:00
Brian Anderson
e869458914 rustdoc: Extract a general apply-function-to-strings pass from trim_pass 2012-01-24 23:24:54 -08:00