Andrei Alexandrescu
1083bd4e7b
One pass through std.range and friends
...
* Made emplace faster and replaced calls to it to also make them faster.
* Replaced phobos.d in posix.mak with index.d.
* Added version=StdDdoc to documentation build in posix.mak, and replaced uses of D_Ddoc with it.
* Improved documentation target in posix.mak (target dir automatically created).
* Added nice documentation table and cheat sheet at the top of std.algorithm.
* Replaced a few helper structs in std.range and std.algorithm with local structs, which simplify matters a fair amount.
* Added more constraints to functions in std.algorithm (still work in progress).
* Improved error message in std.algorithm.sort in case of failure to sort.
* std.random.dice(1, 10) now works (no need for array notation std.random.dice([1, 10])).
* Fixed documentation bugs and insufficiencies in std.range (still more to do).
* Improved speed of walkLength.
* Simplified retro.
* Simplified and optimized stride. Also folded stride(stride(r, a), b) into stride(r, a * b).
* Added roundRobin to std.range, which as a perk simplified radial.
* Added takeOne and takeNone to std.range.
* Added unsigned to std.traits.
2011-02-27 12:38:49 -06:00
jmdavis
1a3c750902
Merge branch 'master' of https://github.com/kyllingstad/phobos into kyllingstad-master
2011-02-09 12:08:57 -08:00
Walter Bright
046e1b36db
add source links
2011-02-06 15:46:50 -08:00
Lars T. Kyllingstad
ee3c02bbf6
Merge branch 'issue2874' into bugfixes
2011-02-03 11:33:17 +01:00
Lars T. Kyllingstad
efcacab6ec
Issue 2874 - phobos docs issues
2011-02-03 11:29:57 +01:00
Lars T. Kyllingstad
3948e3f614
Fix special cases of take()
...
My earlier fix for issue 5052, "take!(Take!R) should return Take!R, not
Take!(Take!R)", broke David's fix for issue 4464, "std.range.take does
not always return Take!R". This commit should fix both issues.
The special case when typeof(R.opSlice()) != R is now also accounted
for.
2011-02-02 13:23:54 +01:00
David Nadlinger
c056bf2687
Augmented the unittests for Zip.
...
I assumed that zLongest was orginially intended to test the StoppingPolicy.longest case, even though it previously had requireSameLength.
2011-01-30 23:36:12 +01:00
David Nadlinger
9e26dcfc81
Fixed Zip.empty for StoppingPolicy.longest.
...
Previously, it would never return true.
Fixes 5506.
2011-01-30 23:34:07 +01:00
David Nadlinger
2866365a32
Cosmetic change to zip unittests.
...
This only untangles two sections, no functional changes.
2011-01-30 23:16:06 +01:00
Andrei Alexandrescu
b6aabf2044
Improvements to SortedRange; added several search strategies
2011-01-27 12:06:56 -06:00
Andrei Alexandrescu
b91689dcba
Short circuit type for takeExactly(takeExactly(r, n))
2011-01-24 22:16:26 -06:00
Andrei Alexandrescu
9e15909243
Fix for issue 5152
2011-01-22 23:56:12 +00:00
Andrei Alexandrescu
cf8815f542
Fix for issue 4994
2011-01-22 22:20:54 +00:00
Andrei Alexandrescu
f8d1c0e71b
Added findParts and takeExactly
2011-01-22 21:26:54 +00:00
Andrei Alexandrescu
331dd3a489
Moved split from string to array, made one more pass through array
2011-01-19 06:44:46 +00:00
Andrei Alexandrescu
cf33c1999a
Moved join from std.string to std.array, plus a few cosmetic changes
2011-01-17 20:43:54 +00:00
SHOO
cdc546892d
Retry Issue 5340
...
http://d.puremagic.com/issues/show_bug.cgi?id=5340
And added some unittest.
The changes of std.base64 are caused by char[] NOT being OutputRange.
is(R2 == char[]) && isOutputRange!(R2, char) always returns false.
2010-12-10 15:01:25 +00:00
SHOO
9d3ae0ad70
Revert.
...
Sorry, unittest was failure..
std\base64.d(404): Error: template std.base64.Base64Impl!('+','/').encode(R1,R2) if (isArray!(R1) && is(ElementType!(R1) : ubyte) && is(R2 == char[]) && isOutputRange!(R2,char)) does not match any function template declaration.
....
It seems to be necessary to check behavior of std.base64.
2010-12-10 11:44:55 +00:00
SHOO
28ed751472
Fixed: Issue 5340 - isOutputRange!(Appender!string, int) must be false
...
http://d.puremagic.com/issues/show_bug.cgi?id=5340
2010-12-10 11:24:36 +00:00
David Simcha
8331c70969
More 64 fixes for semantic errors that only show up when templates are instantiated via unittests. Now I'm actually serious about Phobos passing semantic analysis, except for a few modules due to weird druntime issues.
2010-11-10 05:25:50 +00:00
David Simcha
91bc314e2d
Fix a few minor, unlisted bugs in InputRangeObject.
2010-11-08 03:07:54 +00:00
Lars T. Kyllingstad
53275d8851
5052: take!(Take!R) should return Take!R, not Take!(Take!R)
2010-10-14 07:15:19 +00:00
Shin Fujishiro
3ec3fee75a
Ddoc: Fixed bug 4634 and some trivial doc isues in std.algorithm & range.
...
- Bug 4634: typo in levenshteinDistanceAndPath documentation
- Got rid of mentions of iterator-age begin(r)
- equal() not equals()
2010-10-13 05:40:03 +00:00
Shin Fujishiro
3c048ac456
Migration of tup.field[k] to tup[k].
...
Replaced ad-hoc 'is tuple?' checks with isTuple template.
The "this._cache" change in std.range is just a workaround for bug 5046.
2010-10-13 05:39:53 +00:00
David Simcha
1fd3b635c5
Bug 5035: Schrödinger's Stride
2010-10-13 00:18:02 +00:00
Andrei Alexandrescu
822a29cf89
unittest to avoid regression for bugzilla 3181
2010-09-27 01:22:14 +00:00
Andrei Alexandrescu
58b0b79703
Fix for bugzilla 2930
2010-09-26 22:28:31 +00:00
David Simcha
b597d23f83
Bug 4888: Heavy reliance on Bug 3534 in Phobos range usage. I used a different approach here than the first one I tried. I only did what was necessary to make Phobos work instead of trying to fix the deeper issue of making std.algorithm to work w/ const/immutable arrays.
2010-09-18 21:00:52 +00:00
David Simcha
ab60a7d7a1
Fix std.range.Zip.
2010-09-18 00:48:42 +00:00
David Simcha
5bc6e09d2b
Mitigate const issues in std.range. Everything except Zip now at least works with const/immutable arrays of primitives.
2010-09-18 00:34:20 +00:00
David Simcha
a1c63984cc
Fix debug code in SortedRange.
2010-09-17 04:06:56 +00:00
David Simcha
a0162ed834
Make SortedRange work with const/immutable arrays.
2010-09-17 00:32:28 +00:00
Andrei Alexandrescu
bf93b229c1
Replaced the random number generator with a cheaper one in SortedRange's constructor
2010-09-16 18:22:48 +00:00
Andrei Alexandrescu
627023c5d9
Fixed unlisted bug in SortedRange's constructor
2010-09-16 18:15:30 +00:00
David Simcha
72d6bf1217
Add back lowerBound, upperBound, canFindSorted, equalRange to std.algorithm, but with "scheduled for deprecaton" pragmas on instantiation.
2010-09-15 23:02:23 +00:00
David Simcha
f252d5e611
Support pointers to structs in std.range.put().
2010-09-15 22:41:50 +00:00
Andrei Alexandrescu
a92a8a9c4e
Fix for bugzilla 4861
2010-09-13 22:58:10 +00:00
David Simcha
ff0c2b3d3b
Support moveFront() and friends and assignable elements where possible.
2010-09-13 01:53:39 +00:00
Walter Bright
0b091d3eac
add Source link
2010-09-12 05:11:46 +00:00
David Simcha
89c9bf697d
Zip shouldn't require ranges to define moveFront and friends if elements don't have elaborate copy c'tors.
2010-09-12 04:46:48 +00:00
David Simcha
f7dbbfdedd
Assignable element support for Stride.
2010-09-12 04:08:40 +00:00
David Simcha
1015641e6f
Support assignable elements for Retro.
2010-09-12 03:49:13 +00:00
David Simcha
326760ef35
Iota should Unqual all its parameters to work w/ const/immutable since its parameters can't have indirection anyhow.
2010-09-09 20:46:37 +00:00
Andrei Alexandrescu
efb5c12066
Fixed Zip, added SortedRange
2010-09-08 13:19:58 +00:00
David Simcha
817dc10f95
Fix hasElaborateCopyConstructor and hasElaborateAssign to look at whole representation. Also make std.range use hasElaborateCopyConstructor instead of rolling its own.
2010-09-04 19:35:27 +00:00
David Simcha
6b799db785
Fix some trivial documentation issues from Bugzilla. No changes to actual code.
2010-09-03 23:28:05 +00:00
David Simcha
08cf0ed9c7
hasPostblit needs to transitively search subobjects.
2010-09-03 04:22:04 +00:00
Steven Schveighoffer
7e89201cda
Rewrote Appender to be safer and to not corrupt memory.
...
Fixed all places that use appender to use the safer interface.
bugzilla 4681: Appender access violation
2010-08-26 11:49:50 +00:00
David Simcha
6d5e623f26
InputRangeObject/OutputRangeObject
2010-08-22 18:46:09 +00:00
David Simcha
372641585f
Clean up std.range enforce vs. assert situation. Also, a few small fixes for bugs discovered while reading the code.
2010-08-22 14:51:36 +00:00