Commit Graph

670 Commits

Author SHA1 Message Date
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
Eugen Wissner cefc4e24b5 Add FNV-1a test vectors 2018-03-27 05:08:55 +02:00
Eugen Wissner 1adc4cd868 Add hash.lookup module 2018-03-27 05:08:28 +02:00
Eugen Wissner 8faccbada4 Deprecate meta.trait.hasMember 2018-03-26 20:38:57 +02:00
Eugen Wissner 9fb043ba65 Fix typeof(null) being a pointer for isPointer 2018-03-25 09:19:35 +02:00
Eugen Wissner 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
Eugen Wissner a7c1e642e9 Implement moveFront, moveBack, moveAt
... and hasMobileElements.
2018-03-22 10:44:58 +01:00
Eugen Wissner 7829b1fe06 Remove static std.range import 2018-03-22 10:44:52 +01:00
Eugen Wissner 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
Eugen Wissner 341068488d meta.trait: Make unittest structs static 2018-03-21 10:04:05 +01:00
Eugen Wissner 9b0bc77b7a async: Remove unused imports 2018-03-21 08:30:47 +01:00
Eugen Wissner c9e4871fb5 algorithm.mutation: Fix param name in the docs 2018-03-21 08:15:58 +01:00
Eugen Wissner 1f4ab88254 typecons.Pair: Add better documentation unittests 2018-03-21 08:14:52 +01:00
Eugen Wissner 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
Eugen Wissner 363ebbe3df Extend release policy 2018-03-18 05:53:38 +01:00
Eugen Wissner ecd74cbf1e Describe NogcD subset 2018-03-17 08:17:51 +01:00
Eugen Wissner 80a177179d Add hash table to the "Current status" branches 2018-03-15 05:46:42 +01:00
Eugen Wissner 2532d49105 Ignore .lib files 2018-03-11 11:40:46 +01:00
Eugen Wissner abfccc35a2 Merge remote-tracking branch 'origin/feature/queue-dlist'
Fix #31.
2018-03-10 07:41:02 +01:00
Eugen Wissner 629071f934 Add information that DList can be used as a queue 2018-03-10 07:17:43 +01:00
Eugen Wissner 17cb592b13 Replace Queue with DList 2018-03-09 08:19:17 +01:00
Eugen Wissner 82f41844b1 container.list: Document front/back preconditions 2018-03-09 08:00:28 +01:00
Eugen Wissner 8fa033a49f Fix #32 2018-03-09 05:27:32 +01:00