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
David Simcha
63c6e670a9
Fix boundary case bug in stride slicing.
2010-08-22 14:24:10 +00:00
David Simcha
82bcaca481
Clean up std.range.Take a little, properly handle ref return stuff.
2010-08-21 19:41:02 +00:00
David Simcha
9471b3f525
Default moveBack, moveAt implementations for elements w/o postblit. This was fixed a long time ago for moveFront.
2010-08-20 04:41:28 +00:00
David Simcha
b6ab569a4a
Lockstep opApply should take a scope delegate.
2010-08-20 00:40:16 +00:00
David Simcha
9b7cb69f99
More infiniteness propagation for std.range, remove faulty assumption that infinite ranges don't have ref return in Zip.
2010-08-20 00:34:30 +00:00
David Simcha
b4798c3f34
Bug 4603: array(iota(1, 0)) error
2010-08-20 00:06:06 +00:00
David Simcha
a95bb745ee
One more Lockstep issue: _ranges should be shallow copied for consistency with regular foreach.
2010-08-19 04:58:37 +00:00
David Simcha
98f98a744e
Optimize Lockstep and work around some compiler bugs.
2010-08-19 03:44:24 +00:00
David Simcha
096ddcad2a
Fix a few silly mistakes in std.range. Also, add self as author, as I feel I've earned it.
2010-08-17 02:30:45 +00:00
David Simcha
c03041e5fd
Clean up std.range.chain, fix several unlisted bugs and make the code more readable.
2010-08-17 02:26:46 +00:00
David Simcha
3235b577a7
Bug 3877: std.range.chain do not manage infinite ranges correctly
2010-08-17 00:50:06 +00:00
David Simcha
abb54f279c
Lockstep StoppingPolicy should be a runtime arg, not a compile time one.
2010-08-16 03:31:59 +00:00
David Simcha
0318457f7c
Two related bugs: 3123: std.algorithm.zip fails on 'lazy' ranges ,
...
4402: std.range.Zip doesn't work w/ non-lvalue ranges.
2010-08-16 02:55:02 +00:00
David Simcha
c4cdd64f14
Add index variable support to Lockstep, since it ended up being trivial.
2010-08-16 00:14:26 +00:00
David Simcha
e8c0c8e5f2
Fix for small bug in single-range Lockstep.
2010-08-15 21:59:28 +00:00
David Simcha
2141dbf2fe
Added Lockstep, hasLvalueElements.
2010-08-15 21:26:26 +00:00
David Simcha
1ec079b80a
save() methods.
2010-08-15 03:28:19 +00:00
David Simcha
80b0054b9a
Bug 4388: std.range.Radial assumes lvalue elements
2010-08-15 03:20:12 +00:00
David Simcha
ff8e358ad3
Bug 4345: std.range.take!string: "Nonsensical finite range with slicing but no length"
2010-08-15 02:17:30 +00:00
David Simcha
cd9ee04a63
Bug 4464: std.range.take does not always return Take!R
2010-08-15 01:48:04 +00:00
David Simcha
e2067aa2db
Slicing support for Transversal, FrontTransversal.
2010-08-14 23:33:26 +00:00
David Simcha
11769b66af
Slicing support for Stride.
2010-08-14 22:22:50 +00:00
David Simcha
693f31ac5a
Bug 3894: std.range.Stride!R requires R.front() and R.back() to return by reference
2010-08-14 22:04:21 +00:00
David Simcha
1fc2c40d9c
Better implementation of slicing in light of recent bug fix.
2010-08-14 20:14:02 +00:00
David Simcha
27e9afcb86
Unlisted Bug: std.range.iota() random access primitives inconsistent after popFront on floating point version
2010-08-14 18:32:58 +00:00
David Simcha
de899c64a1
Slicing for Iota.
2010-08-14 15:19:17 +00:00
David Simcha
81b248dd85
Bug 4403: std.range.FrontTransversal assumes lvalue elements
2010-08-13 03:12:08 +00:00
David Simcha
64b45ee4ee
Bug 4404: std.range.Transversal assumes lvalue elements
2010-08-13 03:05:49 +00:00
David Simcha
687ae12600
Bug 4387: std.range.Cycle assumes lvalue elements.
2010-08-13 02:39:07 +00:00
SHOO
06f0bbd521
unittest and changelog for r1809
2010-08-06 08:45:09 +00:00
SHOO
ce5e6d2562
Bugzilla 4570: ElementType!(void[]) shows error message.
...
Fixed.
2010-08-05 14:16:28 +00:00
Andrei Alexandrescu
51690bb826
Improved retro
2010-07-28 08:03:04 +00:00
Andrei Alexandrescu
39739033b2
put(R, E) definition and fix for bugzilla 4456
2010-07-14 01:16:18 +00:00
Andrei Alexandrescu
a98c020493
Changed definition of isOutputRange and introduced universal function put(R, E) that puts an element in an output range.
2010-07-12 00:50:32 +00:00
Andrei Alexandrescu
723a603369
Changed definition of isOutputRange and also added the free function put that effects outputting stuff to such a range.
2010-07-09 04:18:41 +00:00
Andrei Alexandrescu
432e3fdfc8
Replaced std.contracts with std.exception throughout
2010-07-04 22:09:03 +00:00
Andrei Alexandrescu
11cc1f0f9b
License format change
2010-07-04 21:45:22 +00:00
David Simcha
09962831b2
More higher order range testing improvements.
2010-07-03 21:42:27 +00:00
David Simcha
93032c1da8
@property cleanup for std.range.
2010-07-01 02:51:24 +00:00
David Simcha
619beee74d
Improve unittests for higher order ranges in std.algorithm, fix some unlisted bugs.
2010-06-30 02:30:26 +00:00
David Simcha
f92cbf1534
More unittest improvements for std.range. Most of them are commented out b/c they don't work yet, but fixing them sanely is blocked by DMD bug 3294.
2010-06-29 02:58:31 +00:00
David Simcha
d179c32f17
More unittest improvements and wholesale fixing/cleanup for std.range.
2010-06-25 03:06:54 +00:00
David Simcha
be680b9b08
Start improving std.range unittests. Lots of bugs found already.
2010-06-24 00:38:40 +00:00
Andrei Alexandrescu
59a55d66fd
Fixed bugzilla 3839
2010-06-23 15:50:01 +00:00
David Simcha
d6cefbcf7e
Fix unittests in std.range.
2010-06-23 13:07:31 +00:00
Lars T. Kyllingstad
80974fc70e
Fixed unlisted bug: std.range.cycle() doesn't work with infinite ranges.
...
It was attempted to use the eponymous template trick inside a templated struct, like this:
struct Cycle(R)
{
static if (isInfinite!R) alias R Cycle;
...
}
but of course that doesn't work. I've written the isInfinite case as a separate template instead, and added a unittest for it.
2010-06-23 08:53:42 +00:00