938a1bb5b4
Replace short preconditions in the main package
2021-05-25 09:03:00 +02:00
b62cbb0647
Use std searching and iteration
2021-05-16 07:52:46 +02:00
2c21dc3429
Replace the ascii module with std.ascii
2021-05-15 13:31:47 +02:00
f0d8c616bb
Replace outdated import in the documentation
2021-04-15 09:38:59 +02:00
92284c8541
Replace Option with Nullable
2021-03-27 10:28:49 +01:00
0fcc83d00e
Remove the sys package
2021-03-12 08:48:35 +01:00
f27f62b80a
Fix InputRanges for non-copyable elements
2021-03-11 10:18:02 +01:00
a227b58407
Remove deprecated functionality
2020-05-06 07:08:14 +02:00
3ce5e8153c
Update copyrights
2020-05-05 07:46:10 +02:00
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