Commit Graph

375 Commits

Author SHA1 Message Date
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