Commit Graph

642 Commits

Author SHA1 Message Date
Eugen Wissner c511b97b1b container.Set and HashTable: Fix constructors 2018-05-17 05:31:14 +02:00
Eugen Wissner 385ec19e2f hash.lookup: Reformat the docs 2018-05-17 05:30:49 +02:00
Eugen Wissner 205d7a080e Add KeyValue alias for value tuple 2018-05-14 21:55:49 +02:00
Eugen Wissner d545d6900e Make HashTable Range return Pair 2018-05-14 19:23:22 +02:00
Eugen Wissner 3ed46117d1 Port Set ranges for HashTable 2018-05-14 19:23:22 +02:00
Eugen Wissner 00dbb224f7 Move length tracking to HashArray 2018-05-14 19:23:22 +02:00
Eugen Wissner 9cf1b6f491 Use HashArray as internal storage 2018-05-14 19:23:22 +02:00
Eugen Wissner bdce5cda6a Add HashTable container 2018-05-14 19:23:22 +02:00
Eugen Wissner faf952b30e Rename Pair to Tuple 2018-05-12 06:11:24 +02:00
Eugen Wissner 53620cdddf Improve preconditions for the container.Set 2018-05-11 05:43:14 +02:00
Eugen Wissner 41a8e32351 Switch to travis-ci.com 2018-05-10 06:13:38 +02:00
Eugen Wissner 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
Eugen Wissner 6ed2992862 Remove unused variables 2018-05-06 07:03:11 +02:00
Eugen Wissner 5c8c0ce4d8 Add dmd 2.080.0 support 2018-05-05 05:22:04 +02:00
Eugen Wissner 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
Eugen Wissner 4f6ce116bc Add documented tests for Set.empty and Set.clear() 2018-05-01 15:56:07 +02:00
Eugen Wissner 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
Eugen Wissner 18d54b4b18 HashArray as an internal store for hash containers 2018-04-29 09:12:48 +02:00
Eugen Wissner 36646aa2c4 container.Set: Rewrite arch dependent tests 2018-04-28 18:07:41 +02:00
Eugen Wissner 702d1b02e0 Make allocator getter public 2018-04-28 17:57:07 +02:00
Eugen Wissner 8733b93ca0 container.Set: Support customizable hasher 2018-04-28 17:49:49 +02:00
Eugen Wissner 55c36d22a0 Make isType public 2018-04-27 11:32:41 +02:00
Eugen Wissner 6e2852000b Deprecate math.min/max in favour of tanya.algorithm 2018-04-27 11:32:22 +02:00
Eugen Wissner c0f9e5be10 Replace std min/max. Fix #35 2018-04-26 10:23:06 +02:00
Eugen Wissner 3468d6ea00 Accept/return as inout in min/max 2018-04-26 08:06:06 +02:00
Eugen Wissner ed5fa91e64 Merge remote-tracking branch 'origin/master' into feature/min_max 2018-04-25 15:13:03 +02:00
Eugen Wissner 2185a70ac8 Fix #33 2018-04-25 13:09:34 +02:00
Eugen Wissner b94da1f58a Replace SocketError with ErrorCode.ErrorNo 2018-04-25 12:59:38 +02:00
Eugen Wissner 3f9b500e20 Add CommonType 2018-04-24 15:45:47 +02:00
Eugen Wissner 86053de8c9 Add min/max algorithms 2018-04-22 12:08:33 +02:00
Eugen Wissner e8222123e6 Use syscall instead of mmap and munmap 2018-04-22 08:07:20 +02:00
Eugen Wissner 5cac28c093 Add new comparison traits
- allSameType
- isEqualityComparable
- isOrderingComparable
2018-04-21 06:38:32 +02:00
Eugen Wissner 5e40424f7d net.inet: Replace CTFE-pow with pow operator 2018-04-20 15:15:00 +02:00
Eugen Wissner 964a7af32f Fix list assertions for release build 2018-04-18 14:23:12 +02:00
Eugen Wissner 40c961867e Remove deprecated traits and queue 2018-04-18 06:34:28 +02:00
Eugen Wissner 3fee712c6c Implement DList.popFirstOf and DList.popLastOf
Fix #37.
2018-04-17 14:46:12 +02:00
Eugen Wissner 012c2d4c18 Remove support for dmd 2.076.1 2018-04-15 06:50:37 +02:00
Eugen Wissner 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
Eugen Wissner ddb02e41eb Add dscanner style check to CI
Fix #38.
2018-04-12 17:14:22 +02:00
Eugen Wissner d157e88b7a Fix import order in math.random 2018-04-08 05:59:14 +02:00
Eugen Wissner d5064fa2b2 Add missing tail isn't null assertion 2018-04-07 19:20:08 +02:00
Eugen Wissner 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
Eugen Wissner a0ac8355f9 Fix #29 2018-04-01 10:34:18 +02:00
Eugen Wissner 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
Eugen Wissner af45de842e Take MmapPool from the standard builds 2018-03-29 16:54:56 +02:00
Eugen Wissner 792d289541 range.primitive: Add missing rparen to the docs 2018-03-27 05:19:14 +02:00
Eugen Wissner 92f21a95cf Add hashing pointers 2018-03-27 05:18:46 +02:00
Eugen Wissner 72140a8583 Add documentation for the hash function 2018-03-27 05:09:44 +02:00
Eugen Wissner 442fa5b46a Fix hashing scalar types 2018-03-27 05:09:22 +02:00
Eugen Wissner 0d6d8f6a91 Add hash combining for ranges 2018-03-27 05:09:09 +02:00