c68b8d1bdd
Update compiler, remove deprecated modules
2020-05-04 06:03:45 +02:00
048939410c
Deprecate Integer and isPseudoprime()
2019-09-03 09:13:29 +02:00
c69282a8df
Work around 2.086 bugs
2019-08-28 20:50:15 +02:00
0a973b46ba
Add algorithm.iteration.foldr
2019-04-24 06:53:08 +02:00
Nathan Sashihara
b2a1a849f8
Ensure getAndPopFront/getAndPopBack don't promote system
to safe
2019-04-19 09:34:30 -04:00
76bda0ac8d
Add getAndPopFront()/getAndPopBack()
2019-04-17 06:27:18 +02:00
f214f3baa2
Add algorithm.iteration.foldl
2019-04-16 07:20:52 +02:00
f66935f40d
Build with -dip1000. Fix #85
2019-04-15 07:05:56 +02:00
9814e5ad8e
Pass allocator in all HashTable/Set constructors
2019-04-14 09:07:22 +02:00
e6c6a2d21a
Make Array.get system function
...
.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-04-05 08:58:22 +02:00
Nathan Sashihara
10afe47bae
In tanya.algorithm.iteration.take & retro preserve const/inout for empty
/front
/etc.
2019-03-23 23:41:20 -04:00
76f2cd7080
Add DIP25 compatibility. Fix #83
2019-03-23 06:42:50 +01:00
ad46afb10b
Move memory/package.d into memory.allocator
2019-03-22 08:18:01 +01:00
a36b51f0c3
Fix MmapPool private tests; move remaining tests
2019-03-21 14:54:16 +01:00
0fe7308a22
algorithm: import searching publically
2019-03-20 07:30:47 +01:00
20c7e47ff7
net: Add missing public imports, move tests
2019-03-19 08:47:39 +01:00
484cb13317
Separate non-documentation tests from the code
2019-03-19 07:45:52 +01:00
5ab99cf887
Move memory functions into memory.lifecycle
...
- move
- moveEmplace
- forward
- emplace
- swap
2019-03-17 10:56:44 +01:00
85d7a2b9ca
Move memory exception into memory.lifecycle
2019-03-16 10:35:28 +01:00
b458c6a380
Make subpackages of os, sys and encoding
2019-03-05 20:47:02 +01:00
5b850d532e
Move meta into a separate subpackage
2019-03-02 08:08:10 +01:00
d7dfa3f6f1
net.ip.Address6.toString() recommended notation
...
Fix #65 .
2019-03-01 08:28:36 +01:00
8fd0452cd0
algorithm.iteration: Add singleton()
...
... iterating over a single value.
2019-02-25 09:27:03 +01:00
df99ea45f2
range.adapter: new arrayInserter
2019-02-24 13:14:30 +01:00
87ba58098e
format.sformat: Support range-based toString()
2019-02-19 06:39:39 +01:00
5a134ce768
net.ip: Implement .toString() with output ranges
2019-02-16 08:37:45 +01:00
0835edce1d
range.adapter: Add container-range adapters. Fix #67
2019-02-16 08:36:50 +01:00
Nathan Sashihara
a786bdbec5
Use word-wise hash instead of FNV-1a for arrays of word-aligned scalars
...
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-12 10:34:18 -05:00
0bef2ef76d
Add sformat() writing to an output range
2019-02-12 07:37:24 +01:00
0c8f1eb4ce
Deprecate InputRange source for OutputRanges
...
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-06 07:26:28 +01:00
bf197a6554
Deprecate put() as an OutputRange primitive
2019-02-04 10:49:12 +01:00
7af5c30820
move(): Give compiler an opportunity to optimize
...
Fix #75 .
2019-02-01 06:33:41 +01:00
c1535e8752
typecons.Variant: Make public. Fix #73
2019-01-31 06:33:19 +01:00
5453f6417f
typecons.Option: Deprecate alias this
2019-01-30 06:58:02 +01:00
410b865df9
typecons.Option: Fix assigning nothing
2019-01-29 08:24:58 +01:00
4566cf7857
meta.metafunction: Add Enumerate and EnumerateFrom
2019-01-28 08:30:54 +01:00
0a2798cc96
Call postblit when emplacing a struct. Fix #81
2019-01-27 07:18:53 +01:00
a505a033ab
net.ip.Address: Address4/Address6 compatibility
2019-01-25 13:07:32 +01:00
1f02ba5042
net.ip: Add Address4 and Address6 wrapper
2019-01-24 07:14:15 +01:00
Nathan Sashihara
ff7d20f167
retro supports slicing if source range supports slicing
2019-01-08 20:19:53 -05:00
03e21d4368
Remove deprecated memory.op.cmp and Entropy class
2018-12-21 20:05:23 +01:00
c293c6c809
container.array: Fix assigning non-copyable values
...
Fix #59 .
2018-12-18 05:37:52 +01:00
49d7452b33
Make containers work with non-copyable elements
...
It is the first step. The containers can be at least created with
non-copyable structs without compilation errors now.
Fix #69 .
2018-11-24 06:25:55 +01:00
884dc30953
Fix emplacing POD structs
2018-11-23 13:36:31 +01:00
e67a05138e
range.primitive: Support non copyable elements
...
... in all ranges.
2018-11-19 21:37:58 +01:00
7585bf59e7
Add test.stub. Fix #51
2018-11-18 06:32:10 +01:00
0a121d9d19
Disable length when taking from a lengthless range
...
Fix #79 .
2018-11-13 08:29:51 +01:00
9e6f5c3105
Add algorithm.mutation.rotate
2018-11-12 07:54:52 +01:00
3c8f6e3435
Merge remote-tracking branch 'n8sh/take-slice'
2018-11-07 07:08:52 +01:00
ee8b7ef719
Merge remote-tracking branch 'retro-retro'
2018-11-06 16:59:57 +01:00