Commit Graph

648 Commits

Author SHA1 Message Date
Eugen Wissner 58af2fd89b encoding.ascii: Make static const data immutable 2018-05-31 18:43:35 +02:00
Eugen Wissner 52ec88bd04 async: Annotate system tests 2018-05-31 18:43:21 +02:00
Eugen Wissner bfe0748a63 Insert a range into the hash table and set 2018-05-30 18:50:52 +02:00
Eugen Wissner 61814d5383 Make an independent function for converting port string 2018-05-23 05:10:44 +02:00
Eugen Wissner c268696ee9 HashTable/Set: Add proper assignment 2018-05-20 21:58:15 +02:00
Eugen Wissner 9efbc9d5e0 Make Array postblit safe if possible 2018-05-18 07:43:18 +02:00
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