Eric Holk
aba665da32
Fix the signature on vec::view.
...
Due to limitations in region inference, this has the effect of making vec::view pretty much entirely unusable.
2012-07-12 18:16:00 -07:00
Graydon Hoare
18da7fef88
Merge remote-tracking branch 'origin/dist-snap' into incoming
2012-07-12 17:14:55 -07:00
Michael Sullivan
2ea9c8df0f
Accept prefix notation for writing the types of str/~ and friends.
2012-07-12 16:52:26 -07:00
Michael Sullivan
1c62f5ff74
Get rid of all of the remaining /~s in the code base.
2012-07-12 15:13:18 -07:00
Michael Sullivan
120773b2a7
Change the interface of placement new to take a tydesc as part of Issue #2831 .
2012-07-11 11:42:49 -07:00
Graydon Hoare
aa7b3cc929
Fix some version numbers.
2012-07-11 09:09:08 -07:00
Brian Anderson
ccee8cb4f9
std: Fix deadlock by unsupervising the global I/O task
2012-07-10 15:10:13 -07:00
Erick Tryzelaar
1972ae23e5
libcore: add a task::set_sched_mode fn
2012-07-10 08:45:08 -07:00
Graydon Hoare
c26d02557e
Switch 'cont' to 'again' everywhere. Close #2229 .
2012-07-09 14:37:48 -07:00
Brian Anderson
aa232a5269
Merge pull request #2846 from gwillen/1c882842e06431767676887f97f9dcc0ee50a7b9
...
Add map::clear
2012-07-09 13:26:48 -07:00
Patrick Walton
e41029d236
rustc: Switch to the new resolution pass
2012-07-09 10:27:13 -07:00
Glenn Willen
1c882842e0
Add clear() to the map interface.
...
Add clear to the map interface, and implement it in hashmap and smallintmap.
2012-07-08 16:06:48 -07:00
Niko Matsakis
a856bccdc6
Revert "rustc: Switch to the new resolution pass"
...
This reverts commit c4af6e92fb
.
Branch was burning...many, many unresolved imports.
2012-07-06 20:45:06 -07:00
Patrick Walton
c4af6e92fb
rustc: Switch to the new resolution pass
2012-07-06 19:07:26 -07:00
Tim Chevalier
889be71cb4
Comments only: change TODOs to FIXMEs and annotate them
2012-07-05 16:10:29 -07:00
Tim Chevalier
50d2e7e07e
Mostly change TODOs to FIXMEs and annotate them
...
But, one change in io to implement a TODO suggestion (using a
const u8)
2012-07-05 15:06:33 -07:00
Brian Anderson
7babcf55d7
std: Actually buildbase64
2012-07-05 14:40:51 -07:00
Brian Anderson
73f1f686e9
std: Export base64
2012-07-05 14:39:08 -07:00
Gareth Daniel Smith
be0141666d
convert doc-attributes to doc-comments using ./src/etc/sugarise-doc-comments.py (and manually tweaking) - for issue #2498
2012-07-04 19:18:13 -07:00
Ben Striegel
f2e2a14f36
Remove empty argument lists from do expressions
2012-07-04 17:21:29 -07:00
Brian Anderson
a52135f5a7
Tidy
2012-07-04 15:01:24 -07:00
Brian Anderson
34660f099e
Merge pull request #2798 from erickt/incoming
...
adding base64 and to_bytes to stdlib
2012-07-04 14:36:03 -07:00
Josh Matthews
10fd19580e
When getopts encounters an option that takes an argument, it should treat the remainder of the current option string as the argument if it is non-empty. Fix #2791 .
2012-07-04 14:23:22 -07:00
Erick Tryzelaar
abee158945
Add a basic base64 module
2012-07-03 21:29:45 -07:00
Ben Blum
aa909dc60a
oops, fix option.expect() and use it in libstd/map.rs
2012-07-03 21:03:51 -04:00
Brian Anderson
41bca84dd9
core: Convert iter::repeat to the for protocol
2012-07-03 17:31:31 -07:00
Patrick Walton
af38333f75
rustc: Speed up def ID parsing in the metadata
2012-07-03 17:12:02 -07:00
Graydon Hoare
be2c92078b
Change crust -> extern.
2012-07-03 16:49:46 -07:00
Graydon Hoare
dc98165443
Mop up a few extra native -> foreign changes.
2012-07-03 16:49:46 -07:00
Graydon Hoare
debb7e4641
Switch 'native' to 'extern' (or 'foreign' in some descriptions)
2012-07-03 16:11:00 -07:00
Patrick Walton
1c2843c8ad
core: Eliminate some overloading of the name "future" in future.rs
2012-07-03 11:24:01 -07:00
Michael Sullivan
c854d6ebdb
Remove some bogus exports.
2012-07-03 10:52:32 -07:00
Brian Anderson
2ea8922b8a
Merge remote-tracking branch 'brson/uv'
2012-07-02 21:39:08 -07:00
Patrick Walton
f093d374ed
rustc: Implement a new resolve pass behind a compile flag
2012-07-02 18:30:12 -07:00
Brian Anderson
18ac4eee3b
std: Ignore a test that doesn't terminate on windows
2012-07-02 16:50:47 -07:00
Brian Anderson
3c6a5385d6
std: Add missing cfg attr for freebsd
2012-07-02 14:32:15 -07:00
Brian Anderson
6d411342c6
Merge remote-tracking branch 'brson/uv'
...
Conflicts:
src/libstd/net_ip.rs
src/libstd/net_tcp.rs
2012-07-02 14:03:38 -07:00
Ben Blum
5b41592f21
Make list::from_vec take a slice, not a ~.
2012-07-02 15:49:46 -04:00
Brian Anderson
d1fc2b5995
Convert to new closure syntax
2012-07-01 19:19:32 -07:00
Brian Anderson
a3382b6f26
Eliminate usages of old sugared call syntax
2012-06-30 16:01:49 -07:00
Michael Sullivan
98e161f00e
Switch the compiler over to using ~[] notation instead of []/~. Closes #2759 .
2012-06-29 17:41:45 -07:00
Brian Anderson
483aee8dc4
Ignore various uv tests that fail
2012-06-29 17:16:16 -07:00
Jeff Olson
a3c933e0a0
std: uv::ll fixes for 32bit linux
2012-06-29 15:41:56 -07:00
Jeff Olson
087c4244b1
std: adding some basic docs for net::ip::get_addr
2012-06-29 15:41:56 -07:00
Jeff Olson
a696193bab
std: cleanups, post-rebase
2012-06-29 15:41:56 -07:00
Jeff Olson
cfcd3e683b
std/rt: cleanup and adding sockaddr_in6 mapping for win32
2012-06-29 15:41:56 -07:00
Jeff Olson
b074774232
rename net::ip tests en masse
2012-06-29 15:41:56 -07:00
Jeff Olson
b0c4b8ba18
std: fix errors from recent rebase and vec expr/type syntax update
2012-06-29 15:41:56 -07:00
Jeff Olson
9edcb104ff
std: addressing #2656 (ipv6 support in net::tcp)
...
.. there are some additional FIXME nags in net_tcp (L 1012) about blocking
because libuv is holding unsafe ptrs to task local data. the proposed
fix going is not really feasible w/ the current design, IMO, but i'll
leave it there in case someone really wants to make the case without
creating more hassle than it's worth.
2012-06-29 15:41:56 -07:00
Jeff Olson
e097ff6398
std: add test for net::ip::get_addr failure
2012-06-29 15:41:56 -07:00
Jeff Olson
e5212de671
std: beef up ipv4 validation a bit
...
now the best of what we had prior to libuv integration (proper
validation of an ipv4 string), along with libuv support
(initial ipv6 support)
libuv has even weaker facilities for validating an input ipv6
(but still more than what we had), so eventually the "right"
answer would be to roll a proper ipv6 address string parser
in rust
2012-06-29 15:41:56 -07:00
Jeff Olson
81157ff1d2
std: add uv::ll::is_ipv6_addrinfo and get_INADDR_NONE
2012-06-29 15:41:56 -07:00
Jeff Olson
5014a2a413
std: whitespace/comment clean
2012-06-29 15:41:56 -07:00
Jeff Olson
5304698621
std: net::ip::get_addr is working w/ happy path test. needs more.
2012-06-29 15:41:56 -07:00
Jeff Olson
467e4fba33
WIP set aside unshift
2012-06-29 15:41:56 -07:00
Jeff Olson
b2894752e4
std: roughcut impl of net::ip::get_addr()
...
still needs tests
2012-06-29 15:41:56 -07:00
Jeff Olson
8afc113b61
std: wire-up low-level bindings to libuv's uv_getaddrinfo API and friends
2012-06-29 15:41:56 -07:00
Jeff Olson
ccd4bfb6ca
std: mapped addrinfo, addr_in and uv_getaddrinfo_t as rust records
2012-06-29 15:41:55 -07:00
Jeff Olson
334c783d36
std: adding net::ip::v6 utils and rudimentary tests, huzzah! (see caveats)
...
libuv's own ip vetting code appears to in a somewhat woeful state,
for both ipv4 and ipv6 (there are some notes in the tests for net_ip, as
well as stuff added in uv_ll). They are aware of this and welcome patches.
I have rudimentary code in place that can verify whether the provided str
ip was, in fact, validly parsed by libuv, making a few assumptions:
* for ipv4, we assume that the platform's INADDR_NONE val is 0xffffffff ,
I should write a helper to return this value from the platform's libc
headers instead of hard-coding it in rust.
* for ipv6, we assume that the library will always return '::' for
malformed inputs.. as is the case in 64bit ubuntu. I need to verify this
on other platforms.. but at least the debugging output is in place, so
if expectations don't line up, it'll be straightforward to address
2012-06-29 15:41:55 -07:00
Jeff Olson
b6b138630e
std: getting uv_ip6_* utils working in uv::ll
...
.. stub out some brokeness in net::tcp as a result of ipv6 coming online
2012-06-29 15:41:55 -07:00
Jeff Olson
30f26ddbc9
std: adding uv::ll::ip4_name and refactored net::ip to use it
...
replaces net::ip's previously, hand-rolled impl for ipv4 addr parsing..
we're relying on libuv, now
2012-06-29 15:41:55 -07:00
Jeff Olson
c027292846
std: mapping additional libuv ip string helpers.. add test for sockaddr_in6
...
.. but the test is kind of broken.. it appears that rust pads structs for
alignment purposes? I can't get the struct to == 28.. that appears to
be the native size of sockaddr_in6.. so we have a size 32 struct, for now.
2012-06-29 15:41:55 -07:00
Jeff Olson
708b5d986e
core: str::as_slice is unneeded, yay! fixes std::net::tcp socket_buf test
...
i mistook an "unconstrained type" error, due to type-inference messup
because i didnt have return vals in some closure wired-up right, for being
due to not having a str as a str/& (a str will actually auto-coerce to a
str/&, so str::as_slice was erroneously added. my bad).
2012-06-29 15:41:55 -07:00
Jeff Olson
942d3b527e
std: test impl for using tcp_socket_buf and its reader/writer impls. fails.
...
needs work. probably the slice code and/or the way that the tcp_socket_buf
is wrapped in a shared box
2012-06-29 15:41:55 -07:00
Jeff Olson
99d2ec3ad1
std: renaming impl for tcp_socket and reshuffle/cleanup for tcp_socket_buf
2012-06-29 15:41:55 -07:00
Jeff Olson
156a4317f6
std: finish impl of io::writer for tcp_socket_buf
2012-06-29 15:41:55 -07:00
Jeff Olson
af3fa5306d
std: rework signature of tcp::write common impl to make io::writer possible
2012-06-29 15:41:55 -07:00
Jeff Olson
28ab8b841a
std: add buffered wrapper to tcp_socket + io::reader impl. no tests, yet.
...
need to do some other work, in the subsequent commit, to add io::writer,
then tests.
2012-06-29 15:41:55 -07:00
Jeff Olson
31c33ca5ff
std: doc and misc cleanup in net::tcp
...
* updated rustdoc info for several functions
* changed read_stop to take control of the port returned by read_start
* made write_future do an explicit data copy with the binary vector it is
passed
2012-06-29 15:41:55 -07:00
Jeff Olson
f7e3a4e036
std: EADDRINUSE and EACCES err tests for tcp server + more cleanup
...
.. confounded resolve!
2012-06-29 15:41:55 -07:00
Jeff Olson
235f6c7ab7
std: factor main body of tcp::listen into reusable listen_common
2012-06-29 15:41:55 -07:00
Jeff Olson
d79d0aa1c8
std: some cleanup in net::tcp rename listen_to_conn->listen
2012-06-29 15:41:55 -07:00
Jeff Olson
68e129dc39
std: dump the tcp::new_listener server API
2012-06-29 15:41:55 -07:00
Jeff Olson
5d86686e7f
std: mod cleanup, impl/test for conn. refused err + mem leak fix
2012-06-29 15:41:55 -07:00
Jeff Olson
900e446015
std: import/export cleanup in net_tcp
2012-06-29 15:41:54 -07:00
Jeff Olson
79e279ee12
std: kludge export of net_ip in std.rc until submodule export is sorted
2012-06-29 15:41:54 -07:00
Ben Blum
af2d01e36b
Fix sys::refcount and remove dbg::refcount
2012-06-28 14:40:31 -04:00
Eric Holk
0b84437b68
Replace more vector additions (issue #2719 )
2012-06-27 22:49:05 -07:00
Michael Sullivan
df9b43e27c
Add an overloaded [] function to the map interface. Closes #2730 .
2012-06-27 16:35:05 -07:00
Graydon Hoare
697f1e38d6
Change 'native' and 'crust' to 'extern'.
...
This comes with a terminology change. All linkage-symbols are 'extern'
now, including rust syms in other crates. Some extern ABIs are
merely "foreign". The term "native" is retired, not clear/useful.
What was "crust" is now "extern" applied to a _definition_. This
is a bit of an overloading, but should be unambiguous: it means
that the definition should be made available to some non-rust ABI.
2012-06-26 16:18:37 -07:00
Patrick Walton
d4672a078e
libstd: Work around some metadata infelicities that are causing problems in resolve3, and remove an unused glob
...
Conflicts:
src/libstd/net_tcp.rs
src/libstd/par.rs
2012-06-26 14:37:29 -07:00
Eric Holk
ccd2394ff9
perf: improved the core-std benchmark
2012-06-26 14:08:16 -07:00
Michael Sullivan
329eca6044
Make vectors uglier ([]/~). Sorry. Should be temporary. Closes #2725 .
2012-06-25 20:00:46 -07:00
Eric Holk
b19c98ea9a
Some perf fixes, although vec::slice is still too slow (Issue #2719 )
2012-06-25 16:38:12 -07:00
Tim Chevalier
da470ff5b8
Merge
2012-06-25 13:29:41 -07:00
Eric Holk
07e1d1c6b6
Improved graph500 performance (Issue #2719 )
2012-06-25 11:15:45 -07:00
Brian Anderson
2f060eb880
core: Name is_failure to is_err, is_success to is_ok
2012-06-22 18:26:25 -07:00
Tim Chevalier
21399dca12
Change resources to classes in libstd and rustc
2012-06-22 11:53:25 -07:00
Graydon Hoare
312faf31df
Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.
2012-06-21 16:44:10 -07:00
Eric Holk
9bdb2c9e48
Library vecs are fast now.
2012-06-21 16:11:11 -07:00
Eric Holk
0e5cfd9f33
Move vector addition out of trans and into libcore.
2012-06-21 16:11:11 -07:00
Tim Chevalier
1b4dcbecac
Comments only: typos
2012-06-20 20:12:14 -07:00
Brian Anderson
4dcf84e4f4
Remove bind. Issue #2189
2012-06-20 17:27:28 -07:00
Eric Holk
be664ddd29
Moved arc to libcore and added an arc that allows shared mutable state through mutual exclusion.
2012-06-19 10:31:12 -07:00
Brian Anderson
8967a66724
std: Use the singular 'test' when running just 1. Closes #2554
2012-06-18 15:52:53 -07:00
Tim Chevalier
0276a3376b
Revert "Moved arc to libstd and added an arc that allows shared mutable state through mutual exclusion."
...
This reverts commit 015527b0ce
.
2012-06-16 15:21:08 -07:00
Eric Holk
015527b0ce
Moved arc to libstd and added an arc that allows shared mutable state through mutual exclusion.
2012-06-15 22:00:58 -04:00
Tim Chevalier
bc507c4ef5
Remove unneeded spawn in std::timer, and annotate a FIXME
2012-06-14 19:09:02 -07:00
Tim Chevalier
6b16325f43
Comments only: annotate FIXMEs
2012-06-14 18:46:33 -07:00
Brian Anderson
1db8515c08
Merge remote-tracking branch 'erickt/master' into incoming
2012-06-13 12:03:13 -07:00
Brian Anderson
ce750a7dbc
Box AST idents
2012-06-13 11:30:45 -07:00
Erick Tryzelaar
11a56c3e91
Add a couple more to_json impls.
2012-06-13 08:30:54 -07:00
Erick Tryzelaar
b361f6c288
Fix json no-implicit-copy warnings
2012-06-12 18:10:19 -07:00
Erick Tryzelaar
2cc0a0e19c
std: Remove copy from all the hashmap key type params
2012-06-12 18:10:19 -07:00
Erick Tryzelaar
01118be818
whitespace cleanup
2012-06-12 18:10:19 -07:00
Erick Tryzelaar
48e877a435
Rewrite int/uint helper functions to use refs
...
This lets us pass them to generic functions.
2012-06-12 18:10:19 -07:00
Erick Tryzelaar
a816176eb5
std: Add a to_str impl for json::error.
2012-06-12 18:10:18 -07:00
Lindsey Kuper
d8d76738ec
std: Typo fix in docs.
2012-06-08 15:02:50 -07:00
Niko Matsakis
9105cb6d5d
revise map interface so that K need not be copyable
2012-06-08 14:35:11 -07:00
Brian Anderson
7a74545e97
Convert reinterpret_cast + forget to 'transmute'
2012-06-08 10:58:46 -07:00
Brian Anderson
95b9d538b8
Use #[cfg(unix)] and #[cfg(windows)] everywhere
2012-06-07 22:28:00 -07:00
Patrick Walton
7571ee85c4
Merge branch 'incoming'
2012-06-07 18:50:42 -07:00
Patrick Walton
d8b113f209
std: Implement a fuzzy-equal interface
2012-06-07 18:12:50 -07:00
Brian Anderson
c816eea000
std: Add debug::breakpoint
2012-06-06 23:39:55 -07:00
Niko Matsakis
3b4cfdeee2
Merge remote-tracking branch 'mozilla/incoming'
...
Conflicts:
src/rustc/middle/tstate/auxiliary.rs
2012-06-06 19:00:34 -07:00
Niko Matsakis
c3b266f50f
Rewrite deque to use dvec
2012-06-06 18:36:59 -07:00
Niko Matsakis
60913bf045
constrain scope of mut ptr to please borrowck
2012-06-06 18:36:27 -07:00
Tim Chevalier
a6c92f0a17
Revert "Revert "Merge pull request #2516 from mozilla/incoming" due to failures"
...
This reverts commit 9fae95860de510f6874810cf43efb83f101246ef.
2012-06-06 15:08:24 -07:00
Michael Sullivan
6396e2c3c3
Make vecs implicitly copyable for all of our projects.
2012-06-04 19:53:30 -07:00
Eric Holk
1e8f501343
Machine types are different from int/uint, etc (Issue #2187 )
2012-06-04 19:16:47 -07:00
Michael Sullivan
6d9dd055d1
Get rid of warnings from instantiating typarams with non-implicitly copyable types.
2012-06-04 16:35:32 -07:00
Niko Matsakis
01b5777c8b
prohibit type parameters in native fns and other minor fixes
...
trans now can safely assert that it never sees a type param
2012-06-03 20:03:08 -07:00
Niko Matsakis
3f6e6532ac
make vec fns/methods take imm slices.
...
this also repairs the unsoundness in typing of unpack_slice,
which was silently converting a const ptr to an imm one.
2012-06-02 19:14:57 -07:00
Niko Matsakis
dd8f76c619
squelch warnings in tests
2012-06-01 11:10:27 -07:00
Graydon Hoare
574b3e81e6
Add some convenience helpers to getopts. Close #1837 .
2012-05-31 17:02:03 -07:00
Eric Holk
3acc3c4d85
Make std::map require const keys.
2012-05-31 13:55:54 -07:00
Graydon Hoare
6ef458252b
Some fixes to bitv. Close #2342 .
2012-05-31 11:38: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
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
ccb54f0ce0
Move par into libstd. Closes #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
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
Erick Tryzelaar
ed5af70a36
std: add json::to_str and json::to_json iface.
2012-05-28 12:14:41 -07:00
Benjamin Kircher
360194d282
std: Fix bitv each() method (issue 2363)
2012-05-27 22:08:48 +02:00
Brian Anderson
432c6cbde9
core: Make range follow the for loop protocol
2012-05-26 02:28:00 -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
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
Brian Anderson
a8c8c8ae28
std: FIXME's and cleanups for uv
2012-05-24 16:42:16 -07:00
Eric Holk
30f8555544
Some comments giving some idea how to use these things.
2012-05-24 15:05:39 -07:00
Niko Matsakis
ccd8d5573e
remove dead assignments
2012-05-24 13:35:57 -07:00
Niko Matsakis
6ca6a3b80b
rewrite arc to use region & expressions (also making it pass borrowck)
2012-05-24 05:19:44 -07:00
Niko Matsakis
58988c3565
changes to get std passing borrowck
2012-05-23 17:25:56 -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
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
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
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
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
Eric Holk
24431520bf
Removing par.rs, since it's not usable now anyway.
2012-05-22 15:31:39 -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
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
Niko Matsakis
83ee4ac5ea
impl-ify map
2012-05-22 10:02:34 -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
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
1ad5f7d2c1
make list based on boxes
2012-05-21 06:18:12 -07:00
Erick Tryzelaar
24cfe29a8a
std: Fix a typo
2012-05-19 10:08:44 -07:00
Erick Tryzelaar
e7ca3e4db0
expose tzset
2012-05-19 10:08:43 -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
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
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
Eric Holk
3c48759a56
Added a method to convert sets to vectors.
2012-05-17 12:00:50 -07:00
Lindsey Kuper
b8880e3254
Remove be
keyword.
...
Closes #2227 .
2012-05-15 10:41:14 -07:00
Tim Chevalier
2830bc3d31
Comment only: Annotate FIXMEs in std::time
2012-05-03 17:55:23 -07:00
Tim Chevalier
82d4fe3967
Write unicode::icu::UCHAR_INVALID_CODE as -1, removing a FIXME
2012-05-03 17:45:06 -07:00
Tim Chevalier
97c0b3848d
Comments only: annotate more FIXMEs in libstd
2012-05-03 17:45:06 -07:00
Tim Chevalier
ca3a9f83f4
Annotate more FIXMES in libstd (comments only)
2012-05-03 15:36:47 -07:00
Tim Chevalier
f029e1f486
Annotate FIXMEs in std::bitv, and remove a FIXME
...
Changed a while loop into a for loop in std::bitv::equal. Yay!
2012-05-03 15:26:22 -07:00
Brian Anderson
8d9f67003a
std: Do less work in the timer stress tests
2012-05-02 12:03:21 -07:00
Brian Anderson
36f7ace839
Merge pull request #2322 from bkircher/fix-getopts-docs
...
Fix getopts docs
2012-05-01 10:30:39 -07:00
Benjamin Kircher
1a19309d91
std: Fix example in getopts module docs
...
Issue #1833 .
2012-05-01 04:55:19 +02:00
Benjamin Kircher
22254c3b48
std: Fix typo in getopts doc attribute
2012-05-01 04:12:17 +02:00
Brian Anderson
46cc11ea88
core: Serialize all access to the environment using a weak global task
2012-04-30 17:34:29 -07:00
Brian Anderson
c01d05f18d
std: Add 2 timer stress tests
2012-04-28 14:13:36 -07:00
Jeff Olson
caab57586a
rt/std: whitespace cleanup + work on hl/global_loop docs
2012-04-27 22:19:30 -07:00
Jeff Olson
92e88e4e2c
std: another stab at a race-free global loop implementation
...
seems to hold up pretty well.
uv::hl API is affected.. had to do work on tests and std::timer code that
leverages the global loop/high_level_loop API.
see test_stress_gl_uv_global_loop_high_level_global_timer for a stress
example.. it takes a while to run, but it exits cleanly (something I could
never accomplish with earlier iterations of the global loop)
2012-04-27 22:19:30 -07:00
Jeff Olson
474e7e5e0d
std: get rid of some un-needed rustrt native fns for the global loop
2012-04-27 22:19:30 -07:00
Jeff Olson
fbaba0f404
std: add ll::loop_refcount binding for uv_loop_refcount
2012-04-27 22:19:30 -07:00
Brian Anderson
7eec6eb2bb
std: Add FIXME about time tests
2012-04-26 13:54:01 -07:00
Ted Horst
340dbcfdc8
temporary hack to make testing std::time reliable
2012-04-26 13:52:29 -07:00
Graydon Hoare
753b683939
More slice use in vec, io, str, ebml, metadata encoder and decoder.
2012-04-25 17:19:36 -07:00
Marijn Haverbeke
9f99c3263b
Rewrite exhaustiveness checker
...
Issue #2111
2012-04-25 09:15:17 +02:00
Marijn Haverbeke
9053f54498
Move map iface over to more for
-friendly iteration methods
2012-04-23 15:18:19 +02:00
Brian Anderson
bef5cd8e45
std: Export sort::le
2012-04-21 13:45:20 -07:00
Jeff Olson
f855682bed
std: ignore tests that use high_level_loop
...
until race issue with (most likely) refcount scheme is sorted out
2012-04-20 16:46:50 -07:00
Jeff Olson
707391edbc
std: add timer::recv_timeout() and whitespace cleanup
2012-04-20 15:23:23 -07:00
Jeff Olson
7ac8c3081c
std: add std::timer and timer::delayed_send and timer::sleep
...
.. leveraging std::uv, we have:
timer::delayed_send - send a value over a provided channel after the
timeout has passed
timer::sleep - block the current task for the specified period
both of these fns (and everything that goes in timer.rs) leverage the
uv_timer_* API
2012-04-20 15:23:23 -07:00
Jeff Olson
a1c43cc7c9
std: dump old std::uv API.. move remaining tests into uv::ll
2012-04-20 15:23:23 -07:00
Jeff Olson
791ea3466d
std::uv : cleanup and an isolated test for hand-rolled high_level_loops
2012-04-20 15:23:23 -07:00
Jeff Olson
e02057c5a5
std: fail if exiting hl_loop has unref_handles at weaken_task exit
2012-04-20 15:23:23 -07:00
Jeff Olson
a9db0c9efe
whitespace cleanup
2012-04-20 15:23:23 -07:00
Jeff Olson
a045e63639
std: get_monitor_task_gl() is global_loop::get() default
2012-04-20 15:23:23 -07:00
Jeff Olson
e15f1d5cad
std: refactor global_loop::get.. make it reusable
2012-04-20 15:23:23 -07:00
Jeff Olson
afb35f752f
fix uv_timer_t size in 32bit linux and windows
...
.. fixes issue, in previous commit, with global loop test hanging on
32bit linux (this was because the struct was too small, so (presumably),
the data member was garbled.. yippy)
2012-04-20 15:23:23 -07:00
Jeff Olson
83ae83c3b3
uv::hl::get_global_loop() -> uv::global_loop::get()
...
- moved global loop tests, as well.. will add tests in uv_hl that encompass
rolling your own high_level_loop via uv::hl::run_high_level_loop()
- also whitespace cleanups and misc warning cleanup..
- doesn't work on 32bit linux
2012-04-20 15:23:22 -07:00
Jeff Olson
253fad7788
replace impl of globa_async_handle with one using atomic compare-and-swap
2012-04-20 15:23:22 -07:00
Jeff Olson
728f92604a
fix a race in global loop test; unref_handle now takes a close_cb
2012-04-20 15:23:22 -07:00
Jeff Olson
9a5d1974dc
don't use ::malloc for initializing the global_async_handle in rust_kernel
2012-04-20 15:23:22 -07:00
Jeff Olson
f21d25b54c
make weak task that runs libuv loop unsupervised
2012-04-20 15:23:22 -07:00
Jeff Olson
e0f110aa12
clean and trying the global loop test as two separate loop lifetimes..
...
.. seeing an occasional valgrind/barf spew on some invalid read/writes..
need to investigate further.. i think its related to my poor citizen
conduct, re: pointers stashed in rust_kernel..
2012-04-20 15:23:22 -07:00
Jeff Olson
31ba223c26
end-to-end impl of global loop w/ high-level ref counting.. needs work
...
- starting/stoping the loop based on client work is functioning, correctly
- the issue appears to be that, when the process is about to exit, the
signal to let weak tasks know that they need to exit isn't getting fired.
2012-04-20 15:23:22 -07:00
Jeff Olson
e6f6a8ced4
tweaking rust getter/setters for libuv data to use generics
2012-04-20 15:23:22 -07:00
Jeff Olson
12f2f4c15c
rt: whitespace cleanup for existing libuv integration
2012-04-20 15:23:22 -07:00
Jeff Olson
e604c15df1
bindings to get/set data field on uv_loop_t* and debug log cleanup
2012-04-20 15:23:21 -07:00
Jeff Olson
bf99a3aa93
adding low-level uv_timer_* stuff to libuv bindings
2012-04-20 15:23:21 -07:00
Jeff Olson
3d004c6df8
making brson's req. cleanups in #2134 plus change printf to LOG in c++
2012-04-20 15:23:21 -07:00
Graydon Hoare
956bc773c6
Fix [] on str to exclude the trailing null.
2012-04-18 17:50:58 -07:00
Marijn Haverbeke
a65af017ca
Remove tri.rs and four.rs
...
Closes #1892
2012-04-18 17:21:39 +02:00
Haitao Li
39c5e06526
Revert "libstd: Handle test results in serial"
...
This reverts commit 828d0677c4
.
2012-04-13 18:34:45 +08:00
Haitao Li
2955ecd13c
Revert "libstd: Colorify test results when run in parallel"
...
This reverts commit 7b3cb05311
.
2012-04-13 18:34:41 +08:00
Haitao Li
7b3cb05311
libstd: Colorify test results when run in parallel
...
Closes #782
2012-04-12 17:33:07 +08:00
Haitao Li
828d0677c4
libstd: Handle test results in serial
...
Issue #782
2012-04-12 17:33:01 +08:00
Jeff Olson
52e084b92a
ignore tcp server/client test on linux 32bit, pending #2064
...
also println->log(debug,) and assorted cleanup ahead of merge to master
2012-04-06 15:35:50 -07:00
Jeff Olson
82f8d8cb2a
removing some unneeded native fn mappingsin uv.rs and misc clean
...
.. 32bit linux issues persist.
2012-04-06 15:35:50 -07:00
Jeff Olson
6b349f3d11
experimenting with a different uv_buf_init impl to placate 32bit linux
2012-04-06 15:35:50 -07:00
Jeff Olson
6189a0814b
whitespace cleanup in uv_*
2012-04-06 15:35:50 -07:00
Jeff Olson
ed3c8610c3
adding 32bit-unix struct struct size differences
2012-04-06 15:35:50 -07:00
Jeff Olson
79269ea064
fixing some libuv stuff that leaked through the rebase
2012-04-06 15:35:50 -07:00
Jeff Olson
b39a43cd5c
adding uv_hl module and some doc work
2012-04-06 15:35:50 -07:00
Jeff Olson
7c0fed469f
rename uv::direct:: to uv::ll:: and put into its own crate
2012-04-06 15:35:50 -07:00
Jeff Olson
f18991d900
getting rid of ip4 port byval test... 2064 workarounds in place, for now
2012-04-06 15:35:50 -07:00
Jeff Olson
b712e5e132
line length fixes for make check
2012-04-06 15:35:49 -07:00
Jeff Olson
55143bb14c
docs tweak for uv module
2012-04-06 15:35:49 -07:00
Jeff Olson
26addfdd81
fix size of uv_async_t on windows. is this the cause of the libuv segfault?
2012-04-06 15:35:49 -07:00
Jeff Olson
2b606ae5f3
add libuv error msg helpers.. flushing out windows tcp issue.
2012-04-06 15:35:49 -07:00
Jeff Olson
2c26cf7f96
add low-level uv_async bindings for use in tcp test
2012-04-06 15:35:49 -07:00
Jeff Olson
7176321685
refactored the tcp request and server tests into 1 test using loopback
...
..plus whitespace cleanup for make check
2012-04-06 15:35:49 -07:00
Jeff Olson
922ed6f947
hello world test for a tcp server in libuv
...
.. im now going to refactor the tcp request and server tests to utilize
each other, so no more external network ugliness
2012-04-06 15:35:49 -07:00
Jeff Olson
85e26eff6a
fixing libuv stuff in win32 (see #2064 ) .. pass sockaddr_in by-ref, for now
2012-04-06 15:35:49 -07:00
Jeff Olson
ab1efb900e
fixed unix uv struct err from prev commit, also starting uv docs
2012-04-06 15:35:49 -07:00
Jeff Olson
fcc973b5ac
massaging out struct-size differences between unix and win32
2012-04-06 15:35:49 -07:00
Jeff Olson
1eff88f434
win32 tweaks
2012-04-06 15:35:48 -07:00
Jeff Olson
9ad67e8c14
test_uv_tcp_request() fully working on linux
...
.. up next: windows!
.. impl'd uv::direct::read_stop() and uv::direct::close() to wrap things up
.. demonstrated sending data out of the uv_read_cb via a channel (which
we block on to recv all of it, complete w/ EOF notification) that is
read from after the loop exits.
.. helpers to read the guts of a uv_buf_t
.. an idea im kicking around: starting to pile up all of these hideous
data accessor functions in uv::direct .. I might make impl/iface pairs
for the various uv_* types that I'm using, in order to encapsulate those
data access functions and, perhaps, make the access look a little cleaner
(it still won't be straight field access, but it'll be a lot better)
.. formatting cleanup to satisfy make check
2012-04-06 15:35:48 -07:00
Jeff Olson
877747d0ac
wired up uv_read_start and some helper funcs around uv_alloc_cb tasks
2012-04-06 15:35:48 -07:00
Jeff Olson
e0193dac6e
uv_buf_t's for uv_write() passed by-val .. no more mallocs or ptr cop-outs
...
so we're now adhering the libuv C api and passing structs by-val where
it is expected, instead of pulling pointer trickery (or worse having to
malloc structs in c++ to be passed back to rust and then into C again)
2012-04-06 15:35:48 -07:00
Jeff Olson
e5ccc76bc4
fixed by-val from rust->c, use ++ sigil in native fn sig <-- NEVAR FORGET
...
have to use ++ sigil in rust-side extern fn decls in order to have rust
actually copy the struct, by value, onto the C stack. gotcha, indeed.
also adding a helper method to verify/remind how to pass a struct by-val
into C... check out the rust fn sig for rust_uv_ip4_test_verify_port_val()
for more infos
2012-04-06 15:35:48 -07:00
Jeff Olson
43c82bdb45
fixed passing in uv_buf_t ptr array in uv_write.. return status 0
...
ways to go, still..
2012-04-06 15:35:48 -07:00
Jeff Olson
f179029296
uv_write works, buffer passing still broke, can get sockaddr_in by val
...
.. but passing sockaddr_in by val back to C is broken, still passing by
ptr
.. the uv_write_cb is processed, but we have a status -1.. there is
also valgrind spew.. so buf passing is broken, still.
2012-04-06 15:35:48 -07:00
Jeff Olson
05e2c131c4
changing ctypes:: to libc:: and impl of uv::direct::write()
2012-04-06 15:35:48 -07:00
Jeff Olson
af08aba573
some more stuff for libuv dealing w/ 1402.. should go away soon
2012-04-06 15:35:48 -07:00
Jeff Olson
3817ba7578
adding uv::direct and beginning to work out tcp request case
...
lots of changes, here.. should've commited sooner.
- added uv::direct module that contains rust fns that map, neatly, to
the libuv c library as much as possible. they operate on ptrs to libuv
structs mapped in rust, as much as possible (there are some notable
exceptions). these uv::direct fns should only take inputs from rust and,
as neccesary, translate them into C-friendly types and then pass to the
C functions. We want to them to return ints, as the libuv functions do,
so we can start tracking status.
- the notable exceptions for structs above is due to ref gh-1402, which
prevents us from passing structs, by value, across the Rust<->C barrier
(they turn to garbage, pretty much). So in the cases where we get back
by-val structs from C (uv_buf_init(), uv_ip4_addr(), uv_err_t in callbacks)
, we're going to use *ctypes::void (or just errnum ints for uv_err_t) until
gh-1402 is resolved.
- using crust functions, in these uv::direct fns, for callbacks from libuv,
will eschew uv_err_t, if possible, in favor a struct int.. if at all
possible (probably isn't.. hm.. i know libuv wants to eventually move to
replace uv_err_t with an int, as well.. so hm).
- started flushing out a big, gnarly test case to exercise the tcp request
side of the uv::direct functions. I'm at the point where, after the
connection is established, we write to the stream... when the writing is
done, we will read from it, then tear the whole thing down.
overall, it turns out that doing "close to the metal" interaction with
c libraries is painful (and more chatty) when orchestrated from rust. My
understanding is that not much, at all, is written in this fashion in the
existant core/std codebase.. malloc'ing in C has been preferred, from what
I've gathered. So we're treading new ground, here!
2012-04-06 15:35:48 -07:00
Marijn Haverbeke
c902eafa14
Convert old-style for loops to new-style
...
Most could use the each method, but because of the hack used to
disambiguate old- and new-style loops, some had to use vec::each.
(This hack will go away soon.)
Issue #1619
2012-04-06 20:38:23 +02:00
Brian Anderson
d13c0c77a2
Explicitly use version 0.2 of crates
2012-04-05 20:29:42 -07:00
Tim Chevalier
98b07ddc82
Rename task::task_builder to task::builder
...
Closes #2120 .
2012-04-05 14:09:32 -07:00
Erick Tryzelaar
552677e598
std: time.rs should pass all args by "&&" to rustrt.
2012-04-05 12:23:37 -07:00
Grahame Bowland
5cc050b265
Logfile output from tests; summarise in make check
...
Add an optional --logfile argument to std::test::test_main and to
compiletest.
Use this features and the new 'check-summary.py' script to
summarise all the tests performed by the 'check' target. This is
a short term fix for #2075 .
2012-04-04 11:52:27 -07:00
Erick Tryzelaar
159d89604e
std: add a pure rust strptime parser.
2012-04-03 22:43:10 -07:00
Erick Tryzelaar
ff9305cd99
std: add a pure rust strftime formatter.
2012-04-03 22:43:10 -07:00
Erick Tryzelaar
4a4889859e
std: add localtime/gmtime support.
2012-04-03 22:43:10 -07:00
Erick Tryzelaar
4871f11439
std: change timeval to ns resolution timespec
...
This lets us use the more precise clock_gettime on posix
machines.
2012-04-03 22:43:08 -07:00
Erick Tryzelaar
7aae7320db
std: change time::timeval to be {sec: i64, usec: i32}.
...
It's possible to have negative times if expressing time before 1970, so
we should use signed types. Other platforms can return times at a higher
resolution, so we should use 64 bits.
2012-04-03 22:43:08 -07:00
Patrick Walton
c2f28e231f
stdlib: Remove the now-obsolete vec::alloc_len in favor of vec::capacity
2012-03-29 08:57:34 -07:00
Patrick Walton
166d14e42d
stdlib: Actually increase arena chunk sizes by powers of two
2012-03-29 08:41:26 -07:00
Patrick Walton
b210c7ad97
stdlib: Allow the fast path of arena allocation to be CCI'd. 15% improvement on binary-trees.
2012-03-29 08:41:26 -07:00
Patrick Walton
1d25594657
rustc: Add a vec::alloc_len and fix arena logic to use it
2012-03-29 08:41:26 -07:00
Patrick Walton
5ce3d35f41
rustc: Don't zero out arena chunks with vec::from_elem; that's slow because it calls the glue.
2012-03-29 08:41:25 -07:00
Patrick Walton
6f0cbf4cd4
stdlib: Fix a pointer mistake in arenas
2012-03-29 08:41:25 -07:00
Graydon Hoare
b37d7e26fe
Update crate URLs to point to interesting things.
2012-03-28 13:52:47 -07:00
Marijn Haverbeke
b5a4fa9456
Move some code over to iterator-for to see how it performs.
2012-03-27 15:46:33 +02:00
Marijn Haverbeke
eec6383771
Add vec::each, vec::eachi, and list::each
...
For use with the new for construct.
Issue #1619
2012-03-27 12:53:19 +02:00
Graydon Hoare
6e6798c4e1
Bulk-edit mutable -> mut.
2012-03-26 18:35:18 -07:00
Marijn Haverbeke
87e097a853
Disallow ret inside of block functions
...
Also adds proper checking for cont/break being inside a loop.
Closes #1854
Issue #1619
2012-03-26 12:45:47 +02:00
Niko Matsakis
042c532a08
Implement new inference algorithm.
2012-03-23 21:47:28 -07:00
Marijn Haverbeke
3e7a514521
Fix inconsistent-iteration hazard in map.rs
...
Closes #2049
2012-03-23 13:30:29 +01:00
Brian Anderson
f3fe85dad7
Bump version numbers to 0.2
2012-03-22 15:25:02 -07:00
Niko Matsakis
dc07280b08
make --enforce-mut-vars always on, add mut annotations to remaining files
2012-03-22 09:58:19 -07:00
Niko Matsakis
cce2751461
Adjust arena definition to be compatible with placement new
2012-03-21 05:46:31 -07:00
Patrick Walton
ba39e277e2
stdlib: Implement arenas
2012-03-20 19:08:17 -07:00
Brian Anderson
b181ea415e
core: Rename unsafe::leak to unsafe::forget. Closes #2031
2012-03-20 15:20:37 -07:00
Marijn Haverbeke
cec1a9b859
Properly check kinds when instantiating types
...
Closes #2011
2012-03-19 10:45:29 +01:00
Brian Anderson
47d468f08c
core: Store reexporting result and either. Closes #1997
2012-03-16 15:14:37 -07:00
Erick Tryzelaar
67a1c35264
std: Add a a hashmap_from_vecs function
2012-03-16 17:05:29 +01:00
Marijn Haverbeke
35fc4a4291
Check kind bounds when calling methods
...
Closes #1915
2012-03-16 17:05:29 +01:00
Brian Anderson
7e0fa3f852
std: Swap the argument order of list::foldl to match vec::foldl
2012-03-15 14:15:49 -07:00
Brian Anderson
5e8004d493
std: Follow conventions in bitv
2012-03-15 14:08:47 -07:00
Brian Anderson
3864d6d845
std: Rename the hashmap constructors to conform to new standards
...
Instead of using the new_ prefix just name them after their type
2012-03-14 18:19:08 -07:00
Niko Matsakis
a3d2882ffd
fixup auto_serialize's treatment of nullary variants
2012-03-14 21:05:06 -04:00
Niko Matsakis
e702d20191
allow immut vars to be moved. enforce mut vars after stage0 in std.
2012-03-14 20:46:36 -04:00
Niko Matsakis
6b35875dca
annotate libstd and start enforcing mutability
2012-03-14 20:46:36 -04:00
Niko Matsakis
1600be2c3b
fix auto_serialize for enums with type parameters
2012-03-14 17:19:33 -04:00
Niko Matsakis
ffa187db25
adjust auto_serialize to generate fns named serialize_T()
...
We used to generate a module T with a serialize() and deserialize() fn,
but this was suboptimal for a number of reasons:
- it required moving serialization into core so that uint etc worked
- it was harder to override the serialization behavior locally
(this is now trivial)
2012-03-14 11:49:28 -04:00
Niko Matsakis
b30cb8e43a
implement deserialization, rename mk_mem_buffer() to mem_buffer()
2012-03-13 21:30:07 -04:00
Niko Matsakis
d91742294f
first (functional) version of the auto_serialize syntax ext
2012-03-13 21:30:07 -04:00
Brian Anderson
b968c8e6cd
Name types after their modules instead of 't'
2012-03-13 15:14:17 -07:00
Brian Anderson
cd72b1f848
Overhaul constructor naming in libs
2012-03-13 11:07:22 -07:00
Graydon Hoare
6f5853f5a1
Libc/os/run/rand/io reorganization. Close #1373 . Close #1638 .
...
- Move io, run and rand to core.
- Remove incorrect ctypes module (use libc).
- Remove os-specific modules for os and fs.
- Split fs between core::path and core::os.
2012-03-12 20:08:29 -07:00
Patrick Walton
4571175568
stdlib: Make list::find do what the docs say it does.
...
Talked on #rust about this change, got approval from graydon and brson. Will bring up tomorrow at meeting to verify.
2012-03-12 18:28:16 -07:00
Brian Anderson
d60813146d
std: Sort test failures. Closes #1929
2012-03-12 17:31:17 -07:00
Tim Chevalier
40a5c56345
Fix Windows build breakage
2012-03-10 20:44:10 -08:00
Tim Chevalier
35400e13ad
Use loop instead of while(true) in libraries and compiler itself
...
And remove spurious fails/unreachable() calls.
2012-03-10 20:34:17 -08:00
Brian Anderson
91e5a1c8b3
core: Remove the nearly empty math module
...
This mod only had two functions, all of whose users have been changed
to use the uint module.
2012-03-10 17:43:19 -08:00
Brian Anderson
95521c4084
std: Convert to rustdoc
2012-03-09 22:56:53 -08:00
Tim Chevalier
321fd80219
Add an infinite loop construct
...
Add a loop {} construct for infinite loops, and use it in test
cases. See #1906 for details.
2012-03-09 16:40:58 -08:00
Tim Chevalier
0c5fdc8745
Rename last to last_opt, last_unsafe to last
...
As per discussion on IRC. I am about to file an RFC for further
discussion about the more general issue of whether to enforce
invariants through types, typestate, or dynamic checks, but for now,
removing the misleading name "last_unsafe".
2012-03-08 15:25:56 -08:00
Tim Chevalier
d048a00cf3
Change util::unreachable to core::unreachable
...
Closes #1931
2012-03-08 14:30:01 -08:00
Tim Chevalier
ebc1d3e704
Rename last_total to last_unsafe
...
See Issue 1943 for any discussion (reopen it if necessary).
Closes #1943
2012-03-08 13:07:31 -08:00
Patrick Walton
c9375fed8d
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
...
This required changing almost all users of hashmaps to import the hashmap interface first.
The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07 17:35:13 -08:00
Patrick Walton
c245d9e980
Revert "stdlib: Stop incurring vtable dispatch costs when hashmaps are used"
...
This reverts commit f0250a23d3
.
2012-03-07 16:56:45 -08:00
Patrick Walton
f0250a23d3
stdlib: Stop incurring vtable dispatch costs when hashmaps are used
...
This required changing almost all users of hashmaps to import the hashmap interface first.
The `size` member in the hashmap structure was renamed to `count` to work around a name conflict.
2012-03-07 16:51:31 -08:00
Brian Anderson
d2135597e9
std: Use util::unreachable
2012-03-05 18:23:01 -08:00
Graydon Hoare
6c87c34277
Remove dead code from rt (debug_obj, rust_obj, rust_closure, rust_box_obj, rust_vtable)
2012-03-05 15:50:11 -08:00
Erick Tryzelaar
faccd4ac92
std: export json::error.
2012-03-05 08:47:21 -08:00
Erick Tryzelaar
6b0c4822c1
std: add a fs::remove_file function.
2012-03-02 19:15:36 -08:00
Erick Tryzelaar
f630ebdb6a
comp/std: rename io::string_reader to io::str_reader.
2012-03-02 19:15:35 -08:00
Erick Tryzelaar
1404a864a4
std: add a io::with_str_reader fn to remove a str copy
2012-03-02 19:15:34 -08:00
Brian Anderson
3ed6f6520f
core: Remove _mut functions from vec
...
Instead, use vec::to_mut/from_mut to transform vectors in place as
needed.
2012-03-02 15:49:49 -08:00
Brian Anderson
77fc4e7ee7
std: vec::to_ptr -> vec::unsafe::to_ptr
2012-03-02 12:29:40 -08:00
Brian Anderson
1471b1f3ff
std: DeCamelCase fs::splitDirnameBasename
2012-02-29 23:45:51 -08:00
Tycho Sci
ecf87c3180
libstd: Skip trailing whitespaces after JSON value
2012-02-29 17:47:17 +09:00
Tycho Sci
0465d5217d
libstd: Skip trailing whitespaces after outer rparen
...
This makes "{ \"foo\": 1 }\n" and "[ 1 ]\n" valid json string
2012-02-29 16:24:28 +09:00
Erick Tryzelaar
012dec5e57
std: rewrite json.rs to fix bugs and use readers/writers
...
Our json implementation did not conform to the spec, and
was missing support for escpaed characters and exponental
numbers. This fixes it, and adds support for reading/writing
json directly from/to a stream.
There are two things left unimplemented. We could use a
"to_json" iface/impl, but that really needs traits to cut
down on code duplication. The other is it wouldn't be that
not that hard to turn this implementation into a event driven
parser like YAJL, but I ran into some type-inference bugs,
so I cut that out. It'd be nice to revisit this in the future
though.
2012-02-28 18:00:50 -08:00
Erick Tryzelaar
6865df2611
core/std: whitespace fixes.
2012-02-28 18:00:50 -08:00
Erick Tryzelaar
ec51d8fd03
std: Add helpers to simplify making str io::writers
2012-02-28 18:00:50 -08:00
Brian Anderson
b9089b5335
std: Ignore uv tests on FreeBSD
2012-02-28 17:56:15 -08:00
Jeff Olson
9831ee3e67
changing rust loop to 1 thread
2012-02-28 17:56:15 -08:00
Jeff Olson
b4c88cdcec
add uv::loop_delete()
...
because of the last change, the loop ptr is no longer cleaned up
when the loop exits. This api call addresses that. Sadly, the loop
ptr is not "reusable" across multiple calls to uv::run().
2012-02-28 17:56:15 -08:00
Jeff Olson
0b3a06ab2c
correcting for libuv behavior that differs between linux & windows
...
net complexity increase :/
2012-02-28 17:56:15 -08:00
Jeff Olson
bb5960aa57
moving new uv stuff into uv.rs and rust_uv.cpp
...
- removing the remains of uvtmp.rs and rust_uvtmp.rs
- removing the displaced, low-level libuv bindings
in uv.rs and rust_uv.cpp
2012-02-28 17:56:15 -08:00
Jeff Olson
828595151c
trailing whitespace fixes
2012-02-28 17:56:15 -08:00
Jeff Olson
1d3e08d8c6
finishing up simple uv_timer impl
...
as it stands, basic async nad timer support is added
2012-02-28 17:56:15 -08:00
Jeff Olson
b68eb507da
cleaning up uv_async stuff and stubbing uv_timer
2012-02-28 17:56:14 -08:00
Jeff Olson
974c23cbeb
removed hello world and added uv_async_*
2012-02-28 17:56:14 -08:00
Jeff Olson
ffad8d7f0c
everything is laid out and working through a basic hw
...
the core impl is there, with a async handle in place
to take incoming operations from user code. No actual
uv handle/operations are implemented yet, though.
2012-02-28 17:56:14 -08:00
Niko Matsakis
5c1338a18e
add ability to run multi-crate tests, run tests with --inline
2012-02-28 06:31:29 -08:00
Niko Matsakis
8cffc6f84c
add debugging mode which emits more verbose info
2012-02-28 06:31:28 -08:00
Brian Anderson
61691c2428
std: Make merge_sort faster
2012-02-27 18:32:45 -08:00
Niko Matsakis
f3ca50c9ca
Encode/decode AST into metadata, re-instantiate inlined items
2012-02-24 20:46:27 -08:00
Marijn Haverbeke
780f8277f4
Finish cleanup of core::str
...
Closes #1849
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
d802c1fbd2
Various cleanups and optimizations in core::str
2012-02-23 17:00:19 +01:00
Kevin Cantu
c3318f29fe
(core::str) rename substr_len_bytes to substr_len, and delete unused byte_index[_from]
2012-02-23 17:00:19 +01:00
Kevin Cantu
7782f5d692
(core::str) remove len_bytes alias
2012-02-23 17:00:19 +01:00
Kevin Cantu
1b957c0942
(core::str) replace uses of unsafe::slice_bytes; replace find[_from]_bytes with find[_from]
2012-02-23 17:00:19 +01:00
Kevin Cantu
6ea3d7935e
(core::str) replace byte_index[_from] with index[_from]
2012-02-23 17:00:19 +01:00
Kevin Cantu
280633a728
(core::str) do some replacements
2012-02-23 17:00:19 +01:00
Kevin Cantu
454b53a7c2
(core::char) rename slice -> slice_chars
2012-02-23 17:00:19 +01:00
Kevin Cantu
1cd5a0945a
(core::str) rename rindex -> rindex_chars
2012-02-23 17:00:19 +01:00
Kevin Cantu
98447f5236
(core::str) mostly rename len -> len_chars
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
ffd50b9cdf
Make the various from_str functions return options
...
So that they can be used with user input without causing task
failures.
Closes #1335
2012-02-22 13:18:15 +01:00
Marijn Haverbeke
ad03761a97
Remove preconditions from libraries
...
Closes #1805
2012-02-22 11:47:47 +01:00
Brian Anderson
4220dcf1e9
core: New task API
2012-02-20 18:58:04 -08:00
Brian Anderson
010f2abc70
core: When running tests sequentially, print the test name before running it
...
Useful for debugging hanging tests
2012-02-18 16:30:09 -08:00
Chris Peterson
3d202d7eae
rt: rename nano_time() builtin to match time::precise_time_ns()
2012-02-18 01:39:42 -08:00
Chris Peterson
b73bc30858
std: Add tests for time module
...
Tested on OSX and Windows.
2012-02-18 01:32:52 -08:00
Chris Peterson
105b5f0be8
std: Expand doc comments for time module
2012-02-18 01:30:12 -08:00
Chris Peterson
94fe5011e2
std: Add some env() and getenv() tests
2012-02-17 08:47:45 +01:00
Chris Peterson
aec76d2515
std: Fix env() assert when an environment variable's value contains a '=' char
2012-02-17 08:47:44 +01:00
Marijn Haverbeke
67cc89f38d
Rewrite exhaustiveness checker
...
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
2012-02-15 15:47:42 +01:00
Marijn Haverbeke
4b63826050
Replace some explicit fails with 'alt check' invocations
2012-02-15 15:47:42 +01:00
Brian Anderson
acabd821d2
Merge pull request #1831 from killerswan/str_fixes
...
(core::str) changes to find / find_bytes
2012-02-14 11:22:31 -08:00
Niko Matsakis
3a2f1e1876
add serialization library; convert ebml lib to use u64 internally
2012-02-13 06:50:58 -08:00
Kevin Cantu
c81867474a
(core::str) add find_bytes and export it...
2012-02-13 01:56:58 -08:00
Kevin Cantu
2ba44e24d5
(core::str) rename byte_len_range -> substr_len_bytes and
...
rename char_len_range -> substr_len_chars
2012-02-12 15:30:20 -08:00
Kevin Cantu
2b4f5136a5
(core::str) rename byte_len -> len_bytes and rename char_len -> len
2012-02-12 15:30:20 -08:00
Kevin Cantu
944f5a6598
(core::str) move push_byte, push_bytes, pop_byte, and shift_byte into str::unsafe
2012-02-12 15:30:20 -08:00
Kevin Cantu
e0af23b664
using str::rindex...
2012-02-11 16:39:39 -08:00
Kevin Cantu
27161f4415
using str::index...
2012-02-11 16:39:39 -08:00
Kevin Cantu
a131b430a0
core::str rename [r]index -> [r]index_bytes
2012-02-11 16:39:39 -08:00
Niko Matsakis
e712a47a81
create serialization lib and update serializer to use it
2012-02-10 20:48:29 -08:00
Niko Matsakis
fdddf8f9e1
put serializer into the build and encode full item paths
2012-02-10 20:48:28 -08:00
Niko Matsakis
5d57fa3403
update ebml interface
2012-02-10 20:48:28 -08:00
Marijn Haverbeke
52a741754c
Remove some pointless imports
2012-02-09 15:30:27 +01:00
Marijn Haverbeke
50fb4c30ed
Increase precedence of as operator
...
Closes #1717
2012-02-09 11:58:08 +01:00
Brian Anderson
6cf40bd0c4
std: Use correct split function in generic_os::env
2012-02-07 20:20:58 -08:00
Graydon Hoare
93450abb4b
Make process-spawning take environments and working directories, remove procsrv task from compiletest.
2012-02-07 19:57:03 -08:00
Kevin Cantu
2b0396c34a
core: make str::substr use char positions (and replace other uses)
2012-02-07 16:25:35 -08:00
Kevin Cantu
a3f5626ad1
String split renaming:
...
* Renamed str::split -> str::split_byte
* Renamed str::splitn -> str::splitn_byte
* Renamed str::split_func -> str::split
* Renamed str::split_char -> str::split_char
* Renamed str::split_chars_iter -> str::split_char_iter
* Added u8::is_ascii
* Fixed the behavior of str::split_str, so that it matches split_chars
and split (i.e. ["", "XXX", "YYY", ""] == split_str(".XXX.YYY.", "."))
* Fixed str::split_byte and str::splitn_byte so that they handle
splitting UTF-8 strings on a given UTF-8/ASCII byte and also handle ""
as the others do
2012-02-07 16:25:35 -08:00
Brian Anderson
fdf50e84b8
std: Use ctypes::c_int in path_is_dir
2012-02-05 16:21:52 -08:00
Brian Anderson
91b6dc5c8e
Merge remote-tracking branch 'erickt/master'
...
Conflicts:
src/libcore/vec.rs
src/libstd/getopts.rs
2012-02-05 15:15:21 -08:00
Tom Lee
31b0d1b4bd
core: rename str::lteq to str::le
2012-02-03 14:09:44 +01:00
Tom Lee
a02f332602
std: rename sort::lteq to sort::le.
2012-02-03 12:02:57 +01:00
Graydon Hoare
c485301d21
Update libuv.
2012-02-02 17:39:47 -08:00
Graydon Hoare
6784b18303
Win32 warning police.
2012-02-02 11:35:07 -08:00
Kevin Cantu
ae0d49aa06
Rename str::char_slice -> str::slice
2012-02-01 21:56:53 -08:00
Kevin Cantu
8f367ebfeb
Rename (again) str::unsafe::slice -> str::unsafe::slice_bytes and
...
str::unsafe::safe_slice -> str::unsafe::slice_bytes_safe_range
2012-02-01 21:56:53 -08:00
Kevin Cantu
6156bc56cb
Propagating unsafe::slice 2
2012-02-01 21:56:53 -08:00
Kevin Cantu
47c57a17dc
Propagating unsafe::slice 1
2012-02-01 21:56:53 -08:00
Marijn Haverbeke
856a544d0c
Remove native types from stdlib
2012-02-01 12:23:13 +01: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
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
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
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
Erick Tryzelaar
5b2c0a999f
std: Whitespace cleanup.
2012-01-28 09:18:35 -08:00
Erick Tryzelaar
259636a112
core: rename vec::position* functions
...
Almost all of the vec functions that predicates don't have a
corresponding function that takes a single element, so this
commit renames the common fn usecase to be the default.
2012-01-28 09:18:34 -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
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
Kevin Cantu
5847cf0367
(TEMPORARY) Break something by making io::mem_buffer_str UTF-8 safe
2012-01-25 21:53:37 -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
c7b23f9a86
Replacing str::unsafe_from_bytes with str::from_bytes (part 1)
2012-01-25 00:53:17 -08:00
Niko Matsakis
5e13d19cc0
s/block()/fn()/g
2012-01-23 19:06:33 -08:00
Brian Anderson
07f8555b3e
std: Add some hacks to use libuv
2012-01-22 20:06:58 -08:00
Niko Matsakis
42b97f317a
use u64 and not uint; otherwise shift results are undef. in 32 bit
...
Fixes #1605 .
2012-01-21 19:31:52 -08:00
Niko Matsakis
de2bb2806f
update to use u64; u32 has undefined results
2012-01-21 19:31:52 -08:00
Brian Anderson
52b1623089
std: Remove extfmt. Has been moved to core. Closes #1600
2012-01-21 13:51:54 -08:00
Graham Fawcett
fc2ae08b9c
issue #1352 : change param order on {std,core}::extfmt::str_init_elt to mirror vec::init_elt.
2012-01-21 13:33:16 -08:00
Graham Fawcett
7763b40c71
issue #1352 : change param order on vec::init_elt, putting block in final position.
...
To match the init_fn() and init_fn_mut() changes.
2012-01-21 13:33:16 -08:00
Graham Fawcett
35d12be2ce
fix #1352 : change param order on vec::init_fn (and vec::init_fn_mut), putting block in final position.
2012-01-21 13:31:12 -08:00
Graydon Hoare
7b1a8f0a91
Additional ; to , changes, disable "tag" and ";" in parser. Close #1430 . Close #1428 .
2012-01-19 19:29:21 -08:00
Patrick Walton
6222e98dda
lib: ';' to ',' in enums in more places
2012-01-19 19:08:49 -08:00
Patrick Walton
194d8e3bd5
lib: ";" to "," in enums
2012-01-19 18:04:24 -08:00
Brian Anderson
6d4884d983
libcore: Use 4x the number of scheduler threads for testing
...
An arbitrary number. I've done no measurements but it's intended to overcome
the effects of tasks randomly being scheduled to threads and no work stealing.
If scheduler threads == 1 then we just use a single test task.
2012-01-19 17:54:21 -08:00
Brian Anderson
928e55815c
libcore: Do less blocking in the test runner
2012-01-19 17:54:21 -08:00
Patrick Walton
c5a407b11b
stdlib: "tag" -> "enum"
2012-01-19 15:22:25 -08:00
Brian Anderson
48e916c8fa
libstd: Long lines
2012-01-19 13:44:07 -08:00
Brian Anderson
f15182fffc
Use fn~ to simplify the core::test interface
2012-01-19 13:37:01 -08:00
Tim Chevalier
5b028f527f
Remove support for the '.' after a nullary tag in a pattern
...
(Commit also includes lots of changes to remove '.'s that a git
merge messed up, or else it was monkeys.)
2012-01-19 01:04:59 -08:00
Tim Chevalier
04a2887f87
Remove '.' after nullary tags in patterns
...
Does what it says on the tin.
The next commit will remove support for this syntax.
2012-01-18 23:17:34 -08:00
Haitao Li
7b1724fb40
libstd: Revert an integer type casting
...
Otherwise, rustctest failed by a segv fault.
2012-01-19 02:24:22 +08:00
Haitao Li
04882d7c43
rustc: Use integer from ctypes consistently
2012-01-19 02:10:36 +08:00
Haitao Li
dde41869ce
Use ctypes in native function declarations
2012-01-19 02:10:36 +08:00
Brian Anderson
6e27b27cf8
libstd: Move std tests into libstd
2012-01-17 19:48:58 -08:00
Lenny222
b19fdcced2
libstd => libcore
2012-01-17 10:51:43 -08:00
Lenny222
106dcf7b92
spin-off rustdocs tuple code to libstd
2012-01-17 10:51:43 -08:00
Tim Chevalier
c3bc8fada8
Allow omission of the '.' after nullary tag patterns
...
This commit allows patterns like:
alt x { some(_) { ... } none { } }
without the '.' after none. The parser suspends judgment about
whether a bare ident is a tag or a new bound variable; instead,
the resolver disambiguates.
This means that any code after resolution that pattern-matches on
patterns needs to call pat_util::normalize_pat, which consults
an environment to do this disambiguation.
In addition, local variables are no longer allowed to shadow
tag names, so this required changing some code (e.g. renaming
variables named "mut", and renaming ast::sub to subtract).
The parser currently accepts patterns with and without the '.'.
Once the compiler and libraries are changed, it will no longer
accept the '.'.
2012-01-17 10:08:16 -08:00
Marijn Haverbeke
e046360e69
Add an std::md4 module
2012-01-17 12:02:04 +01:00
Brian Anderson
26551e5481
libstd: Remove util::void
2012-01-14 02:51:08 -08:00
Brian Anderson
a3f5c66484
libstd: Remove util::orb. Redundant with core::bool
2012-01-14 02:48:16 -08:00
Marijn Haverbeke
7150643588
Remove workaround for issue #1494
...
We have a snapshot that includes the fix.
2012-01-13 21:38:29 +01:00
Niko Matsakis
8685a1f7c4
distinguish "any closure" and "stack closure" (block)
2012-01-13 09:31:40 -08:00
Niko Matsakis
3f3bfeec27
make "native fn" the type for bare functions, remove fn exprs
2012-01-13 06:27:35 -08:00
Niko Matsakis
455f8b0d45
deprecate fn exprs and the fn() type, preferring fn@ and native fn
2012-01-13 06:27:34 -08:00
Brian Anderson
2c70b2fb7e
libstd: Remove a bogus link_name attribute
2012-01-11 20:01:55 -08:00
Brian Anderson
6e1f9ad1f1
rustc: Don't allow empty link_name when nolink attribute is present
...
Closes #1326
2012-01-11 19:45:18 -08:00
Marijn Haverbeke
4c9c1cd199
Fix dependency bug iface-did-of-impl resolving
...
By simply not resolving that def id until the typeck pass.
Closes #1494
2012-01-11 21:40:13 +01:00
Marijn Haverbeke
34d7f05292
Major clean-up of std::io
...
Use ifaces instead of objs, stop wrapping everything in two (or three)
layers of no-value-added indirection, and remove some of the more
pointless/outdated idioms from the code.
2012-01-11 21:00:11 +01:00
Marijn Haverbeke
807592e99f
Switch run_program over to ifaces
2012-01-11 20:33:44 +01:00
Marijn Haverbeke
4f76db43e6
Convert std::sha1 and std::rand over to ifaces
2012-01-11 20:33:44 +01:00
Marijn Haverbeke
26610dbbc8
Convert std::deque over to an iface
2012-01-11 20:33:44 +01:00
Marijn Haverbeke
15744210e7
Implement std::map as an iface/impl instead of an obj
2012-01-11 20:33:44 +01:00
Graydon Hoare
f6ecbe88ca
Fix rpath bug.
2012-01-09 16:12:47 -08:00
Brian Anderson
fbad0204e4
Merge pull request #1470 from grahame/grahame
...
add new read_chars method, fix bug in read_char
2012-01-09 10:35:48 -08:00
Marijn Haverbeke
f30c5ea686
Remove leftover comm.rs in std
...
(The actual comm module lives in core.)
2012-01-09 14:53:13 +01:00
Grahame Bowland
ba694775f5
add tests for io::readchars and io::readchar
...
Additionally reformat so that 'make check' passes.
2012-01-09 20:49:17 +08:00
Brian Anderson
c5564c9bae
Declare MIT license in crate attributes, not BSD
...
The Rust License is actually the MIT license, not BSD
2012-01-08 16:22:55 -08:00
Grahame Bowland
bcc25634e6
add new read_chars method, fix bug in read_char
...
having a read_chars method is convenient and more efficient.
the old read_char method had a bug due to re-use of the 'w' width
variable as a loop counter and so was broken for wide characters,
this patch fixes that.
2012-01-09 00:37:03 +08:00
Niko Matsakis
98f5109cde
simplify task impl
2012-01-06 22:40:31 -08:00
Brian Anderson
4b2f37253a
std: Untabify
2012-01-06 16:37:04 -08:00
Brian Anderson
74c825e385
std: Add fs::homedir
...
Returns the home directory of the user as appropriate for the platform.
Issue #1359
2012-01-06 16:33:17 -08:00
Erick Tryzelaar
6cfc196d42
libstd: rename c_vec::size to len.
2012-01-06 08:12:18 -08:00
Erick Tryzelaar
3e68803891
libcore: add [u8] helper functions to vec.
2012-01-06 07:47:14 -08:00
Erick Tryzelaar
eade7844a3
libstd: switch map to use libcore's hash functions.
2012-01-06 07:47:14 -08:00
Stefan Plantikow
c8467977c4
Merge branch 'master' into kmath
...
Conflicts:
src/libcore/float.rs
2012-01-05 17:20:13 +01:00
Stefan Plantikow
1f10ee365c
Moved generic float::min, max to core::math and cleaned up some imports
2012-01-05 17:11:34 +01:00
Stefan Plantikow
494ad4e601
Merge branch 'master' into kmath
2012-01-05 16:25:51 +01:00
Marijn Haverbeke
60ae1590af
Switch to new param kind bound syntax
...
And remove support for the old syntax
2012-01-05 15:50:02 +01:00
Marijn Haverbeke
02505d8aa1
Express some list primitives in a way that doesn't copy
...
It was somewhat embarassing that list::len copied its elements.
2012-01-05 09:18:19 +01:00
Stefan Plantikow
6284190ef9
Merge branch 'master' into kmath
...
Conflicts:
src/libcore/cmath.rs
2012-01-05 02:07:12 +01:00
Lenny222
d1ffe5034b
"str": rename "str_from_cstr" to "from_cstr" (analogous to the other "from_*")
2012-01-04 09:33:07 +01:00
Niko Matsakis
72a3667eb3
Allow tail expressions even in no_value blocks. Type checker
...
will guarantee they have unit type.
2012-01-03 13:13:52 -08:00
Brian Anderson
513a263e81
Merge pull request #1392 from Lenny222/list
...
list: add "is_not_empty" requirement to "head" and "tail" (analogous to "vec")
2012-01-03 12:18:53 -08:00
Marijn Haverbeke
15be2fc73a
Add 'copy' bounds to functions that were faultily accepted without
...
Issue #1390
2012-01-02 15:31:58 +01:00
User Jyyou
a59c4b1b47
freebsd support
2012-01-01 20:18:55 -08:00
Stefan Plantikow
d124c6eda2
removes std::mtypes
2011-12-31 03:45:17 +01:00
Lenny222
d07c6e8a0e
list: use predicate to enforce non-empty requirement
2011-12-29 21:24:03 +01: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
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
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
389329ef1e
Merge all 3 log syntaxes, tidy up residual misuses.
2011-12-22 16:14:00 -08:00
Erick Tryzelaar
43a6bd110e
Whitespace cleanup.
2011-12-22 15:05:59 -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
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
a24c19e867
Add companion-module core.rs that exports log levels and option/some/none everywhere.
2011-12-20 12:41:44 -08:00
Stefan Plantikow
b957916e06
removed math leftovers from std
2011-12-20 18:07:36 +01: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
8e9be037d1
Simplify getopts::find_opt.
2011-12-19 07:27:16 -08: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
39c8f0cb4a
libstd: Long lines
2011-12-17 17:02:07 -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
1477fb3f2b
libstd: Temporarily use #[link_name = ""]
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
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
Stefan Plantikow
7d786318a1
std: declared fns as pure where sensible
2011-12-16 18:18:34 +01:00
Niko Matsakis
b5e5043d5d
reorder block() argument to bitv::process()
2011-12-16 08:01:05 -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
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
Graydon Hoare
dde5860380
Remove some duplicated unused parts of std now that they're present in core.
2011-12-14 18:04:45 -08:00
Stefan Plantikow
af8e471908
Fixed type resolution error in math tests
2011-12-14 14:54:16 -08:00
Stefan Plantikow
6d0901cb4d
std: export math_f* as math::f* submods and use tailcalls in std::math
2011-12-14 14:54:16 -08:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00
Patrick Walton
cd0e57d2d4
stdlib: Fix spelling errors in documentation of libstd/str.rs
2011-12-13 14:53:14 -08:00
Erick Tryzelaar
e3a066bde8
Swap arg order for option::{may,maybe}
...
This lets us write the block syntax sugar:
option::may(x) { |y| … }
2011-12-09 10:22:24 -08:00
Brian Anderson
4f17131855
Add crate_type attributes to rustc, std, core
2011-12-08 21:09:48 -08:00
Niko Matsakis
0fc4403442
use util::rational to work around bug w/ floats on win
2011-12-07 17:05:58 -08:00
Niko Matsakis
1ff8994fce
Purge old map impl: more collisions, not clear it is safe on 64bit
2011-12-07 17:05:58 -08:00
Niko Matsakis
4b704ac69b
improve comments
2011-12-07 17:05:58 -08:00
Niko Matsakis
ed0e13f1d8
fix old map impl, add logging
2011-12-07 17:05:58 -08:00
Niko Matsakis
30a2361e68
add some debugging logs
2011-12-07 17:05:58 -08:00
Niko Matsakis
13a3288f3f
dec size in remove
2011-12-07 17:05:58 -08:00
Niko Matsakis
ddfe82a466
make rehashing more efficient by not re-allocating entries
2011-12-07 17:05:58 -08:00
Niko Matsakis
729345cb97
implement a chained hashmap
2011-12-07 17:05:58 -08:00
Marijn Haverbeke
3d0610b072
Check for literals that are out of range for their type
2011-12-07 21:53:05 +01:00
Marijn Haverbeke
e3eca9174b
Change literal representation to not truncate
...
Also shuffles around the organization of numeric literals and types,
separating by int/uint/float instead of machine-vs-non-machine types.
This simplifies some code.
Closes #974
Closes #1252
2011-12-07 21:08:28 +01:00
Niko Matsakis
6c95e400d8
repair more hash functions
2011-12-07 07:35:25 -08:00
Marijn Haverbeke
03a6e54212
Disallow binding by-mut-ref and by-move arguments
...
Fix bug in bound by-copy arguments.
Closes #1261
2011-12-07 15:28:57 +01:00
Niko Matsakis
66355607da
hack for now: map uint hashes into a u32, which helps x86_64 perf.
2011-12-06 19:55:46 -08:00
Brian Anderson
89efb7d981
libstd: Update docs
2011-12-06 13:58:54 -08:00
Graydon Hoare
447414f007
Establish 'core' library separate from 'std'.
2011-12-06 12:13:04 -08:00