Nathan Sashihara
4e8c9bd28f
Use new __traits(isZeroInit) to check for a null initializer at compile time instead of runtime
2018-10-21 18:52:02 -04:00
3b5709821a
Add algorithm.mutation.uninitializedFill
2018-10-20 10:42:01 +02:00
a04a04bb96
conv.emplace: Don't call a destructor
...
Don't call the destructor on uninitialized elements.
2018-10-14 11:30:02 +02:00
6d01680685
conv.emplace: Fix emplacing structs w/o this()
2018-10-08 17:51:59 +02:00
4f9927a8c3
Add algorithm.mutation.fill()
2018-10-06 16:00:08 +02:00
a8b18d7603
Deprecate Entropy (leaving platform sources alone)
...
Also introduces unavoidable breaking change in EntropySource interface:
poll() returns Option!ubyte instead of Nullable.
2018-10-05 13:23:57 +02:00
9364112690
net.ip: Parse embedded Ipv4. Fix #64
2018-10-03 20:49:14 +02:00
772e87739c
Replace memory.op.cmp with optimized equal version
...
Deprecate cmp.
Fix #68 .
2018-10-02 08:55:29 +02:00
2a90a812db
Add algorithm.searching.count
2018-09-30 15:25:10 +02:00
e68fcc3a38
Remove code deprecated in 0.11.2 and earlier
...
- conv.to!String
- meta.metafunction.Tuple
- range.adapter.take
- range.adapter.takeExactly
- range.primitive: put()-ting input range into an output one
2018-09-29 09:00:43 +02:00
c5eb2f27be
Add algorithm.iteration
2018-09-28 05:40:33 +02:00
fd133554f3
net.ip: Implement opCmp. Fix #63
2018-09-24 06:45:44 +02:00
9ac56c50f1
typecons: Add option constructor function
2018-09-23 06:59:41 +02:00
03b45ae441
Add typecons.tuple(), Tuple construction function
2018-09-22 07:32:30 +02:00
31d4f30a49
functional.forward: Fix template visibility bug
...
Because of the private template forwardOne, forward couldn't be used in
other modules. forwardOne cannot be a local template either since it
accepts an alias as its template parameter.
2018-09-21 06:23:59 +02:00
180c4d3956
typecons.Option: Implement toHash forwarder
2018-09-18 22:27:54 +02:00
b0dc7b59e5
Add predicate support for algorithm.comparison.equal
2018-09-17 19:17:39 +02:00
eb796e0ddf
Add bitmanip.BitFlags
2018-09-16 19:07:55 +02:00
e5569e5fea
meta.trait.EnumMembers: Fix one-member enums
...
Produce a tuple for an enum with only one member.
2018-09-15 06:06:17 +02:00
b831a05407
Introduce hash.lookup.isHashFunction trait
...
Fix #66 .
2018-09-14 15:16:08 +02:00
b6d1766d58
Implement compare algorithm. Fix #50
2018-09-11 10:05:15 +02:00
7f080831c5
Implement IPv6 parser, fix #49
2018-09-08 07:20:23 +02:00
94c7fd2231
Move range.adapter to algorithms + take() bugfixes
...
A lot of algorithms like lazy sort() can be also classified as adapters
since it wraps the original range and allows to access the elements of
the range in a particular order. The only reason why take() was in
range.adapter is that take() is trivial - it doesn't change the order of
elements but can turn an infinite range into finite one. This
distinction between trivial and non-trivial algorithms isn't absolutely
clear. So let us put all algorithms and any adapters that change the
range iteration in some way into "algorithm" package to avoid any
confusion later.
- range.adapter is renamed into algorithm.iteration
- range.adapter is deprecated
- Added missing imports for take() and takeExactly()
- takeExactly() doesn't wrap ranges that have slicing anymore
- Voldemort structs for take() takeExactly() are now static
2018-09-06 12:50:42 +02:00
5ba6d35a1b
Use fixed dscanner version
2018-09-03 09:55:19 +02:00
09f434f631
net.iface: Add indexToName
2018-09-02 10:00:52 +02:00
1f615301e5
memory.op: Add findNullTerminated
2018-09-02 08:27:26 +02:00
131675d0a8
Parse for the main part of an IPv6 address
2018-09-01 11:02:10 +02:00
aa12aa9014
Add module for network interfaces
2018-09-01 10:15:23 +02:00
41878cde50
Fix #60 : Copying overlapping array slices
2018-08-30 07:12:38 +02:00
0fc0aa23f7
Add constants and syscall for if_nametoindex
2018-08-28 20:39:45 +02:00
8ca88d1f01
net.ip.Address4: Reject malformed addresses
2018-08-22 06:51:20 +02:00
4653e94fa1
Merge remote-tracking branch 'n8sh/relax-hasher-reqs'
2018-08-12 06:17:12 +02:00
ba5833318b
conv: Fix taking out of range chars for hex values
2018-08-11 14:42:09 +02:00
918d8f5450
Deprecated putting an input into an output range
...
Use copy instead.
2018-08-10 15:34:07 +02:00
aa4ccddf47
Add net.ip. Fix #48
2018-08-07 22:27:09 +02:00
Nathan Sashihara
22cffe9d6e
Set: allow hasher to take arg by ref
2018-08-06 14:41:47 -04:00
abd286064b
Add algorithm.mutation.copy
2018-08-05 07:19:30 +02:00
b04928d2c8
net.inet: Import range.array as well
2018-08-03 16:52:34 +02:00
Nathan Sashihara
ceb8e6a113
Use identity hash for integers and pointers
...
This is appropriate because HashArray in tanya.container.entry uses
prime numbers instead of powers of 2 for its number of buckets so there
is no pitfall if the hashes are all multiples of some power of 2.
2018-08-02 12:37:02 -04:00
900a7172bf
Make format() public
...
Make format() public. Deprecate to!String.
2018-08-01 16:58:23 +02:00
fe0576a2d6
Fix format printing only the first argument
2018-07-29 12:51:38 +02:00
a5b84deca7
format: Add errol3 lookup
2018-07-28 13:52:59 +02:00
24056d53c5
network.socket.Linger.enabled: Add return type
...
network.socket.Linger.enabled: Add missing return type (void).
2018-07-25 05:40:49 +02:00
d62f29abd1
Rename meta.metafunction.Tuple into Pack
...
typecons.Tuples and meta.metafunction.Tuples are often used together,
from the same module. So it is reasonable give them different names.
2018-07-24 20:16:21 +02:00
f2eb99bab0
Format fixed-point numbers
2018-07-22 15:28:17 +02:00
531cae51a3
Stringish to integral type conversion. Fix #44
2018-07-18 06:33:45 +02:00
1b203507f6
conv: Fix overflow hanndling in readIntegral
2018-07-17 16:03:05 +02:00
99e06e0d04
format: Support text in the format string
...
Fix #25 .
2018-07-14 19:09:21 +02:00
5865e355cd
Fix EV_SET 0 length on 32-bit BSD
2018-07-08 12:54:47 +02:00
a94b1b0af4
Add functional module. Fix #52
2018-07-07 12:17:59 +02:00
3df4eb6259
Don't check UTF-8 correctness when inserting chars
...
- Fix bug when inserting char ranges that are not arrays
- Optimize insertion from the String own range
- Assume char and char ranges are correclty encoded (as it actually
should be) and don't throw an exception. This should make the most
common use cases nothrow (Fix #19 ). Dchars and Wchars are still encoded
because they should be converted to UTF-8 before inserting anyway.
2018-07-06 05:36:13 +02:00
a332d727af
Implement errol2 for floating point formatting
...
Handles whole floating point numbers in the range between 2^54 and 2^131.
2018-07-02 10:47:05 +02:00
8241943a58
Add uint128 tailored for errol2 computations
2018-07-02 10:26:45 +02:00
d54e06f43c
Iterate hash table by key or by value
2018-06-29 20:43:05 +02:00
5e901f505c
Make HashTable work complex types as key
...
- Add toHash() function for String
- The key type shouldn't match exact for a lookup.
The key type and lookup key type should be comparable.
- Move elements when inserting if passed by value.
2018-06-28 12:14:45 +02:00
533fa3b023
container.HashTable: Fix infinite rehashing when inserting
...
Fix #53 .
2018-06-27 05:45:53 +02:00
adf2d8b689
Add Option to typecons
...
Fix #47 .
2018-06-26 04:25:32 +02:00
74ece7ddf4
Replace floating pointer formatter with errol1
2018-06-23 16:21:19 +02:00
411e45ec5c
Remove functions deprecated in 0.9.0
2018-06-22 07:11:56 +02:00
f51e9405c9
Update socket documentation
2018-06-20 07:59:37 +02:00
de15281ccb
Tuple with more than two fields
...
Fix #41 .
2018-06-19 05:44:15 +02:00
a86b6690f0
Implement auto-decoding free equal comparison
...
Fix #39 .
2018-06-12 20:19:06 +02:00
15f7994187
Add takeExactly
...
Fix #43 .
2018-06-10 19:03:26 +02:00
37b0afe290
take: Remove moveFront, moveBack, moveAt
2018-06-10 14:46:40 +02:00
cd9960db2a
Add take range adapter
2018-06-10 14:46:40 +02:00
173ae115ee
readIntegral: Support base between 2 and 36
2018-06-08 21:05:35 +02:00
7561b964d3
Make intToString -> readString more generic
...
Make readString work with any char range and unsigned integral type.
2018-06-07 07:23:39 +02:00
c663703221
container.list: Remove deprecated list length property
2018-06-01 14:13:27 +02:00
58af2fd89b
encoding.ascii: Make static const data immutable
2018-05-31 18:43:35 +02:00
52ec88bd04
async: Annotate system tests
2018-05-31 18:43:21 +02:00
bfe0748a63
Insert a range into the hash table and set
2018-05-30 18:50:52 +02:00
61814d5383
Make an independent function for converting port string
2018-05-23 05:10:44 +02:00
c268696ee9
HashTable/Set: Add proper assignment
2018-05-20 21:58:15 +02:00
9efbc9d5e0
Make Array postblit safe if possible
2018-05-18 07:43:18 +02:00
c511b97b1b
container.Set and HashTable: Fix constructors
2018-05-17 05:31:14 +02:00
385ec19e2f
hash.lookup: Reformat the docs
2018-05-17 05:30:49 +02:00
205d7a080e
Add KeyValue alias for value tuple
2018-05-14 21:55:49 +02:00
d545d6900e
Make HashTable Range return Pair
2018-05-14 19:23:22 +02:00
3ed46117d1
Port Set ranges for HashTable
2018-05-14 19:23:22 +02:00
00dbb224f7
Move length tracking to HashArray
2018-05-14 19:23:22 +02:00
9cf1b6f491
Use HashArray as internal storage
2018-05-14 19:23:22 +02:00
bdce5cda6a
Add HashTable container
2018-05-14 19:23:22 +02:00
faf952b30e
Rename Pair to Tuple
2018-05-12 06:11:24 +02:00
53620cdddf
Improve preconditions for the container.Set
2018-05-11 05:43:14 +02:00
2ec750ca05
Fix math.nbtheory linkage to asm
...
Don't use extern for templated functions. If the function argument is
const, it gets a different mangling. So define a private function for
each floatint point length and call it from template.
2018-05-08 18:07:42 +02:00
6ed2992862
Remove unused variables
2018-05-06 07:03:11 +02:00
5c8c0ce4d8
Add dmd 2.080.0 support
2018-05-05 05:22:04 +02:00
cd1a38f402
Move Smallest and Largest to meta.transform
...
Smallest and Largest choose the smallest or largest (according to
.sizeof property) type in the list of types. These templates get a list
of types and produce a type, so they are transformations.
2018-05-02 15:50:28 +02:00
4f6ce116bc
Add documented tests for Set.empty and Set.clear()
2018-05-01 15:56:07 +02:00
c4424e7e01
Track hash Set length
...
Can be used later to rehash the hash table if it is full up to some
percentage.
2018-04-30 12:51:35 +02:00
18d54b4b18
HashArray as an internal store for hash containers
2018-04-29 09:12:48 +02:00
36646aa2c4
container.Set: Rewrite arch dependent tests
2018-04-28 18:07:41 +02:00
702d1b02e0
Make allocator getter public
2018-04-28 17:57:07 +02:00
8733b93ca0
container.Set: Support customizable hasher
2018-04-28 17:49:49 +02:00
55c36d22a0
Make isType public
2018-04-27 11:32:41 +02:00
6e2852000b
Deprecate math.min/max in favour of tanya.algorithm
2018-04-27 11:32:22 +02:00
c0f9e5be10
Replace std min/max. Fix #35
2018-04-26 10:23:06 +02:00
3468d6ea00
Accept/return as inout in min/max
2018-04-26 08:06:06 +02:00
ed5fa91e64
Merge remote-tracking branch 'origin/master' into feature/min_max
2018-04-25 15:13:03 +02:00
2185a70ac8
Fix #33
2018-04-25 13:09:34 +02:00