Commit Graph

9440 Commits

Author SHA1 Message Date
Brian Anderson
508ccca014 rt: Add upcall_exchange_malloc/free 2012-05-30 21:23:33 -07:00
Brian Anderson
6d37c90ce6 rustc: Remove tuplify_cbox_ty. Unused 2012-05-30 21:23:33 -07:00
Brian Anderson
02dde781eb rustc: Don't typestate fns that don't have constrained function calls 2012-05-30 17:48:05 -07:00
Brian Anderson
6b4cf00552 test: Add an error pattern to small-negative-indexing 2012-05-30 17:48:05 -07:00
Eric Holk
ad292a8c73 Add xorshift to core::rand, which gave a 3x speedup for graph generation in the bfs code. Also, remove trailing white space. 2012-05-30 17:39:53 -07:00
Eric Holk
09a32aedb5 Remove warnings in std::par. 2012-05-30 17:39:53 -07:00
Eric Holk
58fdbdc4ef Avoid some more copies. 2012-05-30 17:39:53 -07:00
Eric Holk
f0c345841c Added a factory version of par::mapi, which avoids the need for share_arc, and copies arcs between tasks better. 2012-05-30 17:39:53 -07:00
Eric Holk
f05040f17a Use std::deque now that the bugs are fixed. Also, avoid a few copies. 2012-05-30 17:39:53 -07:00
Michael Sullivan
e5757923cd Add a test for that last bug. Oops. 2012-05-30 17:12:50 -07:00
Michael Sullivan
ea8d4d7f17 Properly sign extend array indexes. Closes #2468. 2012-05-30 17:09:52 -07:00
Michael Sullivan
1eebb1fe87 Add a test for the just closed issue #2426. 2012-05-30 16:02:48 -07:00
Michael Sullivan
7fee392de5 Handle differing signedness in constant shifts. Closes #2426. 2012-05-30 15:03:24 -07:00
Eric Holk
ccb54f0ce0 Move par into libstd. Closes #2441. 2012-05-30 12:03:51 -07:00
Eric Holk
f5554db734 Adding xfail-fast, since multi-crate tests don't work on Windows. 2012-05-30 12:03:51 -07:00
Eric Holk
07830612fd Adding a test to make sure CCI works with capture clauses. 2012-05-30 12:03:51 -07:00
Eric Holk
f49b891ce5 Include capture clauses when generating metadata.
This may fix the bug that's blocking Issue #2441.
2012-05-30 12:03:51 -07:00
Eric Holk
6abddca18b Rewriting shared_arc to work around Issue #2444.
Sadly, this exposes another ICE when trying to use the new version with Graph500
2012-05-30 12:03:51 -07:00
Niko Matsakis
dca11e1f99 test our some of the various combinations of fn subtyping 2012-05-30 12:02:01 -07:00
Niko Matsakis
5b8abec92f test for pure fn vs impure fn etc subtyping 2012-05-30 11:56:50 -07:00
Niko Matsakis
6dc4bc517a test for troublesome case where preserve was freeing uninitialized memory 2012-05-30 11:26:15 -07:00
Niko Matsakis
862976c267 avoid modifying variable we are alting over 2012-05-30 11:26:15 -07:00
Niko Matsakis
1f4b3cfc36 zero out alloca for preserving values
conservatively do it always for now
2012-05-30 11:26:15 -07:00
Niko Matsakis
555492e427 port alt to dvec 2012-05-30 11:26:15 -07:00
Niko Matsakis
79b3dedac3 allow for loop bodies 2012-05-30 11:26:15 -07:00
Niko Matsakis
653a1f8781 integrate purity into type 2012-05-30 11:26:15 -07:00
Niko Matsakis
22a10f0e4a refactor region manip. to remove redundancy, get closer to fn subtyping
also: remove "auto-mode-matching" for implemented interfaces, as it
is complex and interacts poorly with classes

cc #2263
2012-05-30 11:04:12 -07:00
Niko Matsakis
e4694ca519 add a test that types w/ def_ids compare just fine to types w/o def_ids
this is not clearly going to work due to monomorphization, which convverts
each enum<T> to a distinct "type" from POV of the shape code
2012-05-30 11:04:12 -07:00
Niko Matsakis
e6b9db0884 refactor region manipulation routines to eliminate duplication
fn subtyping is starting to work, but it's exposing bugs in the
code which checks for iface conformance, which doesn't properly
skolemize the self region
2012-05-30 11:04:12 -07:00
Michael Sullivan
b744f52620 Make heap closures always require a capture clause to capture mutable variables. Closes #2446. 2012-05-30 10:46:22 -07:00
Brian Anderson
736ff34e8a rustc: Move filesearch into metadata mod
It's not that related to metadata, but metadata needs it and it will
probably be useful for doing dynamic loading.
2012-05-29 20:38:49 -07:00
Tim Chevalier
3f3c9caf4d Handle poststates of breaking loops correctly in typestate
The poststate should be one where all predicates are assumed false,
rather than the unchanged prestate.

