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
b94da1f58a
Replace SocketError with ErrorCode.ErrorNo
2018-04-25 12:59:38 +02:00
3f9b500e20
Add CommonType
2018-04-24 15:45:47 +02:00
86053de8c9
Add min/max algorithms
2018-04-22 12:08:33 +02:00
e8222123e6
Use syscall instead of mmap and munmap
2018-04-22 08:07:20 +02:00
5cac28c093
Add new comparison traits
...
- allSameType
- isEqualityComparable
- isOrderingComparable
2018-04-21 06:38:32 +02:00
5e40424f7d
net.inet: Replace CTFE-pow with pow operator
2018-04-20 15:15:00 +02:00
964a7af32f
Fix list assertions for release build
2018-04-18 14:23:12 +02:00
40c961867e
Remove deprecated traits and queue
2018-04-18 06:34:28 +02:00
3fee712c6c
Implement DList.popFirstOf and DList.popLastOf
...
Fix #37 .
2018-04-17 14:46:12 +02:00
012c2d4c18
Remove support for dmd 2.076.1
2018-04-15 06:50:37 +02:00
d267a9cc64
Implement SList.popFirstOf
...
Fix #36 .
Slicing for the SList on top of the existing SRange would be inefficent.
There would be two cases:
- Range iterates till the end of the list.
- Range iterates till some element "end".
If both cases are implemented in the same range, this range should check
for both conditions (end of the list and "begin == end") instead of only
one (end of the list).
Introducing a different range is undesirable since all containers have
currently only one range.
2018-04-14 16:15:35 +02:00
d157e88b7a
Fix import order in math.random
2018-04-08 05:59:14 +02:00
d5064fa2b2
Add missing tail isn't null assertion
2018-04-07 19:20:08 +02:00
f15a90543f
Remove support for moveFront/moveBack/moveAt
...
Range elements are movable (mobile) if they are returned by reference
and can be moved or if the elements doesn't define an elaborate postblit
constructor. Allowing to define custom moveFront/moveBack/moveAt makes
the range definition more complex (particulary writing range adapters)
without a good reason.
2018-04-03 21:44:50 +02:00
a0ac8355f9
Fix #29
2018-04-01 10:34:18 +02:00
9b1f72472f
Deprecate SList.length and DList.length
...
As they have O(n) complexity. The lists length is unknown without
iterating.
2018-03-31 08:21:15 +02:00
af45de842e
Take MmapPool from the standard builds
2018-03-29 16:54:56 +02:00
792d289541
range.primitive: Add missing rparen to the docs
2018-03-27 05:19:14 +02:00
92f21a95cf
Add hashing pointers
2018-03-27 05:18:46 +02:00
72140a8583
Add documentation for the hash function
2018-03-27 05:09:44 +02:00
442fa5b46a
Fix hashing scalar types
2018-03-27 05:09:22 +02:00
0d6d8f6a91
Add hash combining for ranges
2018-03-27 05:09:09 +02:00
cefc4e24b5
Add FNV-1a test vectors
2018-03-27 05:08:55 +02:00
1adc4cd868
Add hash.lookup module
2018-03-27 05:08:28 +02:00
8faccbada4
Deprecate meta.trait.hasMember
2018-03-26 20:38:57 +02:00
9fb043ba65
Fix typeof(null) being a pointer for isPointer
2018-03-25 09:19:35 +02:00
162db622ea
Add assignable-, lvalue- and swappable checks
...
... for ranges.
Also adds "put" for the output ranges.
Fix #34 .
2018-03-23 08:49:24 +01:00
a7c1e642e9
Implement moveFront, moveBack, moveAt
...
... and hasMobileElements.
2018-03-22 10:44:58 +01:00
7829b1fe06
Remove static std.range import
2018-03-22 10:44:52 +01:00
cb742eec82
meta.trait: Deprecate one-liner
...
These one-liners are useful for meta-programming but they can be easely
implemented. It isn't possible to implement all possible variants in a
generic library, so it is better they are defined in the user code.
Deprecated traits:
- isPOD
- sizeOf
- alignOf
- isSame
- isTemplate
- isInterface
- isClass
- isStruct
- isEnum
2018-03-21 10:10:55 +01:00
341068488d
meta.trait: Make unittest structs static
2018-03-21 10:04:05 +01:00
9b0bc77b7a
async: Remove unused imports
2018-03-21 08:30:47 +01:00
c9e4871fb5
algorithm.mutation: Fix param name in the docs
2018-03-21 08:15:58 +01:00
1f4ab88254
typecons.Pair: Add better documentation unittests
2018-03-21 08:14:52 +01:00
7af5b4db72
metafunction: Make Set and Tuple to structs
...
It allows to use alias this to access the elements by index.
2018-03-20 17:20:13 +01:00
629071f934
Add information that DList can be used as a queue
2018-03-10 07:17:43 +01:00
17cb592b13
Replace Queue with DList
2018-03-09 08:19:17 +01:00
82f41844b1
container.list: Document front/back preconditions
2018-03-09 08:00:28 +01:00
8fa033a49f
Fix #32
2018-03-09 05:27:32 +01:00
e77a499fa2
Annotate typecons unittests
2018-03-07 06:52:35 +01:00
54bcec216e
Deprecate MmapPool for the standard build
...
Mallocator is the default allocator now and should be used instead.
2018-03-06 05:29:15 +01:00
fbbdb36853
Use defaultAllocator in the async
...
Instead of hard-coded MmapPool.
2018-03-05 17:42:44 +01:00
b795267e75
Rename ErrorCode.text() to toString()
2018-03-04 10:43:24 +01:00
81cbb96d45
Merge remote-tracking branch 'n8sh/isRandomAccessRange-definition'
2018-03-04 09:29:09 +01:00
Nathan Sashihara
467335460e
Decouple isRandomAccessRange from isForwardRange and isBidirectionalRange
2018-03-04 03:02:18 -05:00
16c5fa12df
Implement Error.text()
...
Error.text() returns an error description.
2018-03-02 06:48:03 +01:00
9bf8754711
Fix setting new head/tail after removing in DList
2018-02-26 08:09:14 +01:00
760cea163d
Add a workaround for dmd 2.076.1 on OSX
2018-02-25 21:33:29 +01:00
03c40ecace
Fix removing all elements from DList
2018-02-25 18:25:19 +01:00
9c70e9a058
Annotate list unittests
2018-02-25 15:42:32 +01:00
5ae20512af
Fix inserting before/after a range into the string
2018-02-25 12:53:42 +01:00
d30de300d6
Fix slicing a null pointer when deallocating
2018-02-25 11:09:57 +01:00