Commit Graph

164 Commits

Author SHA1 Message Date
Corey Richardson
f8ae9b0ae6 Fix whitespace issues (thanks @jedestep!) 2013-06-26 18:14:35 -04:00
Jed Estep
35314c93fa Moving implementation details to a macro 2013-06-26 18:08:56 -04:00
Jed Estep
096fb795de A few iterator tests 2013-06-26 18:08:56 -04:00
Jed Estep
dfc9392c38 iterators use deque ordering 2013-06-26 18:08:56 -04:00
Jed Estep
4f7a742a06 deque iterator 2013-06-26 18:08:56 -04:00
Ramkumar Ramachandra
f4621cab68 priority_queue: implement simple iterator
Remove PriorityQueue::each and replace it with PriorityQueue::iter,
which ultimately calls into vec::VecIterator via PriorityQueueIterator.
Implement iterator::Iterator for PriorityQueueIterator.  Now you should
be able to do:

  extern mod extra;
  let mut pq = extra::priority_queue::PriorityQueue::new();
  pq.push(5);
  pq.push(6);
  pq.push(3);
  for pq.iter().advance |el| {
      println(fmt!("%d", *el));
  }

just like you iterate over vectors, hashmaps, hashsets etc.  Note that
the iteration order is arbitrary (as before with PriorityQueue::each),
and _not_ the order you get when you pop() repeatedly.

Add an in-file test to guard this.

Reported-by: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
2013-06-26 18:08:43 -04:00
Kevin Ballard
0ae203a779 Refactor extra::term a bit
Move all the colors into a nested mod named color instead of prefixing
with "color_".

Define a new type color::Color, and make this a u16 instead of a u8 (to
allow for easy comparisons against num_colors, which is a u16).

Remove color_supported and replace it with num_colors.

Teach fg() and bg() to "dim" bright colors down to the normal intensity
if num_colors isn't high enough.

Remove unnecessary copies, and fix a bug where a terminfo parse failure
would try to use the wrong error and end up failing.
2013-06-26 18:07:17 -04:00
bors
09b4525f84 auto merge of #7113 : alexcrichton/rust/banned-warnings, r=cmr
Reopening of #7031, Closes #6963

I imagine though that this will bounce in bors once or twice... Because attributes can't be cfg(stage0)'d off, there's temporarily a lot of new stage0/stage1+ code.
2013-06-26 00:56:04 -07:00
bors
22408d9ad5 auto merge of #7269 : luqmana/rust/drop, r=thestinger
Finally rename finalize to drop.
Closes #4332.
2013-06-25 20:29:06 -07:00
Luqman Aden
ca2966c6d0 Change finalize -> drop. 2013-06-25 21:14:39 -04:00
Alex Crichton
c109bed15b Deny common lints by default for lib{std,extra} 2013-06-25 17:39:43 -07:00
Daniel Micay
e67c48a591 remove each from vec, HashMap and HashSet 2013-06-25 16:28:02 -04:00
Daniel Micay
64ee9668a2 container: remove internal iterators from Map
the maps are being migrated to external iterators
2013-06-25 16:26:23 -04:00
bors
032dcc57e8 auto merge of #7371 : alexcrichton/rust/trying, r=cmr
This is an attempt at a smaller request than #7113, it's just the first two commits
2013-06-25 10:47:01 -07:00
Alex Crichton
42b44b21b1 Rename all files with the 'rc' extension 2013-06-25 08:55:15 -07:00
bors
d161e630d8 auto merge of #7317 : Aatch/rust/no-drop-flag, r=thestinger
This adds a `#[no_drop_flag]` attribute. This attribute tells the compiler to omit the drop flag from the struct, if it has a destructor. When the destructor is run, instead of setting the drop flag, it instead zeroes-out the struct. This means the destructor can run multiple times and therefore it is up to the developer to use it safely.

The primary usage case for this is smart-pointer types like `Rc<T>` as the extra flag caused the struct to be 1 word larger because of alignment.

