Commit Graph

518 Commits

Author SHA1 Message Date
Niko Matsakis
31c5cec55b Purge placement new; Make borrowck know about unary move.
cc #3071
2012-08-02 22:36:36 -07:00
Eric Holk
f76a46242b Convert pfib to pipes. This is a useful stress test. 2012-08-02 18:55:44 -07:00
Eric Holk
1f2178e2d3 Removing an obsolete benchmark 2012-08-02 18:55:44 -07:00
Niko Matsakis
97452c0ca1 Remove modes from map API and replace with regions.
API is (for now) mostly by value, there are options to use it by
reference if you like.  Hash and equality functions must be pure
and by reference (forward looking to the day when something
like send_map becomes the standard map).
2012-08-02 15:53:28 -07:00
Ben Blum
8d7dfa44b0 Linked failure: Add '100 generations' bench test (#1868) 2012-08-02 00:07:12 -04:00
Brian Anderson
b355936b4d Convert ret to return 2012-08-01 19:16:06 -07:00
Brian Anderson
c5437c0bbf Fix failing tests 2012-07-31 21:13:57 -07:00
Paul Stansifer
a9cc5066ee Change syntax extension syntax: #m[...] -> m!{...}. 2012-07-30 18:38:15 -07:00
Elliott Slaughter
416584d339 Revert "Fix build by xfailing tests which produce irreducible CFGs."
This reverts commit 9ca2a11137.
2012-07-30 15:58:23 -07:00
Tim Chevalier
082d8314da Rewrite bitv to use classes and optimize its representation
Rewrote bitv as a class that uses a 32-bit int as its representation
for bit vectors of 32 bits or less, and a vector (the old representation)
otherwise. I didn't benchmark very much, but a bit of informal benchmarking
suggested this is a win.

Closes #2341
2012-07-29 18:39:15 -07:00
Patrick Walton
93c2f5e0e4 rustc: Use coherence for operator overloading.
The only use of the old-style impls is now placement new.
2012-07-27 19:35:24 -07:00
Eric Holk
3c731df890 re-xfailing pingpong 2012-07-26 17:11:04 -07:00
Eric Holk
79f5d62d47 Added .peek for recv_packets 2012-07-26 17:10:48 -07:00
Eric Holk
c918bd01b0 Fix borrow check errors in k-nucleotide. 2012-07-26 17:10:48 -07:00
Eric Holk
65beca4e01 Use iteration protocol for ebml, use vec::view in more places (issue #2880) 2012-07-26 17:10:48 -07:00
Damian Gryski
74d60a619a shootout-mandelbrot: devnull writer needs get_type impl 2012-07-26 17:05:13 -07:00
Graydon Hoare
43867bf6f3 Merge pull request #3014 from elliottslaughter/fix-failed-build-by-xfailing-tests
Fix build by xfailing tests which produce irreducible CFGs.
2012-07-25 14:50:02 -07:00
Elliott Slaughter
9ca2a11137 Fix build by xfailing tests which produce irreducible CFGs. 2012-07-25 14:42:37 -07:00
Eric Holk
6748f78cb1 Polymorphic protocols work well enough to do MapReduce.
I did some horrible things with type variable naming here. It should do the right thing in most cases, but we'll need to go through and make it correct someday.
2012-07-25 12:12:26 -07:00
Eric Holk
f5be06fa1f Added infrastructure to spin for a bit on recv. A spin count > 0 makes bench/pingpong.rs about 10x faster, but makes msgsend-ring-pipes unbearably slow. 2012-07-25 12:12:25 -07:00
Eric Holk
35576168dc Added a benchmark of bounded vs unbounded. Bounded is 8-12% faster. The macros currently don't work without pretty printing first. 2012-07-25 12:12:25 -07:00
Ben Blum
b30a58abe2 Convert bench and run-pass tests to new task_builder interface 2012-07-23 20:09:17 -04:00
Niko Matsakis
e0ea67a2a6 prevent regions from escaping in ifaces; remove &r.T syntax 2012-07-18 11:48:58 -07:00
Patrick Walton
db020ab63c rustc: Implement and enforce instance coherence 2012-07-17 15:46:43 -07:00
Gareth Daniel Smith
fe43d66613 replace core::tuple functions with methods 2012-07-16 22:33:20 +01:00
Michael Sullivan
92743dc2a6 Move the world over to using the new style string literals and types. Closes #2907. 2012-07-14 01:03:43 -07:00
Eric Holk
05543fd04d Make tests pass 2012-07-12 20:09:30 -07:00
Eric Holk
fec8059ed5 Move port_set and shared_chan into core. 2012-07-12 18:16:01 -07:00
Eric Holk
ba10819800 Added a message send that uses shared chans. They are slower than port selectors, but scale better. 2012-07-12 18:16:01 -07:00
Eric Holk
75e55c1b12 Faster select. This version gives us about a 4x speedup. 2012-07-12 18:16:01 -07:00
Eric Holk
c56a38ac2a Added a version of msgsend that uses pipes and select. Here, select is way too slow to be useful, but this can be optimized. 2012-07-12 18:16:00 -07:00
Eric Holk
1a276dba52 Switch map-reduce control protocol to use pipes. This exposed a bug in the pipe compiler, which is now fixed.
Use hashmaps in MapReduce

Tweak word-count difficulty
2012-07-12 18:16:00 -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
Eric Holk
bf88ff5217 Remove slow vec+=, and make word-count difficulty harder. 2012-07-11 11:36:37 -07:00
Eric Holk
a00478b7c9 word-count-generic now generates random words in benchmark mode. 2012-07-11 11:36:37 -07:00
Eric Holk
22e955a76a Move streams into core. 2012-07-10 22:00:48 -07:00
Eric Holk
594d9a0554 Use protocol compiler in future.rs. Also split recv into recv and try_recv. 2012-07-10 22:00:48 -07:00
Brian Anderson
71fd542f26 test: Fix shootout-binarytrees 2012-07-10 12:09:36 -07:00
Brian Anderson
1e8ae18ba1 test: Fix shootout-fasta 2012-07-10 12:05:23 -07:00
Graydon Hoare
c26d02557e Switch 'cont' to 'again' everywhere. Close #2229. 2012-07-09 14:37:48 -07:00
Brian Anderson
02ef651f95 Increase the difficulty of chameneos-redux under 'make perf' 2012-07-07 22:39:23 -07:00
Kevin Cantu
638ee23fcf Add improvements suggested by erickt and bblum 2012-07-07 22:27:00 -07:00
Kevin Cantu
2bd482ef11 Add the Alioth chameneos-redux benchmark
This adds a Rust implementation of the Alioth chameneos-redux benchmark:
http://shootout.alioth.debian.org/u64q/performance.php?test=chameneosredux

This version already seems faster than Clojure, Ruby, and OCaml. I'm running
with N=6,000,000 in about 1m 50s.  Further optimization would be good, though.

I'm talking right now with @eholk about how pipes could be used (this is 1:many)...
2012-07-07 22:27:00 -07:00
Eric Holk
b925648ac7 Added a k-nucleotide version that uses pipes. 31% speedup. 2012-07-06 15:16:16 -07:00
Eric Holk
604f7c66ff Removing locked queue port/chan prototype. 2012-07-06 11:05:28 -07:00
Eric Holk
7b03832c95 Updating tests to use pipes. 2012-07-06 10:42:41 -07:00
Eric Holk
a787f40013 Select on pipes.
Updating syntax and test cases.
2012-07-06 10:42:39 -07:00
Eric Holk
a4838c93aa Enabling pipes for all stages, and updating closure syntax. 2012-07-06 10:42:39 -07:00
Eric Holk
67b0760592 Moved pipes runtime support to libcore, and add a test that will help verify that busy waiting is no longer happening.
Fixing the result of a bad merge.
2012-07-06 10:42:39 -07:00
Eric Holk
5c3889a02f Contracts work well enough to do the message ring benchmark, and it's really fast.
Fixing old-style vector, and xfail-prettying th contracts test because the pretty printer is unhappy.
2012-07-06 10:42:38 -07:00
Tim Chevalier
889be71cb4 Comments only: change TODOs to FIXMEs and annotate them 2012-07-05 16:10:29 -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
41bca84dd9 core: Convert iter::repeat to the for protocol 2012-07-03 17:31:31 -07:00
Graydon Hoare
7762c80d1b Fix more future::future breakage. 2012-07-03 16:16:45 -07:00
Graydon Hoare
debb7e4641 Switch 'native' to 'extern' (or 'foreign' in some descriptions) 2012-07-03 16:11:00 -07:00
Lindsey Kuper
7a4ebcefcb Update nbody benchmark to more idiomatic Rust; nix obsolete comments 2012-07-02 15:20:59 -07: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
Michael Sullivan
e7760470b4 Make a bunch of tests stop using the deprecated vector syntax. 2012-06-28 17:33:15 -07:00
Eric Holk
61b1875c16 make core-std respect RUST_BENCH 2012-06-27 22:30:08 -07:00
Eric Holk
0c42a3ffee vec::append reuses its left hand side when possible. (issue #2719) 2012-06-27 16:19:49 -07:00
Eric Holk
133fdc1148 Remove unnecessary bounds checks in vec::push_all (issue #2719)
Don't needlessly drop closures (issue #2603)
2012-06-27 11:32:22 -07:00
Eric Holk
ccd2394ff9 perf: improved the core-std benchmark 2012-06-26 14:08:16 -07:00
Eric Holk
a08281616f More perf tweaks (issue #2719) 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
Tim Chevalier
e9f19283b3 Remove resources from a few places I missed 2012-06-25 12:20:51 -07:00
Eric Holk
3ba7ca5c9f Improved perf for msgsend (Issue #2719) 2012-06-25 11:27:32 -07:00
Eric Holk
07e1d1c6b6 Improved graph500 performance (Issue #2719) 2012-06-25 11:15:45 -07:00
Eric Holk
26c11f7b50 Use must_have_lock instead of private functions. (Issue #2700)
I hereby declare that messages sent from the same source arrive in order (Issue #2605)

Removing FIXME, owned is the correct type here. (Issue #2704)

Remove outdated FIXME (Issue #2703)

Updating test for spawning native functions (Issue #2602)

Removing bogus FIXME (Issue #2599)
2012-06-22 15:14:42 -07:00
Tim Chevalier
588c1eb41f Remove resources from remaining test cases 2012-06-22 13:11:29 -07:00
Eric Holk
40559ea839 Adding a benchmark for the new message passing code 2012-06-21 16:11:11 -07:00
Eric Holk
4d1e415611 Remove some commented out code so the pretty printer doesn't get confused. 2012-06-21 16:11:11 -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
Eric Holk
9ee1480fd1 Another benchmark 2012-06-19 10:31:12 -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
0a6ef35c8c while => for 2012-06-14 15:35:43 -07:00
Tim Chevalier
13d4b61182 Comments only: annotate FIXMEs in tests 2012-06-14 15:35:43 -07:00
Brian Anderson
748bd12dc7 bench: xfail-pretty shootout-k-nucleotide 2012-06-09 16:12:28 -07:00
Brian Anderson
03e186cd04 bench: Modify shootout-k-nucleotide to not read from the filesystem 2012-06-09 13:57:18 -07:00
Brian Anderson
a884044066 bench: Increase the difficulty of fasta 2012-06-09 13:25:05 -07:00
Kevin Cantu
c2a9cc9394 Add the Alioth k-nucleotide benchmark
This is not particularly well performing yet (60x slower than C++ or
worse).  I think the slicing and the copies made for the hashmap
are mostly responsible, but YMMV.

By default shootout-fasta writes to stdout and shootout-k-nucleotide
reads from stdin.  To use an intermediate file with a fixed name,
set RUST_BENCH...
2012-06-09 12:58:12 -07:00
Eric Holk
1e8f501343 Machine types are different from int/uint, etc (Issue #2187) 2012-06-04 19:16:47 -07:00
Brian Anderson
6e0085210c core: Make uint::to_str faster 2012-06-04 14:30:57 -07:00
Ted Horst
3c4a1ab0c4 fix args to shootout-mandelbrot benchmark 2012-06-03 09:45:23 -05:00
Brian Anderson
027e97b129 bench: Add an unwinding benchmark 2012-06-02 17:49:36 -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
Eric Holk
ccb54f0ce0 Move par into libstd. Closes #2441. 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
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
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
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
Michael Sullivan
8668d06400 Get rid of many implicit copies as a preliminary to Issue #2448. 2012-05-25 16:39:35 -07:00
Niko Matsakis
9e6a068034 replace last_use with liveness info 2012-05-25 14:37:30 -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
Brian Anderson
248f8826a9 bench: Reduce constants in std-smallintmap to make it valgrind fast 2012-05-23 11:24:02 -07:00
Brian Anderson
8caf1403be bench: Reduce some constants to make graph500-bfs faster 2012-05-22 18:20:23 -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
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
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
da204e1d73 add swappable/dvec modules 2012-05-18 20:00:50 -07:00
Lindsey Kuper
b8880e3254 Remove be keyword.
Closes #2227.
2012-05-15 10:41:14 -07:00
Niko Matsakis
e348567f77 new, simpler approach to the iter library 2012-04-27 16:57:50 -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
Graydon Hoare
929c3dd710 Workarounds for bug #2280: add some temporaries for borrowing. 2012-04-24 15:19:01 -07:00
Marijn Haverbeke
9053f54498 Move map iface over to more for-friendly iteration methods 2012-04-23 15:18:19 +02:00
Niko Matsakis
3d6c79109e update syntax to include a slash 2012-04-19 21:01:11 -07:00
Niko Matsakis
3c995fb8f3 make nominal types optionally parameterized by a self region.
Issue #2201.
2012-04-19 21:01:11 -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
Tim Chevalier
98b07ddc82 Rename task::task_builder to task::builder
Closes #2120.
2012-04-05 14:09:32 -07:00
Patrick Walton
8774493dd3 test: Rewrite binarytrees to use arenas
Perf isn't bad now. Still 50% slower than Java, but faster than other GC'd languages.
2012-03-29 08:41:26 -07:00
Graydon Hoare
6e6798c4e1 Bulk-edit mutable -> mut. 2012-03-26 18:35:18 -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
Brian Anderson
f69e9ff643 test: Fix breakage 2012-03-15 15:18:04 -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
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
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
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
Erick Tryzelaar
f630ebdb6a comp/std: rename io::string_reader to io::str_reader. 2012-03-02 19:15:35 -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
Marijn Haverbeke
780f8277f4 Finish cleanup of core::str
Closes #1849
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
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
Brian Anderson
4220dcf1e9 core: New task API 2012-02-20 18:58:04 -08:00
Brian Anderson
0438e6e924 bench: Add a test for task concurrency 2012-02-15 11:52:43 -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
Marijn Haverbeke
50fb4c30ed Increase precedence of as operator
Closes #1717
2012-02-09 11:58:08 +01:00
Brian Anderson
7c8d128e1f bench: Add shootout-spectralnorm 2012-02-08 01:06:16 -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
30a671dc0c bench: Tweak threadring benchmark so it pretty-prints 2012-02-04 20:34:51 -08:00
Brian Anderson
b4e221bf90 bench: Add threadring shootout benchmark 2012-02-04 20:01:55 -08:00
Brian Anderson
5d4b372902 Revert "bench: Add threadring shootout benchmark"
This reverts commit cdb246f832.
2012-02-04 19:50:45 -08:00
Brian Anderson
cdb246f832 bench: Add threadring shootout benchmark 2012-02-04 18:00:59 -08:00
Ted Horst
9b46e875cc add third arg for output path, default to no output 2012-02-03 20:49:14 -08:00
Ted Horst
63ae16f752 fix formatting 2012-02-03 20:49:14 -08:00
Ted Horst
e7738ca38b add mandelbrot image generator from shootout 2012-02-03 20:49:13 -08:00
Tim Chevalier
e5d095d67e Change option::t to option
Now that core exports "option" as a synonym for option::t, search-and-
replace option::t with option.

The only place that still refers to option::t are the modules in libcore
that use option, because fixing this requires a new snapshot
(forthcoming).
2012-01-31 17:05:20 -08:00
Brian Anderson
cad4918b2a core: Remove sys::set_min_stack
This was a temporary hack with global effect. Eventually there will
be a real solution for controlling stack sizes.
2012-01-29 21:27:09 -08:00
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
Niko Matsakis
5660b8bfb5 add msgsend.rs to benchmarks 2012-01-23 16:04:14 -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
Patrick Walton
59ebe6af18 rustc: Make the pretty printer output commas after enum variants. Update all tests accordingly. 2012-01-19 18:41:06 -08:00
Patrick Walton
1461cfe416 test: "tag" -> "enum" in bench 2012-01-19 16:11:17 -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
Brian Anderson
7e6ce6637e bench: Lower the default inputs on many shootout benchmarks
Make them run a bit faster during normal testing
2012-01-14 20:34:02 -08:00
Brian Anderson
1588ae204e bench: Update shootout-nbody for style 2012-01-14 20:29:56 -08:00
Brian Anderson
93dcb9fb6b bench: Update fannkuchredux for style 2012-01-14 20:13:03 -08:00
Brian Anderson
9c21673e3f bench: Update shootout-binarytrees for style 2012-01-14 20:13:03 -08:00
Brian Anderson
c53d0a0af8 bench: Update shootout-ackermann for performance 2012-01-14 20:13:01 -08:00
Brian Anderson
492dba8bfe bench: Update shootout-fibo for performance 2012-01-14 19:39:52 -08:00
Brian Anderson
c6f62b6374 bench: Update shootout-binarytrees to use unique boxes
Shared boxes have a huge performance overhead due to #1493
2012-01-14 17:02:51 -08:00
Niko Matsakis
3f3bfeec27 make "native fn" the type for bare functions, remove fn exprs 2012-01-13 06:27:35 -08:00
Marijn Haverbeke
d2be5b6c7a Remove tests for objs, adjust tests that use objs 2012-01-13 11:52: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
Niko Matsakis
d4410a9f9b rewrite to use old C++-based mechanism 2012-01-06 22:40:32 -08:00
Niko Matsakis
a1ef79c9d2 update to use new spawn syntax 2012-01-06 22:40:32 -08: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
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
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
Brian Anderson
dedfef4c4c Revert "wip"
This reverts commit aeadc6269e.
2011-12-20 20:57:04 -08:00
Brian Anderson
aeadc6269e wip 2011-12-20 20:15:09 -08:00
Stefan Plantikow
fa27724a4b std: getopts now uses result::t (fixes #1289) 2011-12-18 18:55:39 -08:00
Brian Anderson
12cde6ebee libcore: Remove task::set_min_stack
This existed to make up for the lack of stack growth, and wasn't generally
safe.
2011-12-18 14:10:41 -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
Niko Matsakis
2833ca478c reorder args to the various vec, option fns so blk comes last 2011-12-16 07:17:23 -08:00
Graydon Hoare
fa9ad984fb Copy first batch of material from libstd to libcore. 2011-12-13 16:34:50 -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
Stefan Plantikow
ff04cb1eb0 Added a little sudoku solver to test/bench for everone's puzzle solving needs 2011-11-20 01:53:12 +01:00
Marijn Haverbeke
f6491bb426 Update stdlib, compiler, and tests to new kind system
This involved adding 'copy' to more generics than I hoped, but an
experiment with making it implicit showed that that way lies madness --
unless enforced, you will not remember to mark functions that don't
copy as not requiring copyable kind.

Issue #1177
2011-11-18 12:49:01 +01:00
Haitao Li
88f29aab27 Use attributes for native module ABI and link name
This patch changes how to specify ABI and link name of a native module.

Before:
  native "cdecl" mod llvm = "rustllvm" {...}

After:
  #[abi = "cdecl"]
  #[link_name = "rustllvm"]
  native mod llvm {...}

The old optional syntax for ABI and link name is no longer supported.

Fixes issue #547
2011-11-16 11:35:13 -08:00
Brian Anderson
fcdb313bd5 Give task-perf-word-count default behavior. Closes #1172 2011-11-11 12:35:43 -08:00
Brian Anderson
d26a96d2bb Add "cdecl" as synonym for "c-stack-cdecl" 2011-11-09 16:47:44 -08:00
Brian Anderson
2cebef095e stdlib: Make io failures recoverable by returning a result 2011-10-29 01:25:11 -07:00
Marijn Haverbeke
3397fa4701 Move to short kind kinds words in test suite
Issue #1076
2011-10-28 14:57:49 +02:00
Marijn Haverbeke
cfdf193c46 Update our code to new type parameter kind syntax
Closes #1067
2011-10-25 15:56:55 +02:00
Niko Matsakis
8f2d75d53c switch over sqrt from llvm to c-stack-cdecl, exposing a bug in
the supported return types of upcall_c_stack
2011-10-24 16:06:18 -07:00
Marijn Haverbeke
3b5b93221e Remove some semicolons after block calls
The remaining ones can be removed after the next snapshot. (Or
we can let the next pretty-print pass take care of them.)
2011-10-21 14:24:42 +02:00
Marijn Haverbeke
050170d2af Remove remaining uses of iter and for-each
Issue #1056
2011-10-21 13:34:35 +02:00
Brian Anderson
ebc61e39d7 Remove temporary fn# syntax 2011-10-20 20:34:04 -07:00
Brian Anderson
29ad3bdb10 Make fn denote a bare function. Convert fn to fn@ as needed 2011-10-20 18:23:48 -07:00
Brian Anderson
686d6a485f Drop the 2 from the spawn*2 functions
Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
a4956a7cdd XFAIL task-perf-word-count-generic
This can't be done with bare functions.

Issue #1022
2011-10-20 18:23:47 -07:00
Brian Anderson
ac671c3172 Convert tests to use bare-fn spawn
Issue #1022
2011-10-20 18:23:47 -07:00
Niko Matsakis
e39db5a100 all tests pass 2011-10-12 16:33:06 -07:00
Marijn Haverbeke
33167f7dec Adjust function signatures to allow for vecs being immediate
Some code was relying on vectors being implicitly by-reference (as
non-immediate value). This adds the necessary &&-sigils.

Closes #1021
2011-10-10 16:01:51 +02:00
Brian Anderson
91d8e69621 Un-xfail various tests 2011-09-19 18:55:26 -07:00
Marijn Haverbeke
7298b8f4ba Insert omitted semicolons for statements 2011-09-15 09:49:00 +02:00
Brian Anderson
393deeb06f Merge branch 'unwind'
Conflicts:
	src/comp/middle/trans.rs
	src/comp/middle/trans_build.rs
	src/lib/run_program.rs
	src/test/compiletest/runtest.rs
2011-09-12 09:36:51 -07:00
Marijn Haverbeke
ca1df2b111 Pretty-print for new arg-mode syntax 2011-09-12 12:49:00 +02:00
Marijn Haverbeke
fc6b7c8b38 Reformat for new mode syntax, step 1
Long lines were fixed in a very crude way, as I'll be following up
with another reformat in a bit.
2011-09-12 12:04:14 +02:00
Brian Anderson
6ffcfba6b9 XFAIL bench/shootout-nbody
This is the only file in the whole codebase that depends on the (broken) llvm
native ABI.
2011-09-11 23:19:05 -07:00
Brian Anderson
5c49e4f4e9 Reformat. Issue #855 2011-09-02 22:11:42 -07:00
Brian Anderson
418d09e547 Convert all uses of #ifmt to #fmt. Issue #855 2011-09-01 18:54:03 -07:00
Brian Anderson
ab6bb035e5 Rename std::istr to std::str. Issue #855 2011-09-01 17:27:58 -07:00
Brian Anderson
e824775d53 Remove std::str. Issue #855 2011-09-01 16:09:15 -07:00
Brian Anderson
dabf1be226 Add a benchmark for cross-task kernel memory region synchronization
Vectors are allocated from the kernel's memory region, which has some heinous
synchronization. This is a stress test of vector allocation in many tasks.
2011-09-01 14:20:02 -07:00
Brian Anderson
bb56a75343 Convert main functions to istrs. Issue #855 2011-09-01 12:14:35 -07:00
Brian Anderson
3fe743bc9c Remove various istr conversions. Issue #855 2011-09-01 12:14:34 -07:00
Brian Anderson
cb55ef6e12 Convert benchmarks to istrs. Issue #855 2011-08-31 16:24:08 -07:00
Brian Anderson
498e38b705 Convert uses of #fmt to #ifmt. Issue #855 2011-08-31 11:44:06 -07:00
Brian Anderson
652332f9d4 Convert std::map::new_str_hash to istrs. Issue #855 2011-08-27 15:54:44 -07:00
Brian Anderson
fcc031c5b4 Convert std::io to istrs. Issue #855 2011-08-27 15:54:43 -07:00
Brian Anderson
4cf2e510e0 Convert std::getopts to istrs. Issue #855 2011-08-27 15:53:09 -07:00
Brian Anderson
8146ca982e Convert std::u64 to istrs. Issue #855 2011-08-27 15:53:08 -07:00
Brian Anderson
53be480d20 Convert std::int to istrs. Issue #855 2011-08-27 15:53:08 -07:00
Eric Holk
640886ceb6 Polymorphic MapReduce! 2011-08-26 18:03:33 -07:00
Eric Holk
2f7c583bc1 Cleaning up task and comm exports, updating all the test cases. 2011-08-25 11:21:25 -07:00
Brian Anderson
abdb6cd71b Rewrite reap_dead_tasks to never grab the sched lock before a task lock
Doing so contradicts the locking order used everywhere else and causes
deadlocks.

Un-XFAIL task-perf-spawnalot

Closes #854
2011-08-20 16:21:27 -07:00
Brian Anderson
15e456d547 Convert task-perf-spawnalot to spawn_joinable. XFAIL 2011-08-20 13:02:53 -07:00
Brian Anderson
518dc52f85 Reformat
This changes the indexing syntax from .() to [], the vector syntax from ~[] to
[] and the extension syntax from #fmt() to #fmt[]
2011-08-20 11:04:00 -07:00
Eric Holk
94260fb91d Using move-mode for spawn thunks to avoid race conditions. 2011-08-17 11:44:50 -07:00
Erick Tryzelaar
b3eba15271 Port the tests to the expr foo::<T> syntax. 2011-08-16 15:05:57 -07:00
Erick Tryzelaar
21f46a1655 Port the tests to the typaram foo<T> syntax. 2011-08-16 15:05:56 -07:00