Commit graph

415 commits

Author SHA1 Message Date
monarch dodra
b3fa35ae73 Merge pull request #1566 from tom-tan/fix-array-rangeprimitives-for-array
Fix the range primitives for array in std.array
2013-09-14 13:48:18 -07:00
Tomoya Tanjo
ae9ffd7b48 Fix unittest for std.array.overlap 2013-09-14 12:42:20 +09:00
Tomoya Tanjo
1d711cae88 Fix the range primitives for array in std.array 2013-09-14 12:27:15 +09:00
Tomoya Tanjo
5939a04e8c Fix unittest for std.array.assocArray 2013-09-14 11:30:22 +09:00
Tomoya Tanjo
e0f27b6d53 Change unittest block to version(unittest) block 2013-09-14 11:24:16 +09:00
monarch dodra
67e2f0055b Merge pull request #1562 from tom-tan/fix-unittest-array-array
Fix a unittest for std.array.array
2013-09-11 08:35:55 -07:00
Tomoya Tanjo
d3319ae38d Use documented unittest for std.array.uninitializedArray 2013-09-11 21:42:29 +09:00
Tomoya Tanjo
ba9052bf00 Fix a unittest for std.array.array 2013-09-11 21:19:48 +09:00
monarch dodra
01a2bdb02e Merge pull request #1535 from blackwhale/fix-lambda
Sidestep issue 10928
2013-09-01 01:13:44 -07:00
monarch dodra
aa3b13ce49 Merge pull request #1328 from 9rnsr/fix10230
Issue 10230 - Duplicated buttons for runnable examples
2013-08-31 02:50:17 -07:00
monarchdodra
8a50b18c3c tweak appender, add unittests for not-yet covered paths 2013-08-31 10:57:21 +02:00
Dmitry Olshansky
8d50d807be sidestep issue 10928 2013-08-30 22:56:38 +04:00
monarchdodra
81bf0aa570 More unittest for appender 2013-08-30 10:53:51 +02:00
monarchdodra
819da05056 Fix appender form elaborate assign types 2013-08-28 15:12:22 +02:00
monarchdodra
5180850e25 New opAssign unittests in std.array.array 2013-08-28 11:38:12 +02:00
monarchdodra
cc669ef384 Move newCapacity outside of Appender 2013-08-11 19:26:38 +02:00
unknown
bf23d80a4b Fix issue with Appender.reserver 2013-08-11 19:26:38 +02:00
monarch dodra
0b8302b68d Improve Appender growth scheme. 2013-08-11 19:26:38 +02:00
monarch dodra
9103d642a7 Merge pull request #1425 from tom-tan/safe-array-array
Make std.array.array @safe if possible
2013-08-06 08:10:47 -07:00
Tomoya Tanjo
fc3414d18f Fix for array.array 2013-08-04 12:16:19 +09:00
Tomoya Tanjo
f4002a5a63 Fix array.array 2013-08-03 22:21:37 +09:00
Tomoya Tanjo
9760ee864a Fix unittests 2013-08-03 20:43:10 +09:00
Tomoya Tanjo
b059f51751 Update unittests 2013-08-03 20:16:46 +09:00
Tomoya Tanjo
f6b41a55eb Fix array to make it surely safe for some cases 2013-08-03 20:03:01 +09:00
Tomoya Tanjo
1f016bbcc0 Some fixes according to the comments by @ monarchdodra 2013-07-23 23:37:14 +09:00
Tomoya Tanjo
c5218dd33b Fix the arguments of sameTail and make sameHead and sameTail @safe 2013-07-22 21:48:35 +09:00
Tomoya Tanjo
4581999a3c Make std.array.array @safe if possible 2013-07-20 17:17:19 +09:00
k-hara
87bd3315db fix Issue 10230 - Duplicated buttons for runnable examples 2013-07-16 00:45:48 +09:00
k-hara
a4d71338f9 [appender] Mark pointer slicing @trusted (fix for issue 10359) 2013-06-20 11:13:52 +09:00
k-hara
9cdfd6899a [appender] Determine @trusted operations 2013-06-20 10:54:37 +09:00
k-hara
99d22b80f6 [appender] Accepting qualified buffer is not safe behavior
To reduce existing code breaking, mark such construction as @system.
2013-06-20 10:54:35 +09:00
k-hara
41098e3f49 [appender] Reuse ensureAddable for reserve implementation
AFAICS, they have mostly same code.
2013-06-20 10:54:33 +09:00
k-hara
ed03c4af01 Fix trivial nitpicks 2013-06-20 10:54:20 +09:00
Denis Shelomovskij
51a5bad3e6 Improve Issue 10220 fix.
Improves pull #1329.