Closes #2374
2012-05-29 18:22:38 -07:00
Tim Chevalier
b30daa6eef Test case for issue 2380 2012-05-29 17:05:17 -07:00
Tim Chevalier
8d7765be82 Resolve bounds in iface types
Closes #2311
2012-05-29 16:50:21 -07:00
Niko Matsakis
f90228b8a8 make all arguments modes immutable
note: you can still move from copy/move mode args
2012-05-29 16:22:17 -07:00
Niko Matsakis
47375439ed remove useless invocations of universally_quantify_from_sty() in method lookup 2012-05-29 16:20:54 -07:00
Niko Matsakis
37b78b48e3 modify shape code to only emit monomorphized enums (#2444)
this is hacky, but shape code is going away anyway and I didn't
want to invest too much effort into it
2012-05-29 15:12:36 -07:00
Tim Chevalier
ccc7651b48 In reachability, don't ignore nested items
Reachability was considering nested items to be unreachable, which
was causing the bug in #2383. Once I fixed that, I also had to make
impl::make_impl_vtable instantiate methods where necessary, before
calling monomorphic_fn.

Closes #2383
2012-05-29 14:40:35 -07:00
Brian Anderson
730e8e9310 Register snapshots 2012-05-29 14:20:11 -07:00
Michael Sullivan
5d1c29912d Fix an error message to not refer to "block type". Closes #2423. 2012-05-29 12:18:59 -07:00
Michael Sullivan
98766e388e Fix the maximum value of i16. Closes #2462. 2012-05-29 12:18:59 -07:00
Eric Holk
5e35d49a50 Moving the arc tests into arc.rs. 2012-05-29 11:30:10 -07:00
Eric Holk
aa2efc05ea Adding shared_arc to hide some of the tedium of sharing an arc between tasks.
Also added some asserts and logging to trans.

Modified graph500 to use the shared_arc, but this unfortunately doesn't work due to #2444.
2012-05-29 10:43:19 -07:00
Eric Holk
3f0358bc5c Updating comments. 2012-05-29 10:33:04 -07:00
Erick Tryzelaar
7b36d66049 Allow installing arbitrary git cargos 2012-05-28 18:58:01 -07:00
Erick Tryzelaar
68e5d8daa3 Merge pull request #2455 from erickt/master
Fleshing out result methods
2012-05-28 18:27:30 -07:00
Erick Tryzelaar
07db8c8382 Merge pull request #2454 from killerswan/cargo_may2012
(cargo) fixed a package installation bug, cleaned up usage
2012-05-28 18:20:20 -07:00
Kevin Cantu
b7393ecdf2 (cargo) fix old typo for installation to libdir 2012-05-28 17:54:47 -07:00
Graydon Hoare
163b0604dc Re-xfail reflect-visit-type since it crashes check-fast. 2012-05-28 17:03:44 -07:00
Graydon Hoare
e0f0c5c1ab Remove bad Load in make_visit_glue, un-xfail reflect-visit-type.rs. 2012-05-28 13:19:31 -07:00
Erick Tryzelaar
ed5af70a36 std: add json::to_str and json::to_json iface. 2012-05-28 12:14:41 -07:00
Erick Tryzelaar
e45ed323c9 Add methods iter, iter_err, map, map_err to the result type. 2012-05-28 12:03:25 -07:00
Erick Tryzelaar
46173e98ef Rename result::{iter,map,map2} to add _vec suffix
The result module doesn't follow the standard iter/map pattern
that we use in the rest of the library. So to
2012-05-28 12:03:25 -07:00
Benjamin Kircher
360194d282 std: Fix bitv each() method (issue 2363) 2012-05-27 22:08:48 +02:00
Kevin Cantu
1aa0804637 (cargo) added a rough fix for installed exe permissions
Since `os::copy_file` wasn't preserving the executable permissions,
this reverts back to `run::run_program` and `cp` to install
the packages.
2012-05-27 10:48:19 -07:00
Kevin Cantu
50423e9545 (cargo) fixed a package installation bug, cleaned up usage
This fixes a bug where os::copy_file was called with a directory name, and
updates the command line options and usage messages for clarity.
2012-05-27 01:29:04 -07:00
Brian Anderson
2c90d66637 Register snapshots 2012-05-26 17:36:57 -07:00
Brian Anderson
18f4bfd576 bench: Remove task-perf-vector-party. No longer relevant 2012-05-26 16:00:38 -07:00
Brian Anderson
45d0fbf6a1 bench: Increase the difficulty of some benchmarks 2012-05-26 16:00:35 -07:00
Brian Anderson
432c6cbde9 core: Make range follow the for loop protocol 2012-05-26 02:28:00 -07:00
Brian Anderson
5281db2bc2 core: Fix capitalization in docs 2012-05-26 00:16:32 -07:00
Brian Anderson
b4516590e4 core: Add to_str impls for remaining int types 2012-05-25 23:47:02 -07:00
Eric Holk
df83a793d9 In generic word count, use str instead of [u8], and use built in is_alphabetic, etc. functions. 2012-05-25 18:32:18 -07:00
Eric Holk
0c3a128419 Update word-count-generic to latest syntax and un-xfail it. Closes #1740. 2012-05-25 18:32:18 -07:00
Lindsey Kuper
e11742de32 More refactoring on a quest to understand region types. 2012-05-25 17:55:55 -07:00
Niko Matsakis
269bc6fb5c fix warning 2012-05-25 17:14:17 -07:00
Niko Matsakis
98740a59da detect ambig. calls to iface bounds, use transactions
cc #2433
2012-05-25 17:04:05 -07:00
Michael Sullivan
93633ea734 Add an internal notion of 'implicit copyability' and use it to warn when implicitly copying mutable data and some unique data. Closes #2448. 2012-05-25 16:53:34 -07:00
Michael Sullivan
8668d06400 Get rid of many implicit copies as a preliminary to Issue #2448. 2012-05-25 16:39:35 -07:00
Brian Anderson
d89b4c8c61 std: Modify arc to tolerate upcoming change to uniques 2012-05-25 16:22:29 -07:00
Michael Sullivan
174f789e0b Add hack to silence the annoying liveness warning in trans/base.rs. 2012-05-25 15:34:09 -07:00
Michael Sullivan
842f9d8616 Remove from_const hack from vec.rs. 2012-05-25 15:16:17 -07:00
Niko Matsakis
266fdd032b test for issue #2443 2012-05-25 14:37:35 -07:00
Niko Matsakis
9e6a068034 replace last_use with liveness info 2012-05-25 14:37:30 -07:00
Niko Matsakis
62fe587f81 revisit error message; create spill map 2012-05-25 14:37:30 -07:00
Lindsey Kuper
123c5c4315 typeck: cleanup/refactoring 2012-05-25 11:35:42 -07:00
Lindsey Kuper
f7cb7b06d5 typeck: Minor cleanup 2012-05-25 11:35:42 -07:00
Brian Anderson
7c2e981381 std: Don't export get_monitor_task_gl 2012-05-25 11:03:32 -07:00
Brian Anderson
78b664fead std: More iotask cleanup 2012-05-25 11:03:31 -07:00
Brian Anderson
937ef188e3 std: Remove unused iotask field active 2012-05-25 11:03:31 -07:00
Brian Anderson
81b8e20f31 std: Rename uv::hl to uv::iotask. Additional cleanup 2012-05-25 11:03:29 -07:00
Brian Anderson
59262dfc62 std: Move spawn_high_level_loop to uv::hl 2012-05-24 22:52:51 -07:00
Brian Anderson
d4db1beabf std: Separate weakening the I/O task from spawning it 2012-05-24 22:26:30 -07:00
Brian Anderson
95898b4cfc std: Simplify run_high_level_loop further 2012-05-24 22:05:31 -07:00
Brian Anderson
623acaa013 std: Remove unused args from run_high_level_loop 2012-05-24 21:50:35 -07:00
Brian Anderson
444ff687a2 std: Move loop creation into run_high_level_loop 2012-05-24 21:50:35 -07:00
Brian Anderson
2a82a9907f std: Clean up uv_global_loop 2012-05-24 21:50:33 -07:00
Brian Anderson
26ed1e91c8 std: Rename spawn_libuv_weak_task to spawn_high_level_loop 2012-05-24 21:03:30 -07:00
Brian Anderson
06ff3f8b4b std: Use more concise code in uv::hl 2012-05-24 20:31:27 -07:00
Brian Anderson
77bbd72171 std: Remove unused variables 2012-05-24 20:31:27 -07:00
Eric Holk
23fcab927c Updating snapshots.txt 2012-05-24 18:28:10 -07:00
Lindsey Kuper
7e70412711 Some refactoring and WIP on issue #2263. 2012-05-24 16:48:44 -07:00
Lindsey Kuper
ef33c5c9bc Typo fixes in comments. 2012-05-24 16:48:44 -07:00
Brian Anderson
a8c8c8ae28 std: FIXME's and cleanups for uv 2012-05-24 16:42:16 -07:00
Eric Holk
433e4ca5f1 Fixing method call issue in parser. 2012-05-24 15:19:10 -07:00
Eric Holk
8b12892ca2 Convert kinds to strings better for more usable error messages. 2012-05-24 15:06:56 -07:00
Eric Holk
4ffe34cace Updating the comments in kind.rs to better reflect the current state of things. 2012-05-24 15:06:56 -07:00
Eric Holk
8b6bfc96cb Const kind checking. The rules are almost certainly incomplete and unsound... 2012-05-24 15:06:56 -07:00
Eric Holk
d993df74c3 Teach parser and related things to understand const kind bounds. 2012-05-24 15:06:56 -07:00
Eric Holk
30f8555544 Some comments giving some idea how to use these things. 2012-05-24 15:05:39 -07:00
Paul Stansifer
5b72e52e47 Access parse/attrs.rs with an impl. 2012-05-24 14:39:22 -07:00
Paul Stansifer
09652c8f5f Use an impl to access parse/common.rs 2012-05-24 14:39:22 -07:00
Niko Matsakis
ccd8d5573e remove dead assignments 2012-05-24 13:35:57 -07:00
Niko Matsakis
f5c51b0a9c remove initedness checking from typestate, as best I could 2012-05-24 09:52:16 -07:00
Niko Matsakis
0d3811e275 improve liveness so it reports unused vars / dead assignments
doesn't warn about pattern bindings yet though
2012-05-24 09:52:16 -07:00
Niko Matsakis
30b47649ea new liveness pass to supercede last_use / initedness 2012-05-24 09:52:03 -07:00
Niko Matsakis
a3be0b1054 fix classes and parameterized ifaces; remove needless self check
ref #1726, #2434
2012-05-24 06:49:40 -07:00
Niko Matsakis
bd573becf5 change region scope of call arguments, old one was unsound
improve error message to describe kind of deref'd ptr using sigil
2012-05-24 05:19:44 -07:00
Niko Matsakis
c9eb9ee612 rewrite purity check to search through scope chain 2012-05-24 05:19:44 -07:00
Niko Matsakis
6ca6a3b80b rewrite arc to use region & expressions (also making it pass borrowck) 2012-05-24 05:19:44 -07:00
Brian Anderson
4fec4cd8f5 bench: Add hard mode to benchmarks. Activate with RUST_BENCH.
RUST_BENCH is on automatically when running `make perf`
2012-05-23 22:55:41 -07:00
Brian Anderson
2f3cff2806 bench: Remove 99bob benchmarks 2012-05-23 20:29:46 -07:00
Niko Matsakis
58988c3565 changes to get std passing borrowck 2012-05-23 17:25:56 -07:00
Paul Stansifer
4c2bf8e4a7 The parser is represented by a class now. 2012-05-23 16:23:11 -07:00
Paul Stansifer
a16cb376ac Update reserved words for syntax highlighters (vim is still behind, though) 2012-05-23 16:23:11 -07:00
Eric Holk
5f154770e2 Prevent capturing non-copyable things in closures. 2012-05-23 15:46:43 -07:00
Eric Holk
6fa1a084f7 A shareable atomically reference counted pointer wrapper.
Needs more tests to ensure safety, and probably some more work on usability too.
2012-05-23 14:58:16 -07:00
Niko Matsakis
9773a22119 shuffle error messages in borrowck, and prevent it from spewing too many
also, fix a few minor issues it complains about
2012-05-23 12:01:27 -07:00
Brian Anderson
248f8826a9 bench: Reduce constants in std-smallintmap to make it valgrind fast 2012-05-23 11:24:02 -07:00
Eric Holk
8678baab12 Resources are once again not copyable. 2012-05-23 10:27:42 -07:00
Niko Matsakis
b93839408c new test 2012-05-23 06:30:29 -07:00
Niko Matsakis
e0f59e835e modify borrowck to allow arbitrary borrows in pure scopes 2012-05-23 06:30:29 -07:00
Niko Matsakis
00849191ce refactor loan to not return result<> 2012-05-23 06:30:29 -07:00
Niko Matsakis
01a2e99639 prepare for gather to gather up multiple maps 2012-05-23 06:30:29 -07:00
Brian Anderson
d2ec15bcf1 rustc: Eliminate metadata's dependency on util::common 2012-05-23 00:57:07 -07:00
Brian Anderson
f9d0cde19a syntax: Remove one of the two def_id hashers 2012-05-23 00:45:18 -07:00
Brian Anderson
4756556748 rustc: Move new_def_hash to ast_util 2012-05-23 00:43:02 -07:00
Brian Anderson
8ec467d521 std: Update timer for new kind rules 2012-05-22 22:29:17 -07:00
Jeff Olson
92e9e736fa std: high-level libuv-leverage APIs now take a hl_loop as arg (tcp/timer) 2012-05-22 22:29:17 -07:00
Jeff Olson
b0b175214a std: more work on uv tests to endure valgrind's machinations against them
- change port of tcp server test in uv_ll to avoid conflict w/ test in
net::tcp
- a few places the tcp::read fn is used in test w/ a timeout.. suspend
use of the timeout from here on out.
2012-05-22 22:29:17 -07:00
Jeff Olson
c7656f67ad std:: adding tcp::read fn as simple, blocking read operation, akin to write
also: read_future ala write_future .. woooooohooooooooo
2012-05-22 22:29:17 -07:00
Jeff Olson
c2ae062e90 std: adding tcp::write_future for non-block tcp writes, docs cleanup 2012-05-22 22:29:17 -07:00
Jeff Olson
9b10359041 std: several minor cleanups wrt codereview.. see extended comments
* there are a few places where I was experimenting w/ using `alt` in places
where `if`/`else` would've sufficed. don't drink the koolaid!
* I had an unneeded `else` structure (the `if` branch that preceeded
concluded with a `fail` statement.. I added the `fail` later in the dev
cycle for this branch, so I forgot to remove the `else` after doing so)
* consistent wrt `prop_name: value` vs. `prop_name : value` in record decl
and initialization
* change an `alt` exp on an `ip_addr` to actually be exhaustive,
instead of using a catch-all clause
2012-05-22 22:29:17 -07:00
Jeff Olson
7de1a68217 std: add try_parse_addr and change an alt w/ ip_addr::ipv6 to avoid warning 2012-05-22 22:29:17 -07:00
Jeff Olson
bb88f772a4 core: doc/err feedback tweeks for result::unwrap 2012-05-22 22:29:17 -07:00
Jeff Olson
a40f550ed5 std: more docs and some methods for types in net::tcp 2012-05-22 22:29:17 -07:00
Jeff Olson
a4b1e965e2 std: ignoring timer test that seems to be race-failing b/c valgrind
.. this test fails frequently, locally, when ran with the batch of other
global_loop tests running due to how valgrind deals with multithreading
in the test app. not sure what to do, here.
2012-05-22 22:29:17 -07:00
Jeff Olson
6c6a47bf22 std: splitting out tcp server API + tests
- we now have two interfaces for the TCP/IP server/listener workflow,
based on different user approaches surrounding how to deal with the
flow of accept a new tcp connection:

1. the "original" API closely mimics the low-level libuv API, in that we
have an on_connect_cb that the user provides *that is ran on the libuv
thread*. In this callback, the user can accept() a connection, turning it
into a tcp_socket.. of course, before accepting, they have the option
of passing it to a new task, provided they *make the cb block until
the accept is done* .. this is because, in libuv, you have to do the
uv_accept call in the span of that on_connect_cb callback that gets fired
when a new connection comes in. thems the breaks..

I wanted to just get rid of this API, because the general proposition of
users always running code on the libuv thread sounds like an invitation
for many future headaches. the API restriction to have to choose to
immediately accept a connection (and allow the user to block libuv as
needed) isn't too bad for power users who could conceive of circumstances
where they would drop an incoming TCP connection and know what they're
doing, in general.

but as a general API, I thought this was a bit cumbersome, so I ended up
devising..

2. an API that is initiated with a call to `net::tcp::new_listener()` ..
has a similar signature to `net::tcp::listen()`, except that is just
returns an object that sort of behaves like a `comm::port`. Users can
block on the `tcp_conn_port` to receive new connections, either in the
current task or in a new task, depending on which API route they take
(`net::tcp::conn_recv` or `net::tcp::conn_recv_spawn` respectively).. there
is also a `net::tcp::conn_peek` function that will do a peek on the
underlying port to see if there are pending connections.

The main difference, with this API, is that the low-level libuv glue is
going to *accept every connection attempt*, along with the overhead that
that brings. But, this is a much more hassle-free API for 95% of use
cases and will probably be the one that most users will want to reach for.
2012-05-22 22:29:17 -07:00
Jeff Olson
e9c6416df6 std: splitting out tcp server API WIP 2012-05-22 22:29:17 -07:00
Jeff Olson
d02b3dffa4 std: reworking how some net and libuv modules are exported in the rc
.. turns out that, without the export, the modules aren't accessible
outside of the crate, itself. I thought that, by importing some module
into another (nesting it) and exporting from that nested module (which
is, itself, exported from std.rc) that my mod would be in the build
artifact. This doesn't appear to be the case. learning is fun!
2012-05-22 22:29:17 -07:00
Jeff Olson
8769409612 rt: adding rust_uv_* binding for kernel malloc and free'ing :/
I need these in the context of doing various malloc/free operations for
libuv structs that need to live in the heap, because of API workflow
(there's no stack to put them in). This has cropped up several times
when impl'ing the high-level API for things like timers, but I've decided
to take the plunge and use this approach for the net::tcp module.

Technically, this can be avoided by spawning a new
task that contains the needed memory structures on its stack and then
having it block for the duration of the time we need that memory to be
valid (this is what I did in std::timer). Exposing this API provides a
much lower overhead way to address
the issue, albeit with safety concerns. The main mitigation policy should
be to use malloc/free with libuv handles only when the handles, are then
associated with a resource or class-with-dtor. So we have a finite lifetime
for the object and can gaurantee a free(), barring a runtime crash (in
which case you have bigger problems!)
2012-05-22 22:29:16 -07:00
Jeff Olson
733881d852 std: tightening up net::tcp, server/client test done, still has races..
.. going to rework the listen() API to be non-blocking.
2012-05-22 22:29:16 -07:00
Jeff Olson
a4127d3fc6 std: change sig of uv::ll::accept, again. 2012-05-22 22:29:16 -07:00
Jeff Olson
465412aeff std: first-pass at a tcp server API, with a basic (non-robust) test
also whitespace cleanup

.. for now, the test just spins up the server and listens for messages,
echoing them back to an output port. there's a "kill" msg that it will
listen for. need to point the tcp client and server test impls at each
other for a loopback server/client test, like how its done in uv::ll

once ipv6 parse/format lands, i can add another test using the entirely
same codebase, but substituting an ip_addr ipv6 varient for the ipv4
varient used in the existing code

still need some other plumbing to get the client/server tests to work
together.
2012-05-22 22:29:16 -07:00
Jeff Olson
f2fd3bcf17 std: FIXME stub net::ip::ip_addr::ipv6 variant...needs parse/format impl
still need implementation for parsing/output formatting and (perhaps?)
representation (for now, i just followef the ipv4 variant's lead and
am representing it as a tuple of 8x u16).

parsing an ipv6 addr is way more complex than parsing an ipv4 addr, so
i'm putting off an implementation here, for now.

candidate solutions:
- could use getaddrinfo() (exists on both POSIX and windows), but with
incompatible fn signatures.
- libuv has a way to parse an ipv6 string into
a sockaddr_in6, but it also requires a port, so it's probably not aprop
for ip_addr
2012-05-22 22:29:16 -07:00
Jeff Olson
64048d43d6 std: makeing uv::ll::listen/accept use generic params for ptr args
more flexibility..
2012-05-22 22:29:16 -07:00
Jeff Olson
83cca50240 std: change tcp_*_result to use result::result.. flatter! 2012-05-22 22:29:16 -07:00
Jeff Olson
082a95a077 core: add result::unwrap() .. patch from @nmatsakis 2012-05-22 22:29:16 -07:00
Jeff Olson
3d8f7d644b std: no longer return uv::ll::err_data records from net::tcp
they're changed into a net::tcp::tcp_err_data record, for now. once the
scope of possible tcp errors, from libuv, is established ill create an
err type for each one and return those where they might occur
2012-05-22 22:29:16 -07:00
Jeff Olson
565c5d694a std: impl for high-level tcp client/request workflow 2012-05-22 22:29:16 -07:00
Jeff Olson
7e114b200a std: impl of net::tcp::write and make net::tcp::tcp_socket a resource 2012-05-22 22:29:16 -07:00
Jeff Olson
5590dfc857 std: tweak uv::ll::write signature and make it generic/more flexible 2012-05-22 22:29:16 -07:00
Jeff Olson
550b34b782 std: impl for net::tcp::connect 2012-05-22 22:29:15 -07:00
Jeff Olson
bc846ce7e3 std: export net::ip::format_addr 2012-05-22 22:29:15 -07:00
Jeff Olson
08b3048c43 std: misc cleanup for uv::ll
* tweaked the layout of sockaddr_in6 struct in anticipation of future use
* changed several uv:ll fn signatures to use generics and be more flexible
with ptr types they get passed
* add uv_err_data and a help fn to return it.. packages up err_name and
err_msg info from uv_get_last_error() stuff..
2012-05-22 22:29:15 -07:00
Jeff Olson
d99b7bcb2f std: pushing existing code in net.rs -> net_ip.rs and re-import/exporting 2012-05-22 22:29:15 -07:00
Jeff Olson
ffdaf14dd9 initial stab at API for std::net::tcp 2012-05-22 22:29:15 -07:00
Brian Anderson
27427a950a Merge pull request #2430 from mmeyerho/master
Added support for #! comments.  Closes issue 1772.
2012-05-22 20:39:53 -07:00
Tim Chevalier
ed357af980 Convert more resource tests to use classes with dtors
And monomorphize dtors correctly.
2012-05-22 22:12:18 -04:00
Margaret Meyerhofer
4f10c19215 Merge branch 'master' of git://github.com/mozilla/rust 2012-05-22 18:23:32 -07:00
Brian Anderson
8caf1403be bench: Reduce some constants to make graph500-bfs faster 2012-05-22 18:20:23 -07:00
Margaret Meyerhofer
507b8e5ae0 cleaned up debugging code 2012-05-22 18:13:24 -07:00
Brian Anderson
c0a36b71be rustc: Eliminate metadata's dependency on session 2012-05-22 18:07:36 -07:00
Brian Anderson
98b93b6c86 rustc: Eliminate some session deps from metadata::loader 2012-05-22 18:07:36 -07:00
Brian Anderson
c90a047016 rustc: Don't fall back to static libraries when shared isn't found
Nothing on Earth depends on this functionality and it is probably unexpected
2012-05-22 18:07:36 -07:00
Brian Anderson
5b4ab93017 rustc: Add cstore to ty::ctxt so csearch can get at it 2012-05-22 18:07:36 -07:00
Brian Anderson
99c1b2953d syntax: Add diagnostic::expect 2012-05-22 18:07:36 -07:00
Margaret Meyerhofer
6077647878 Added a test for #! comments 2012-05-22 18:03:26 -07:00
Brian Anderson
a32392d032 Merge pull request #2427 from msullivan/shifts
Get rid of the >>> operator and make >> logical or arithmetic depending ...
2012-05-22 17:50:04 -07:00
Margaret Meyerhofer
3177286a24 Changed the pretty printer also read #! comments 2012-05-22 17:49:16 -07:00
Margaret Meyerhofer
f1cea3ce21 Changed the lexer to accept #! comments on the first line. 2012-05-22 17:27:20 -07:00
Michael Sullivan
2a9bf0959b Add a test for Issue #2428. 2012-05-22 16:35:10 -07:00
Eric Holk
037a166ea7 Updating pbfs for new kind rules. 2012-05-22 15:51:11 -07:00
Eric Holk
b62d92c993 Removed accidental machine size dependencies. 2012-05-22 15:31:39 -07:00
Eric Holk
44bea03614 Updating bfs to work with the new random methods. 2012-05-22 15:31:39 -07:00
Eric Holk
24431520bf Removing par.rs, since it's not usable now anyway. 2012-05-22 15:31:39 -07:00
Eric Holk
5a4e2ae706 More unsafe pointers to share immutable structures between tasks. This version has a 2.8 to 3x speedup! 2012-05-22 15:31:39 -07:00
Eric Holk
7f05f088c7 Be less careful about checking that lengths make sense, for slightly more performance. 2012-05-22 15:31:39 -07:00
Eric Holk
77f6099606 Using unsafe pointers to views to try to reduce some vector copy and allocation time. Doesn't seem to have made much difference. 2012-05-22 15:31:39 -07:00
Eric Holk
ea889742d7 Using unsafe pointers to share closures.
This prevents the tons of copying problems we were having before, which means we only have a 5x slowdown now.
2012-05-22 15:31:39 -07:00
Eric Holk
65abe2c6dc Using libstd future instead.
Turning off sequential versions for tracing.
2012-05-22 15:31:38 -07:00
Eric Holk
cba2761cc4 A new version of the sequential BFS. This uses the same approach as the parallel one, but without using the parallel vector oeprators. 2012-05-22 15:31:38 -07:00
Eric Holk
4312fa44b9 BFS now tries a number of search keys. 2012-05-22 15:31:38 -07:00
Eric Holk
a79f5174ea A parallel BFS. 2012-05-22 15:31:38 -07:00
Eric Holk
a785f3fc95 Adding a module with parallel vector operations.
This should go in libstd, but currently resolve bugs make this not
work.
2012-05-22 15:31:38 -07:00
Eric Holk
d485f23a1a Added most of the Graph500 validation routine. It's very slow. 2012-05-22 15:31:38 -07:00
Eric Holk
f5b9ebffa0 Starting on a BFS benchmark, but ran into problems with the deque module, so I used ports and channels as a queue in the simple sequential algorithm. 2012-05-22 15:31:38 -07:00
Michael Sullivan
15cef374b9 Get rid of the >>> operator and make >> logical or arithmetic depending on the signedness. Closes #2417. 2012-05-22 14:59:15 -07:00
Eric Holk
0b2f2cabbe Send is no longer a subkind of copy. This allows for sendable, but non-copyable resources. Closes #2420. 2012-05-22 14:10:32 -07:00
Eric Holk
f213c1f3a8 Represent kinds as a bitfield of capabilities. 2012-05-22 12:48:31 -07:00
Michael Sullivan
8d7f3bd1ca Disallow type parameters to self. Closes #2422. 2012-05-22 11:52:22 -07:00
Paul Stansifer
f2ad7c3426 do is no longer a keyword 2012-05-22 11:20:23 -07:00
Niko Matsakis
83ee4ac5ea impl-ify map 2012-05-22 10:02:34 -07:00
Niko Matsakis
073f90cdc4 introduce some copies so we are not alting into mut state 2012-05-22 05:21:13 -07:00
Brian Anderson
9aa18c2852 rustc: Move ast_map to the syntax crate 2012-05-21 23:39:27 -07:00
Brian Anderson
47bb1185f2 rustc: Move walk_pat to ast_util
This will allow ast_map to move to the syntax crate
2012-05-21 23:22:08 -07:00
Brian Anderson
df532e7f1b rustc: Remove ast_map's session dependency 2012-05-21 23:22:06 -07:00
Brian Anderson
611890013f rustc: Remove unused import 2012-05-21 22:50:10 -07:00
Brian Anderson
85d67723ee rustc: Move path_to_ident to ast_util 2012-05-21 22:41:59 -07:00
Brian Anderson
c492a183d7 core: Fix typos in ignore attrs 2012-05-21 21:30:26 -07:00
Niko Matsakis
2fa5a66310 remove mutable cycle from ast_fold 2012-05-21 20:07:14 -07:00
Brian Anderson
2bec7eafb1 core: Rework some rand functions to be more consistent
Changed the gen_x_from functions to gen_x_range and made them use the range
[start, end) like other core functions.
2012-05-21 18:57:30 -07:00
Brian Anderson
d18da37c9c core: Ignore another should_fail test on win32 2012-05-21 18:39:31 -07:00
Brian Anderson
1678b6f01f core: Ignore a should_fail test on win32 2012-05-21 18:19:36 -07:00
Brian Anderson
c8c6f8e23b Register snapshots 2012-05-21 18:08:39 -07:00
Brian Anderson
17dd5650f8 rt: Fix def of isaac_seed on windows 2012-05-21 17:42:32 -07:00
Brian Anderson
a1b40d5136 core: Fix types in rand mod 2012-05-21 17:38:05 -07:00
Gareth Daniel Smith
c9f8ae02bc add a seeded random number generator so that sequences of random numbers can be easily reproduced (for https://github.com/mozilla/rust/issues/2379) 2012-05-21 17:38:05 -07:00
Gareth Daniel Smith
64130f1589 add a bunch more rand::rng extension methods - one for each primitive type and also some choose/shuffle functions (for https://github.com/mozilla/rust/issues/2379) 2012-05-21 17:38:04 -07:00
Gareth Daniel Smith
11e81951bb separate the rand::rng gen_* methods out into an iface-less-impl so that the gen_* methods can be reused with different rng implementations (for https://github.com/mozilla/rust/issues/2379) 2012-05-21 17:38:04 -07:00
Brian Anderson
b4da0364f9 Merge pull request #2413 from erickt/master
a couple misc changes
2012-05-21 17:32:12 -07:00
Brian Anderson
6d8cffa991 std: Make timer tests more reliable under valgrind 2012-05-21 17:29:00 -07:00
Lindsey Kuper
248e439638 Region checking: this one currently passes, but only "by accident". 2012-05-21 13:05:06 -07:00
Lindsey Kuper
af418d97c0 Test illustrating issue #2263. 2012-05-21 13:04:30 -07:00
Niko Matsakis
34b42eeb65 change list so that it must be used in a purely boxed fashion
The old way was inconsistent---the head was unboxed but the
tail was boxed.  This resulted in numerous needless copies and
also made the borrow check unhappy, because the head tended to be
stored in mutable memory.
2012-05-21 09:37:34 -07:00
Niko Matsakis
8e73bb6ea0 detect and report shadows in nested bindings 2012-05-21 09:37:22 -07:00
Niko Matsakis
1ad5f7d2c1 make list based on boxes 2012-05-21 06:18:12 -07:00
Brian Anderson
239cf80c73 rustc: Remove dead code in encoder 2012-05-19 19:09:10 -07:00
Niko Matsakis
28d0ce9a8b fix up handling of &x where x is an arg or &self (for now at least). 2012-05-19 10:33:14 -07:00
Erick Tryzelaar
24cfe29a8a std: Fix a typo 2012-05-19 10:08:44 -07:00
Erick Tryzelaar
9d01c46c07 core: Add iterable functions to io::reader_utils. 2012-05-19 10:08:44 -07:00
Erick Tryzelaar
e7ca3e4db0 expose tzset 2012-05-19 10:08:43 -07:00
Erick Tryzelaar
047f629b31 Remove some dead code. 2012-05-19 10:08:43 -07:00
Niko Matsakis
83a85d765b remove unused variable 2012-05-18 20:02:13 -07:00
Niko Matsakis
d1cde18af3 add more inline directives to dvec 2012-05-18 20:00:51 -07:00
Niko Matsakis
7905b79156 port codemap to use dvec 2012-05-18 20:00:51 -07:00
Niko Matsakis
de1513f26a port interner to use dvec 2012-05-18 20:00:51 -07:00
Niko Matsakis
b8418da1b6 port qquote to use dvec 2012-05-18 20:00:51 -07:00
Niko Matsakis
b4be2c676f create a smallintmap benchmark 2012-05-18 20:00:51 -07:00
Niko Matsakis
bfde2ba524 port smallintmap over to dvec
also: add a non-operator-overloaded method for [] to work around #2378
2012-05-18 20:00:51 -07:00
Niko Matsakis
774ea145ec make more code use dvec 2012-05-18 20:00:51 -07:00
Niko Matsakis
0f969da882 port some code to use dvec 2012-05-18 20:00:50 -07:00
Niko Matsakis
cf6ad6d62a move io over to dvec 2012-05-18 20:00:50 -07:00
Niko Matsakis
35f6f37453 avoid modifying the variable we are alting over 2012-05-18 20:00:50 -07:00
Niko Matsakis
c9edc0f0a1 introduce a few copies here and there 2012-05-18 20:00:50 -07:00
Niko Matsakis
f9aef928ca purge ufind 2012-05-18 20:00:50 -07:00
Niko Matsakis
81caf926b4 test for #2378 2012-05-18 20:00:50 -07:00
Niko Matsakis
44c100c28d try to improve handling of methods 2012-05-18 20:00:50 -07:00
Niko Matsakis
da204e1d73 add swappable/dvec modules 2012-05-18 20:00:50 -07:00
Niko Matsakis
253979236e print ids of patterns when doing --pretty identified 2012-05-18 19:07:20 -07:00
Niko Matsakis
b79d717c91 fix borrowing pats---the id field of cmt was assoc with wrong pat 2012-05-18 19:07:20 -07:00
Niko Matsakis
19ec5a41ed allow region ptrs to be cast to uints 2012-05-18 19:07:19 -07:00
Niko Matsakis
f1a46914c4 add a new debugging aid--tracing 2012-05-18 19:07:19 -07:00
Eric Holk
c568cf6099 Added vec::view, for creating subslices. 2012-05-18 16:55:42 -07:00
Eric Holk
0eed37da29 Using const vector slices for more vec functions. 2012-05-18 16:55:42 -07:00
Brian Anderson
0f20cae37f std: Don't copy hash key until we must 2012-05-18 16:50:16 -07:00
Brian Anderson
e546c4820b rustc: Don't copy vecs in seq_preconds. Huge perf win on some tests
Compile time for the included test goes from 5min to 18s.
2012-05-18 15:59:00 -07:00
Niko Matsakis
09b9447eb6 remove line so that pretty printer doesn't mess it up 2012-05-18 14:32:38 -07:00
Niko Matsakis
2f284cefa0 xfail-test failing test 2012-05-18 14:32:38 -07:00
Niko Matsakis
67ca37ac61 workaround a horribly obscure resolve bug 2012-05-18 14:32:37 -07:00
Niko Matsakis
a559329692 test that we preserve boxes in patterns---still one bug 2012-05-18 14:32:37 -07:00
Brian Anderson
3f283bb168 rustc: Don't recurse in seq_preconds. Consumes too much stack 2012-05-18 14:28:39 -07:00
Niko Matsakis
afca68b820 test file I had lying around and had forgotten to commit 2012-05-18 10:38:18 -07:00
Niko Matsakis
5be8bf1de7 use -Z to distinguish internal debugging options 2012-05-18 10:38:18 -07:00
Paul Stansifer
0eef34bacb add #include_bin[] 2012-05-18 10:05:25 -07:00
Paul Stansifer
ac2faad26e Fold #include_str into the other source_utils.rs syntax extensions. 2012-05-18 10:05:25 -07:00
Paul Stansifer
07e775404f add #mod[], which expands to the current module path 2012-05-18 10:05:25 -07:00
Paul Stansifer
88f4d06941 New syntax extensions: #line[], #col[], #file[], #stringify[], #include[] 2012-05-18 10:05:24 -07:00
Paul Stansifer
9fe547d3a7 Make extracting syntax extension arguments easier. 2012-05-18 10:05:24 -07:00
Tim Chevalier
cdcce3ed5d Refactoring, annotating FIXMEs in remainder of metadata code 2012-05-17 22:15:07 -07:00
Tim Chevalier
c97b29afd1 Refactor encoder::encode_module_item_paths
to eliminate some repeated code.
2012-05-17 20:39:17 -07:00
Tim Chevalier
cf2fc2c34e Annotate or fix FIXMEs in LLVM bindings and metadata code
Fixed up a few FIXMEs in lib/llvm to use more descriptive data
types. Covered FIXMEs in metadata::{creader, csearch, decoder} and
one in encoder.
2012-05-17 20:39:17 -07:00
Patrick Walton
37abcda42b rustc: Make type_is_pod class-aware 2012-05-17 17:20:58 -07:00
Lindsey Kuper
7f45ba4744 Move inference-related fields/methods from fn_ctxt to infer_ctxt. 2012-05-17 14:34:41 -07:00
Eric Holk
251a0a38d7 Exporting alli. 2012-05-17 12:01:45 -07:00
Eric Holk
3c48759a56 Added a method to convert sets to vectors. 2012-05-17 12:00:50 -07:00
Eric Holk
aec0b51d9c Added a few more extension methods on vectors, and fixed a pretty printer bug. 2012-05-17 12:00:24 -07:00
Tim Chevalier
9fa4763604 Comments only: annotate FIXMEs in front-end 2012-05-17 11:32:53 -07:00
Tim Chevalier
55c008874d Comments only: annotate FIXMEs in back-end and driver 2012-05-17 11:20:14 -07:00
Tim Chevalier
db8931c876 Minor edits to README 2012-05-17 10:13:30 -07:00
Tim Chevalier
a4f0021f89 Update and copyedit README for rustc
Lindsey pointed out that the location of librustsyntax was out-of-date,
so I fixed that; noticed a lot of other out-of-date info; and updated it.
I also obliterated all passive voice. Yay!

Closes #2382
2012-05-17 10:10:18 -07:00
Tim Chevalier
0343b0553b Test that a class type name gets printed correctly in a...
"cannot be dereferenced" error message. Closes #2370
2012-05-17 09:40:43 -07:00
Brian Anderson
288799786b rustc: Sever the link between metadata and resolve 2012-05-16 22:46:57 -07:00
Brian Anderson
322b20d14d rustc: Break another dependency between metadata and resolve 2012-05-16 22:28:17 -07:00
Brian Anderson
6a41eb0192 rustc: Break a dependency between metadata and resolve 2012-05-16 21:50:34 -07:00
Graydon Hoare
9752523f3a Include intrinsic module in all crates, emit visit glue, fn intrinsic::visit_ty. Not yet working. 2012-05-16 18:24:00 -07:00
Graydon Hoare
eab5790c91 Register new snapshots. 2012-05-16 17:54:04 -07:00
Brian Anderson
feb8d60dc7 core: Ignore more tests 2012-05-16 16:58:02 -07:00
Brian Anderson
7c53c2bb16 core: Ignore more tests on more platforms 2012-05-16 16:17:28 -07:00
Brian Anderson
31a6eae4fc core: Ignore int-template::test_parse_buf on windows 2012-05-16 14:33:42 -07:00
Brian Anderson
ce20ed77b2 core: Ignore int-template::test_from_str on windows
Alignment problems
2012-05-16 14:13:07 -07:00
Niko Matsakis
69eca26775 pull out id visitor into ast_util from astencode 2012-05-16 13:30:30 -07:00
Niko Matsakis
21fc3af031 add xfail-fast directives for borrowck tests 2012-05-16 12:44:54 -07:00
Lindsey Kuper
9f8d2b97d3 Another typo fix. 2012-05-16 12:34:10 -07:00
Lindsey Kuper
76f49e497e Typo fixes. 2012-05-16 12:09:55 -07:00
Niko Matsakis
fa2ac66462 add a large comment on how infer works 2012-05-16 09:42:38 -07:00
Niko Matsakis
558be3a70f pull method lookup / region manip into their own modules 2012-05-16 08:51:16 -07:00
Niko Matsakis
564aa59a3f further reorganization 2012-05-16 08:02:43 -07:00
Niko Matsakis
63210ecddb correct preservation of explicit borrows like "let x = &*y;" 2012-05-16 07:19:19 -07:00
Niko Matsakis
5c8069d817 break out type checking of alts/patterns (again) 2012-05-16 06:57:13 -07:00
Niko Matsakis
da98e14c94 Revert "break out type checking of alts/patterns"
This reverts commit 8d1c1720e3.
2012-05-16 06:38:23 -07:00
Niko Matsakis
8d1c1720e3 break out type checking of alts/patterns 2012-05-16 06:37:53 -07:00
Niko Matsakis
fc8e1cb646 missing import 2012-05-16 06:16:55 -07:00
Niko Matsakis
5cd6bb1ed3 correct long line 2012-05-16 06:12:12 -07:00
Niko Matsakis
7512284a94 further modularization of typeck, add comments 2012-05-16 06:06:42 -07:00
Brian Anderson
8cc596ceb6 core: Fix typo 2012-05-16 00:03:57 -07:00
Brian Anderson
2adad1f7cd core: Generalize int-string conversions to all int types
Issue #2239
2012-05-15 23:46:40 -07:00
Brian Anderson
cb6ed42717 core: Generalize uint-string conversions to all uint types
Issue #2239
2012-05-15 22:50:35 -07:00
Brian Anderson
0e21a05e6c rustc: Extract loader mod from creader mod
loader is a utility for locating crates and loading their metadata.
creader is a compiler pass that loads metadata for all used libraries.
2012-05-15 21:36:16 -07:00
Niko Matsakis
4bfa19b100 rename test 2012-05-15 21:20:52 -07:00