summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2019-04-17Add getAndPopFront()/getAndPopBack()Eugen Wissner
2019-04-16Add algorithm.iteration.foldlEugen Wissner
2019-04-15Build with -dip1000. Fix #85Eugen Wissner
2019-04-14Pass allocator in all HashTable/Set constructorsEugen Wissner
2019-04-05Make Array.get system functionEugen Wissner
.get() returns a memory block that can be changed if the original array is manipulated after getting the slice. So the slice returned by .get() may allow access to invalid memory.
2019-03-23In tanya.algorithm.iteration.take & retro preserve const/inout for ↵Nathan Sashihara
`empty`/`front`/etc.
2019-03-23Add DIP25 compatibility. Fix #83Eugen Wissner
2019-03-22Move memory/package.d into memory.allocatorEugen Wissner
2019-03-21Fix MmapPool private tests; move remaining testsEugen Wissner
2019-03-20algorithm: import searching publicallyEugen Wissner
2019-03-19net: Add missing public imports, move testsEugen Wissner
2019-03-19Separate non-documentation tests from the codeEugen Wissner
2019-03-17Move memory functions into memory.lifecycleEugen Wissner
- move - moveEmplace - forward - emplace - swap
2019-03-16Move memory exception into memory.lifecycleEugen Wissner
2019-03-05Make subpackages of os, sys and encodingEugen Wissner
2019-03-02Move meta into a separate subpackageEugen Wissner
2019-03-01net.ip.Address6.toString() recommended notationv0.16.0Eugen Wissner
Fix #65.
2019-02-25algorithm.iteration: Add singleton()Eugen Wissner
... iterating over a single value.
2019-02-24range.adapter: new arrayInserterEugen Wissner
2019-02-19format.sformat: Support range-based toString()Eugen Wissner
2019-02-16net.ip: Implement .toString() with output rangesEugen Wissner
2019-02-16range.adapter: Add container-range adapters. Fix #67Eugen Wissner
2019-02-12Use word-wise hash instead of FNV-1a for arrays of word-aligned scalarsNathan Sashihara
Also special case int-aligned scalars on 64-bit machines. On a 64-bit machine hashing an array of pointers is now ~5.95x faster with LDC2 and ~8.54x faster with DMD, and hashing an array of ints is ~3.34x faster with LDC2 and ~8.12x faster with DMD.
2019-02-12Add sformat() writing to an output rangeEugen Wissner
2019-02-06Deprecate InputRange source for OutputRangesEugen Wissner
An output range for E won't be automatically an output range for [E] anymore. The same, an output range for [E] won't be automatically an output range for E. Automatic E <-> [E] conversion seems to be a nice feature at first glance, but it causes much ambiguity. 1) If I want that my output range accepts only UTF-8 strings but not single characters (because it could be only part of a code point and look like broken UTF-8 without the remaining code units), I can't do it because an OutputRange(R, E) can't distinguish between char and string. 2) Here is an example from 2013: import std.range; import std.stdio; Appender!(const(char)[][]) app; put(app, "aasdf"); put(app, 'b'); writeln(app.data); This outputs: ["aasdf", "\0"]. Whether it is a common case or not, such code just shouldn't compile.
2019-02-04Deprecate put() as an OutputRange primitiveEugen Wissner
2019-02-01move(): Give compiler an opportunity to optimizev0.15.0Eugen Wissner
Fix #75.
2019-01-31typecons.Variant: Make public. Fix #73Eugen Wissner
2019-01-30typecons.Option: Deprecate alias thisEugen Wissner
2019-01-29typecons.Option: Fix assigning nothingEugen Wissner
2019-01-28meta.metafunction: Add Enumerate and EnumerateFromEugen Wissner
2019-01-27Call postblit when emplacing a struct. Fix #81Eugen Wissner
2019-01-25net.ip.Address: Address4/Address6 compatibilityEugen Wissner
2019-01-24net.ip: Add Address4 and Address6 wrapperEugen Wissner
2019-01-08retro supports slicing if source range supports slicingNathan Sashihara
2018-12-21Remove deprecated memory.op.cmp and Entropy classEugen Wissner
2018-12-18container.array: Fix assigning non-copyable valuesv0.14.0Eugen Wissner
Fix #59.
2018-11-24Make containers work with non-copyable elementsEugen Wissner
It is the first step. The containers can be at least created with non-copyable structs without compilation errors now. Fix #69.
2018-11-23Fix emplacing POD structsEugen Wissner
2018-11-19range.primitive: Support non copyable elementsEugen Wissner
... in all ranges.
2018-11-18Add test.stub. Fix #51Eugen Wissner
2018-11-13Disable length when taking from a lengthless rangeEugen Wissner
Fix #79.
2018-11-12Add algorithm.mutation.rotateEugen Wissner
2018-11-07Merge remote-tracking branch 'n8sh/take-slice'Eugen Wissner
2018-11-06Merge remote-tracking branch 'retro-retro'Eugen Wissner
2018-11-05take(take(range,...),n) is take(range, n) and use slicing in `take` like in ↵Nathan Sashihara
`takeExactly` Also take!R is the same as takeExactly!R when isInfinite!R.
2018-11-05retro(retro(range)) is rangeNathan Sashihara
2018-11-05Use inout in tanya.range.array functionsNathan Sashihara
This is to reduce distinct generated functions in final executable. Also add `scope` and `return` to function parameters.
2018-11-04Add range primitive sameHeadEugen Wissner
2018-10-30memory.op.equal: Fix parameter documentationEugen Wissner