Issue URL: http://d.puremagic.com/issues/show_bug.cgi?id=10220
2013-06-05 18:43:47 +04:00
k-hara
924232603a fix Issue 10220 - array doesn't work with disabled default construction 2013-06-02 02:32:53 +09:00
k-hara
e2d991b005 Move checkCTFEable to std.exception.assertCTFEable, and use it 2013-06-02 02:32:24 +09:00
Dylan Knutson
5294809f53 fix for calling .array() on ranges in CTFE 2013-05-25 23:46:51 -07:00
k-hara
fa3c481ba7 fix Issue 10122 - Appender doesn't work with disabled default construction 2013-05-21 00:14:00 +09:00
k-hara
8083744164 [Trivial] fix code style 2013-05-20 22:40:44 +09:00
Ferdinand Majerech
b8d98efd2d DDoc (minor): array.d: Appender.shrinkTo throws Exception
Specified that Exception gets thrown (the previous ddoc didn't make sense).
2013-04-20 15:22:56 +03:00
k-hara
53640bf046 fix Issue 9836 - std.array.popFront does not work with alias this.
empty, front, popFront, back, popBack should work with alias this type.
2013-04-05 22:33:05 +09:00
Vladimir Panteleev
0b1f86119a std.array: Fix inefficient appending of const(char)[] (Issue 9725) 2013-03-15 04:40:14 +00:00
Andrej Mitrovic
92b7d19000 Fixes Issue 4287 - Implement concat-assign operator for Appender. 2013-02-07 18:49:53 +01:00
Andrej Mitrovic
10745625bc Detab std.array. 2013-02-07 18:49:01 +01:00
Peter Alexander
9d8c78d180 Changed foreach to for to avoid copies + cleanup 2012-12-30 17:15:09 +00:00
Peter Alexander
d24519ee47 More improvements and optimisations to array.join 2012-12-28 17:29:43 +00:00
Peter Alexander
83cf1854db Fix for non-array separators for non-string RoR. 2012-12-27 17:57:29 +00:00
Peter Alexander
221ea836fa Convert sep to array for performance/generality. 2012-12-27 16:38:26 +00:00
Peter Alexander
b6c9ffed91 Fix for mismatched string types + added unittests. 2012-12-27 02:06:06 +00:00
Peter Alexander
ceda4e2880 std.array.join refactor.
tl;dr: std.array.join was quite complicated: 6 implementation functions, and a few hundred lines of code. Now it is just 2 functions, ~120 lines of code smaller, and within 10% performance of original (faster in some cases).

The original had 6 implementations: 3 joins with a separator, 3 without. For each, those 3 consisted of:
* A general slow version (uses `std.algorithm.joiner` with `appender`).
* A version for a range of arrays where you know the length (pre-allocates the destination array then uses array ops).
* A version for a range of arrays where you don't know the length (uses `appender`).

There's no need for the second version because you can just use appender and `.reserve` the size upfront. Appender already uses array ops when available in its `put` function.

There's also no need for the first function because using `joiner` is slower than just looping through the sub-ranges, appending them. The third function doesn't even use the fact that its operating on a range of arrays, so it can easily be merged with the first and second.

The end result is just one function for join with a separator, and one for a join without. They both use `appender`, and have a static branch that will `.reserve` the required size when the information is available.
2012-12-26 18:46:22 +00:00