Ben Blum
42825fbea6
Split libcore/arc.rs: arc -> std::arc; exclusive -> unsafe::exclusive
2012-08-10 20:53:09 -04:00
Eric Holk
4808d59909
Terminate blocked receive packets on failure. Fixes #3168 .
2012-08-10 16:26:22 -07:00
Eric Holk
9a1a2580fc
A better HTML parser.
2012-08-10 12:23:16 -07:00
Eric Holk
d704fc9196
An attempt at a macro to support HTML literals
2012-08-10 12:23:16 -07:00
Brian Anderson
96fdad2fb7
Change 'ret' to 'return' in an error message
2012-08-10 12:20:58 -07:00
Ben Blum
4c9f168372
Convert sync to the new struct syntax
2012-08-09 23:23:17 -04:00
Patrick Walton
770a21272b
rustc: Initialize the drop flag with the new struct literal syntax. Closes #3172 .
2012-08-09 19:45:37 -07:00
Ben Blum
d913492855
Change coherence error 'implement a trait instead' -> 'implement a trait or new type instead'
2012-08-09 20:29:34 -04:00
Graydon Hoare
f0775d7bfe
Finish translating const indexing. Close #1417 , close #570 , close #571 , close #1272 , close #2317 .
2012-08-09 16:05:34 -07:00
Niko Matsakis
22a14dd700
Enforce a stricter notion of purity when borrowing. Fixes #3162 .
2012-08-09 14:23:56 -07:00
Lindsey Kuper
812db1ec0d
Example from lkuper's intern talk, but now with static methods!
2012-08-09 11:20:15 -07:00
Lindsey Kuper
8703d088ea
Add example from lkuper's intern talk to the test suite.
2012-08-09 11:10:09 -07:00
Niko Matsakis
9a77a17e3b
unxfail-test and try to test for similar conditions as before
...
fixes #2772
2012-08-09 11:00:44 -07:00
Graydon Hoare
a0e3a2ae8e
Const field access (working) and vec indexing (almost). More for #2317 .
2012-08-08 19:59:30 -07:00
Patrick Walton
5c9c9a6a9f
libsyntax: Parse common enum fields
2012-08-08 19:51:48 -07:00
Graydon Hoare
71bc2673ed
Fix number-peek code in fmt!, close #1610 .
2012-08-08 18:40:30 -07:00
Brian Anderson
6a0720b439
Convert impls to new syntax
2012-08-08 18:19:24 -07:00
Eric Holk
c64ffa4f5b
Updating examples
2012-08-08 18:03:27 -07:00
Ben Blum
35db5b7be1
Merge pull request #3153 from jruderman/sconv
...
Add spawn_conversation
2012-08-08 17:05:31 -07:00
Ben Blum
904a74e99c
add compile-fail test sync-cond-shouldnt-escape.rs
2012-08-08 19:59:38 -04:00
Tim Chevalier
febd7ee239
Make let _ = e; have the same semantics as e;
...
The first case was getting treated like a variable binding, meaning that
if e had a destructor, it wouldn't run until the end of the enclosing scope.
To me it seems less confusing for let _ = e; and e; to work exactly the same
way, so now, the destructor for e runs immediately in both cases.
2012-08-08 15:37:45 -07:00
Brian Anderson
d99ca69cf7
lint: Allow trailing underscores in camel case idents
2012-08-08 15:05:49 -07:00
Jesse Ruderman
a76e4334b3
Add spawn_conversation
2012-08-08 16:57:13 -04:00
Eric Holk
19c86c1e71
xfail-pretty
2012-08-08 12:00:52 -07:00
Tim Chevalier
c7d60ee053
Don't add struct names to the value name space if there's no constructor
...
Closes #3149
2012-08-08 11:53:08 -07:00
Eric Holk
bc6ba6b091
Adding some examples for my internship presentation.
2012-08-08 10:28:57 -07:00
Niko Matsakis
802ea5d57e
refactor categorization out of borrowck into its own module.
...
first step towards #3148 and #3024 .
2012-08-08 09:22:07 -07:00
Niko Matsakis
52c517383e
improve borrowck error messages to explain regions better
2012-08-07 20:59:06 -07:00
Niko Matsakis
99af0d5480
new test case demonstrating ability to return ptr to interior of option
2012-08-07 20:13:03 -07:00
Patrick Walton
5ce3281a62
rustc: Parse variant structs; add a trivial test case
2012-08-07 18:55:19 -07:00
Graydon Hoare
175be53e3f
Translate const structs.
2012-08-07 17:31:26 -07:00
Michael Sullivan
7f7f47620e
Implement static typeclass methods. Closes #3132 .
2012-08-07 17:18:14 -07:00
Graydon Hoare
32e4fd62e9
Const slices now work. Something odd about non-const cases though, see #3138 .
2012-08-07 15:04:40 -07:00
Brian Anderson
92ef17aaeb
syntax: Fix parsing of inherent traits
2012-08-07 13:01:22 -07:00
Brian Anderson
2772b2e5c7
syntax: Make match arm parsing more restrictive again
...
Require comma separators for all expression types except the plain block
2012-08-07 12:23:43 -07:00
Eric Holk
672bfa5773
Working on a macro for selecting from many pipes.
2012-08-07 11:47:12 -07:00
Eric Holk
184da12896
Nifty macros for receiving from a protocol.
2012-08-07 11:47:12 -07:00
Eric Holk
d594f3701a
Use a proper protocol definition instead of the already-expanded code.
2012-08-07 11:47:11 -07:00
Ben Blum
18ac4a8e6d
Change task().future_result's argument mode
2012-08-07 14:26:41 -04:00
Lindsey Kuper
e656261ee7
Comments, minor refactoring, clean up wording of error messages
2012-08-07 10:29:19 -07:00
Niko Matsakis
0755922320
xfail-fast issue-2242
2012-08-07 07:15:47 -07:00
Niko Matsakis
dbef6e593d
move borrowck tests to use ref, fix a few exposed shortcomings
2012-08-07 06:11:12 -07:00
Patrick Walton
793c0a1116
test: Modernize and un-XFAIL issue-2242-d.rs (issue #2242 )
2012-08-06 21:40:49 -07:00
Patrick Walton
6a7c714df6
test: Add a dvec indexing operator test, which serves as a test for #2615 (cross-crate operator overloading).
2012-08-06 21:30:57 -07:00
Tim Chevalier
f3b2296ee4
Auto-deref the base expr in trans_method_callee
...
(specifically in the method_trait case) -- if you wrote x.f()
and x has type @T for a trait T, x wasn't getting auto-deref'ed.
This was bad.
Closes #2935
2012-08-06 19:17:44 -07:00
Niko Matsakis
aacd18f4ed
first shot at integrating ref/value bindings into borrowck
...
(more needed)
2012-08-06 19:15:39 -07:00
Patrick Walton
60f47eabe2
rustc: Parse and stub (broken) typechecking for bounded function types
2012-08-06 18:55:24 -07:00
Tim Chevalier
a4cedd9598
Disallow multiple constructors or destructors in the same class
...
Closes #2825
2012-08-06 18:01:26 -07:00
Patrick Walton
253dfc3387
rustc: Implement pattern matching for structs
2012-08-06 17:36:24 -07:00
Ben Blum
a3dd67ae91
Make 100 generations perf test sensitive to spawn failures
2012-08-06 19:46:20 -04:00
Tim Chevalier
6bd01d0ac8
In resolve, forbid duplicate value, type, and module items
...
Closes #3099
2012-08-06 16:37:18 -07:00
Niko Matsakis
0308884416
s/alt/match/... again.
2012-08-06 16:16:08 -07:00
Niko Matsakis
4a216a000a
s/alt/match/
2012-08-06 16:13:52 -07:00
Niko Matsakis
a6a5c48c64
make ref x
bindings produce region ptrs and fix various minor bugs
...
we now detect inconsistent modes, binding names, and various other errors.
typeck/trans integration is mostly done.
borrowck not so much.
more tests needed.
2012-08-06 16:12:40 -07:00
Brian Anderson
ecaf9e39c9
Convert alt to match. Stop parsing alt
2012-08-06 15:36:30 -07:00
Brian Anderson
74370042aa
core: Rename task::osmain to platform_thread. #3090
2012-08-06 14:07:51 -07:00
Eric Holk
c973732a23
Enabling pingpong benchmark.
2012-08-06 13:25:34 -07:00
Patrick Walton
bff512a90f
rustc: Implement functional record update for structs
2012-08-06 13:17:42 -07:00
Brian Anderson
03330baf9c
Add a test for issue #2312
2012-08-06 11:08:52 -07:00
Eric Holk
bd9d5e50be
Add missing =>
2012-08-06 09:55:53 -07:00
Eric Holk
9f287c211e
Refcount tasks in packets to avoid races.
...
Revert "Once again, revert "Use pipes in compiletest""
Fixes #3098
2012-08-06 09:10:19 -07:00
Brian Anderson
025d86624d
Switch alts to use arrows
2012-08-05 22:08:09 -07:00
Brian Anderson
a52f6d26db
Fix closure pretty-print tests
2012-08-04 17:41:04 -07:00
Brian Anderson
a60f9c76f5
xfail-fast run-pass/trait-composition-trivial
2012-08-04 17:37:30 -07:00
Graydon Hoare
edfc79cc47
Translate const vecs, most of const slices. More for #2317 .
2012-08-03 21:44:52 -07:00
Patrick Walton
f23674394f
rustc: Merge fn& and fn in favor of fn&.
...
This is a step on the way to moving the function "proto" sigil out front.
2012-08-03 19:49:12 -07:00
Patrick Walton
51a5a4ad0e
rustc: Translate repeated vector syntax
2012-08-03 18:49:44 -07:00
Graydon Hoare
488ece05b5
Implement &-expressions in consts. Part of #2317 .
2012-08-03 18:07:58 -07:00
Ben Blum
f57760c609
Add task-perf-linked-failure.rs
2012-08-03 20:24:41 -04:00
Eric Holk
739e83d859
Xfailing until the pipe race is fixed.
2012-08-03 15:22:33 -07:00
Patrick Walton
5012abde8f
test: Add a trivial test that trait composition parses
2012-08-03 15:03:19 -07:00
Eric Holk
2c06e7aac9
Fixing failing test cases
2012-08-03 12:48:14 -07:00
Patrick Walton
aa4683c181
test: Add a test case for bare static strings
2012-08-03 11:51:47 -07:00
Patrick Walton
4bfd4fb8ea
test: Remove a fixed-length string from a test
2012-08-03 11:47:08 -07:00
Tim Chevalier
b0cf106e9a
Test for issue 2904, which got fixed somewhere along the line
2012-08-03 11:39:39 -07:00
Eric Holk
b3933b8822
Adding a test case for #2548
2012-08-03 10:22:16 -07:00
Niko Matsakis
cc1a2f2128
fix compilation of 2214
2012-08-03 08:05:04 -07:00
Tim Chevalier
948172b93f
Make comparisons between region pointers work
...
Region pointers were considered a scalar type, so compare_scalar_type would
get called to compare region pointers in trans. This would fail, since
compare_scalar_type has no case for region pointers.
Changed type_is_scalar to return false for region pointers. This had the side
effect of breaking casts to types of the form &T. To ameliorate that, I added
library functions ptr::assimilate (taking a &T to a *T) and ptr::to_uint
(taking a &T to a uint), both of which use reinterpret_cast.
While I was at it, I removed ty::type_has_resources, which is dead code.
2012-08-02 23:53:45 -07:00
Niko Matsakis
31c5cec55b
Purge placement new; Make borrowck know about unary move.
...
cc #3071
2012-08-02 22:36:36 -07:00
Tim Chevalier
c2bb2f0837
When checking loop bodies and do-expr bodies, don't require the expected type to exist
...
If the expected type is none (due to a type error), we shouldn't fail with an ICE, but
rather, just print out another type error. Changed the do-expr type error message to
make sense in this context (see the test case for how it works).
Closes #3044 .
2012-08-02 21:44:14 -07:00
Eric Holk
f76a46242b
Convert pfib to pipes. This is a useful stress test.
2012-08-02 18:55:44 -07:00
Eric Holk
1f2178e2d3
Removing an obsolete benchmark
2012-08-02 18:55:44 -07:00
Lindsey Kuper
2f832d4b2d
test: "iface" -> "trait" in filenames.
2012-08-02 17:58:56 -07:00
Niko Matsakis
97452c0ca1
Remove modes from map API and replace with regions.
...
API is (for now) mostly by value, there are options to use it by
reference if you like. Hash and equality functions must be pure
and by reference (forward looking to the day when something
like send_map becomes the standard map).
2012-08-02 15:53:28 -07:00
Paul Stansifer
7129883b51
Allow interpolations of all the nt_*s.
2012-08-02 11:58:16 -07:00
Ben Blum
8d7dfa44b0
Linked failure: Add '100 generations' bench test ( #1868 )
2012-08-02 00:07:12 -04:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Brian Anderson
507fba57d1
syntax: Allow any block-like expr to be used as alt arm w/o comma separator
2012-08-01 17:57:03 -07:00
Graydon Hoare
7f60c56c3e
Clean out transitional lint.
2012-08-01 13:35:40 -07:00
Niko Matsakis
a334deb5d5
change how we print and explain region types
2012-07-31 22:00:19 -07:00
Brian Anderson
c5437c0bbf
Fix failing tests
2012-07-31 21:13:57 -07:00
Patrick Walton
82198c9925
test: Fix broken test that used "move" as an identifier
2012-07-31 19:27:23 -07:00
Brian Anderson
a841789a41
rustc: Add non_camel_case_types lint check
2012-07-31 18:58:23 -07:00
Graydon Hoare
2a3084b527
Start implementing structured constants.
2012-07-31 18:34:44 -07:00
Patrick Walton
c88933d714
rustc: Implement unary move. Closes #917 .
2012-07-31 17:33:20 -07:00
Brian Anderson
c4bb8f8aaf
test: Move two tests from run-pass into the libs
2012-07-31 17:30:54 -07:00
Brian Anderson
7b2026bf21
Introduce 'return', 'match' and 'module' as synonyms
2012-07-31 17:22:30 -07:00
Brian Anderson
7d18369804
syntax: Rename 'module' extension to 'module_path'
2012-07-31 17:22:30 -07:00
Brian Anderson
567f881fdf
syntax: More tweaks to make alt arrows parse and print correctly
2012-07-31 15:41:26 -07:00
Niko Matsakis
c206d024eb
accept naked exprs with commas in pattern arms
...
pretty printing will use them, but indentation is slightly off
if the expr is long
2012-07-31 15:41:26 -07:00
Lindsey Kuper
439afaa329
Change remaining "iface" occurrences to "trait"; deprecate "iface"
2012-07-31 11:52:16 -07:00
Paul Stansifer
bf8c773936
Update tests for macro syntax change.
2012-07-30 18:38:15 -07:00
Paul Stansifer
a9cc5066ee
Change syntax extension syntax: #m[...]
-> m!{...}
.
2012-07-30 18:38:15 -07:00
Paul Stansifer
a7125971c6
Rename #mod
-> #module
to not collide with the keyword.
2012-07-30 18:04:18 -07:00
Brian Anderson
f6ce2bd831
test: Add a test for mods inside functions. Closes #493
2012-07-30 18:00:56 -07:00
Lindsey Kuper
f78776e9d8
rustc: "iface" -> "trait" in comments, error messages, and identifiers.
...
(Also "interface" -> "trait" in error messages.)
2012-07-30 17:26:14 -07:00
Brian Anderson
ef29f7ff36
syntax: Fix semicolon printing. Closes #3036
2012-07-30 16:09:52 -07:00
Elliott Slaughter
416584d339
Revert "Fix build by xfailing tests which produce irreducible CFGs."
...
This reverts commit 9ca2a11137
.
2012-07-30 15:58:23 -07:00
Niko Matsakis
5d32d03b89
Fix #2979 : inference for lifetimes of & expressions
...
What we now do is to create a region variable for each &
expression (and also each borrow). The lifetime of this
variable will be checked by borrowck to ensure it is not greater
than the lifetime of the underlying data. This both leads to
shorter lifetimes in some cases but also longer in others,
such as taking the address to the interior of unique boxes
tht are rooted in region pointers (e.g., returning a pointer
to the interior of a sendable map).
This may lead to issue #2977 if the rvalue is not POD, because
we may drop the data in trans sooner than borrowck expects us
to. Need to work out precisely where that fix ought to occur.
2012-07-30 14:49:28 -07:00
Brian Anderson
6ef13e76e9
Reduce the difficulty of run-pass/bitv-perf-test. Valgrinds slowly
2012-07-30 12:04:58 -07:00
Tim Chevalier
082d8314da
Rewrite bitv to use classes and optimize its representation
...
Rewrote bitv as a class that uses a 32-bit int as its representation
for bit vectors of 32 bits or less, and a vector (the old representation)
otherwise. I didn't benchmark very much, but a bit of informal benchmarking
suggested this is a win.
Closes #2341
2012-07-29 18:39:15 -07:00
Patrick Walton
93c2f5e0e4
rustc: Use coherence for operator overloading.
...
The only use of the old-style impls is now placement new.
2012-07-27 19:35:24 -07:00
Tim Chevalier
f7382c454f
Forbid duplicate fields in record types and exprs
...
Closes #3033
2012-07-27 17:33:05 -07:00
Tim Chevalier
a0d05844ed
Correctly forbid upvars in nested impls, traits and classes
...
Previously, resolve was allowing impls, traits or classes that were
nested within a fn to refer to upvars, as well as referring to type
parameters bound by the fn. Fixing this required adding a new kind of
def: def_typaram_binder, which can refer to any of an impl, trait or
class that has bound ty params. resolve uses this to enforce that
methods can refer to their parent item's type parameters, but not to
outer items' type parameters; other stages ignore it. I also made
sure that impl, trait and class methods get checked inside a
MethodRibKind thing so as to forbid upvars, and changed the definition
of MethodRibKind so that its second argument is an optional node_id
(so that required trait method signatures can be checked with a
MethodRibKind as well).
2012-07-27 17:31:42 -07:00
Niko Matsakis
638491712e
change region inference to not consider & that appears in a fn
...
type as indicating region parameterization
2012-07-27 15:49:03 -07:00
Brian Anderson
2407373fa4
core: Make #fmt pure
2012-07-27 15:11:22 -07:00
Tim Chevalier
b6aadf56c8
In resolve, check for duplicate pattern-bound vars
...
Closes #3038
2012-07-27 13:35:17 -07:00
Tim Chevalier
300f54ebc0
Make alts on uninhabited enum types typecheck and translate properly
...
Possibly one of the silliest Rust commits ever.
Closes #3037
2012-07-27 13:14:03 -07:00
Eric Holk
3c731df890
re-xfailing pingpong
2012-07-26 17:11:04 -07:00
Eric Holk
79f5d62d47
Added .peek for recv_packets
2012-07-26 17:10:48 -07:00
Eric Holk
c918bd01b0
Fix borrow check errors in k-nucleotide.
2012-07-26 17:10:48 -07:00
Eric Holk
65beca4e01
Use iteration protocol for ebml, use vec::view in more places (issue #2880 )
2012-07-26 17:10:48 -07:00
Graydon Hoare
dbbaa50290
Nomenclature fixes in the lint checker. Fewer double-negatives.
...
New style is allow(foo), warn(foo), deny(foo) and forbid(foo),
mirrored by -A foo, -W foo, -D foo and -F foo on command line.
These replace -W no-foo, -W foo, -W err-foo, respectively.
Forbid is new, and means "deny, and you can't override it".
2012-07-26 17:08:33 -07:00
Damian Gryski
74d60a619a
shootout-mandelbrot: devnull writer needs get_type impl
2012-07-26 17:05:13 -07:00
Paul Stansifer
97422f0f0f
Merge branch 'incoming' of github.com:mozilla/rust
2012-07-26 16:16:28 -07:00
Tim Chevalier
20c6f3c37a
Add xfailed test case for #3029
2012-07-26 14:51:10 -07:00
Tim Chevalier
c8ea9fc4c3
Re-added test for Issue 935 -- not sure what happened to it
2012-07-26 14:47:30 -07:00
Tim Chevalier
d19b915bc4
Add test for issue 868
2012-07-26 14:29:47 -07:00
Paul Stansifer
f4c093c4af
Change #macro
to macro_rules!
in some cases.
2012-07-26 10:14:01 -07:00
Graydon Hoare
f8dc9283ad
Reject non-UTF-8 files when reading as str. Close #2918 .
2012-07-25 15:34:18 -07:00
Eric Holk
531ea695f6
Remove shared_arc (unused) and fix trivial-message
2012-07-25 15:15:46 -07:00
Eric Holk
08a77e06a8
Rewrite task-comm-NN to use pipes
2012-07-25 15:15:46 -07:00
Graydon Hoare
43867bf6f3
Merge pull request #3014 from elliottslaughter/fix-failed-build-by-xfailing-tests
...
Fix build by xfailing tests which produce irreducible CFGs.
2012-07-25 14:50:02 -07:00
Elliott Slaughter
9ca2a11137
Fix build by xfailing tests which produce irreducible CFGs.
2012-07-25 14:42:37 -07:00
Eric Holk
6748f78cb1
Polymorphic protocols work well enough to do MapReduce.
...
I did some horrible things with type variable naming here. It should do the right thing in most cases, but we'll need to go through and make it correct someday.
2012-07-25 12:12:26 -07:00
Eric Holk
f5be06fa1f
Added infrastructure to spin for a bit on recv. A spin count > 0 makes bench/pingpong.rs about 10x faster, but makes msgsend-ring-pipes unbearably slow.
2012-07-25 12:12:25 -07:00
Eric Holk
35576168dc
Added a benchmark of bounded vs unbounded. Bounded is 8-12% faster. The macros currently don't work without pretty printing first.
2012-07-25 12:12:25 -07:00
Eric Holk
7f5f1f90a0
Compiled a bounded version of pingpong.
...
There are some failures in the other pipe tests, but these seem to just be a matter of generalizing the library code.
Updating pipes library so all tests pass again
2012-07-25 12:12:25 -07:00
Eric Holk
c28af26258
Refactor the bounded pingpong example to avoid needing to generate unsafe code.
...
Took some steps towards bounded codegen.
2012-07-25 12:12:25 -07:00
Eric Holk
4f29814f2a
Hand-written bounded pingpong implementation.
2012-07-25 12:12:25 -07:00
Eric Holk
f65d6026ef
Started playing with macros to make receiving easier
2012-07-25 12:12:25 -07:00
Graydon Hoare
1e241b5abd
Merge pull request #3009 from elliottslaughter/utf8-idents-test-fix
...
Fix test floating point comparison to tolerate imprecise FPUs.
2012-07-25 10:20:40 -07:00
Niko Matsakis
99674dc52b
avoid capture of bound regions when infering types for closure
...
expressions. cc #2981
2012-07-25 05:45:52 -07:00
Niko Matsakis
168306f11b
correct treatment of mutability for deref'd components
...
Fixes #2980
2012-07-25 05:45:52 -07:00
Patrick Walton
22ef08293e
test: Add a max/min classes test case
2012-07-24 16:39:26 -07:00
Elliott Slaughter
1e27d1994f
Fix test floating point comparison to tolerate imprecise FPUs.
2012-07-24 16:15:30 -07:00
Eric Holk
d948254ccb
Fix xfail comment
2012-07-24 14:56:59 -07:00
Eric Holk
22e3a8506f
Test case for #3005
2012-07-24 14:56:02 -07:00
Graydon Hoare
8868b222c3
Fix whitespace.
2012-07-24 13:21:25 -07:00
Graydon Hoare
a63e0e47f0
Update some str functions to slices, merge as_buf and unpack_slice.
2012-07-24 12:35:52 -07:00