This closes #7271 and #7138
2013-06-25 07:23:06 -07:00
bors
7aee5da08d auto merge of #7254 : Blei/rust/intrinsic-overhaul, r=cmr
This sets the `get_tydesc()` return type correctly and removes the intrinsic module. See #3730, #3475.

Update: this now also removes the unused shape fields in tydescs.
2013-06-25 04:38:06 -07:00
James Miller
d9f6dd263c Set #[no_drop_flag] on Rc<T> and AtomicOption. Add Test 2013-06-25 16:11:34 +12:00
bors
c6515ee6a7 auto merge of #7193 : Thiez/rust/fixbench, r=cmr
This PR fixes a few problems with the benchmark, mentioned in #2913. Since I do not have a 4GB RAM machine (I run rust on a puny 2GB RAM VM) I can't test binarytrees with N=20. If it works we can close #2913.

Fixes: 1) binarytrees prints "long lived trees of depth" instead of "long lived tree of depth"
Fixes: 2) chameneosredux -- the whitespace printed by show_number should be the same as printed by show_color
Already fixed: 3) spectralnorm prints an extra 

Fixes: 4) threadring prints an extra 

Fixes: 5) fasta -- strangely, output stops half-way through line 169 -- with another 8166 lines still to do.
Could not test: 6) the latest binarytrees fails with input N=20 on a 4GB machine.

r?
2013-06-24 04:43:51 -07:00
bors
dfb7de8e0e auto merge of #7334 : thestinger/rust/old_iter, r=Aatch
the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it

this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`

an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
2013-06-24 00:52:53 -07:00
Daniel Micay
e2e39234cc remove old_iter
the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it

this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`

an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
2013-06-24 01:35:11 -04:00
Palmer Cox
711273f5b4 Implement the fixed output size versions of the SHA-2 digest functions. 2013-06-24 00:04:02 -04:00
Palmer Cox
89eef0b139 Create a Digest trait for common methods on digests and convert the SHA-1 implementation to use it.
The DigestUtil trait was created for helper methods since default methods still have issues.
2013-06-24 00:04:00 -04:00
Palmer Cox
e1b8c67580 Improve the SHA-1 implementation
* Rename struct Sha1State to Sha1
* Remove all use of @ types
* Use fixed length vectors
* Move all of the inner functions from inside sha1() to top level, private functions
* Sha1 instances are now created via Sha1::new()
* Update all constant names to uppercase
* Remove unecessary assert_eq!s
* Remove check_vec_eq() helper function; use vec::eq() instead
2013-06-24 00:02:45 -04:00
Palmer Cox
c5400a8830 Create a crypto submodule and move the SHA-1 implementation into it. 2013-06-23 23:38:46 -04:00
Matthijs Hofstra
7ba1a239a4 Changed Arena API to make it usable once more. 2013-06-24 00:09:04 +02:00
bors
2b581c17b5 auto merge of #7258 : huonw/rust/7256, r=bstrie 2013-06-23 05:34:56 -07:00
Philipp Brüschweiler
e2f1049bd5 Remove unused TyDesc parameter from the glue functions
To remove the environment pointer, support for function pointers without
an environment argument is needed (i.e. a fixed version of #6661).
2013-06-23 13:02:00 +02:00
Philipp Brüschweiler
976c0b3dfb Remove rust_call_tydesc_glue
Towards #4812. Also includes some minor cleanups.
2013-06-23 12:49:16 +02:00
Philipp Brüschweiler
469f394b25 Remove intrinsic module
To achieve this, the following changes were made:
* Move TyDesc, TyVisitor and Opaque to std::unstable::intrinsics
* Convert TyDesc, TyVisitor and Opaque to lang items instead of specially
  handling the intrinsics module
* Removed TypeDesc, FreeGlue and get_type_desc() from sys

Fixes #3475.
2013-06-23 12:49:16 +02:00
Daniel Micay
d2e9912aea vec: remove BaseIter implementation
I removed the `static-method-test.rs` test because it was heavily based
on `BaseIter` and there are plenty of other more complex uses of static
methods anyway.
2013-06-23 02:05:20 -04:00
Daniel Micay
883c966d5c vec: replace position with iter().position_ 2013-06-21 03:23:59 -04:00
Daniel Micay
49c74524e2 vec: rm old_iter implementations, except BaseIter
The removed test for issue #2611 is well covered by the `std::iterator`
module itself.

This adds the `count` method to `IteratorUtil` to replace `EqIter`.
2013-06-21 03:20:22 -04:00
Daniel Micay
62dc4e0d4c vec: remove each_const
An Iterator implementation can be made for &const [T] if it turns out
to be necessary for some use case.
2013-06-21 03:20:22 -04:00
bors
77ae7ec8d8 auto merge of #7161 : kballard/rust/terminfo-parm-format, r=thestinger
Introduce support for terminfo's subset of printf-style formatting on doxXs operations.

r? @thestinger
2013-06-20 20:41:09 -07:00
Huon Wilson
91362bd220 extra: Add a testcase for #7256. 2013-06-21 01:07:05 +10:00
James Miller
4e3b196670 libextra: cleanup warnings 2013-06-21 02:43:03 +12:00
James Miller
3bc4d1a120 Remove all #[cfg(stage0)]-protected code
New snapshot means this can all go. Also removes places that have
comments that say they are workarounds for stage0 errors.
2013-06-21 02:43:02 +12:00
Graydon Hoare
2e41689501 xfail std::num::complex::test_norm on x86, r=burningtree. 2013-06-18 14:48:48 -07:00
Graydon Hoare
d904c72af8 replace #[inline(always)] with #[inline]. r=burningtree. 2013-06-18 14:48:48 -07:00
Kevin Ballard
c1b1091a4a Support printf formats in terminfo strings
terminfo parameterized strings supports a limited subset of printf-style
formatting operations, such as %#5.3d.
2013-06-18 00:33:09 -07:00
Ralph Bodenner
5acc8e5a51 Reproduce text changes from @brson PR 7176 and fix a typo therein 2013-06-17 00:07:52 -07:00
Ralph Bodenner
819d07af7f Update doc references to new names for std, extra, and std::libc 2013-06-16 23:26:08 -07:00
Niko Matsakis
e7b0b71197 Remove moves from *T and implement in another way 2013-06-16 12:47:36 -04:00
Niko Matsakis
eb48c29681 Add copies to type params with Copy bound 2013-06-16 12:47:36 -04:00
bors
c1548991cf auto merge of #7160 : kballard/rust/terminfo-parm-i-fix, r=thestinger
My latest terminfo work introduced a bug in the handling of %i, which was noticed by @huonw after the PR was already merged in.

r? @thestinger
2013-06-16 05:33:59 -07:00
bors
f74e1935aa auto merge of #7123 : huonw/rust/more-str, r=thestinger
Moves all the remaining functions that could reasonably be methods to be methods, except for some FFI ones (which I believe @erickt is working on, possibly) and `each_split_within`, since I'm not really sure the details of it (I believe @kimundi wrote the current implementation, so maybe he could convert it to an external iterator method on `StrSlice`, e.g. `word_wrap_iter(&self) -> WordWrapIterator<'self>`, where `WordWrapIterator` impls `Iterator<&'self str>`. It probably won't be too hard, since it's already a state machine.)

This also cleans up the comparison impls for the string types, except I'm not sure how the lang items `eq_str` and `eq_str_uniq` need to be handled, so they (`eq_slice` and `eq`) remain stand-alone functions.
2013-06-16 00:04:13 -07:00
Huon Wilson
bbcff95ac5 remove unused imports 2013-06-16 12:20:12 +10:00
Daniel Micay
6c547e42c8 rm vec::uniq_len 2013-06-15 22:16:21 -04:00
Huon Wilson
4686ed1a1d std: continue improving the comparison trait impls for str.
This moves them all into the traits submodule, and delegates Ord
to the TotalOrd instance. It also deletes the stand-alone lt, gt,
ge and le functions.
2013-06-16 10:50:28 +10:00