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
464a0fecbb
Make math.nbtheory.ln to a template function
2018-02-25 05:38:21 +01:00
af942116e4
Merge remote-tracking branch 'n8sh/getrandom-syscall'
...
Fix #18 .
2018-02-22 05:25:59 +01:00
Nathan Sashihara
7ee4af9e79
Use correct getrandom linux syscall on non-x86_64
2018-02-21 04:49:48 -05:00
Nathan Sashihara
9876d9245c
Implement PlatformEntropySource for macOS, Microsoft Windows, NetBSD, OpenBSD, Solaris
2018-02-21 03:18:52 -05:00
2cda82eeea
Fix handling of misaligned bytes in fill
2018-02-04 07:23:56 +01:00
e9f70853c6
Fix #12
2018-02-02 16:13:55 +01:00
4aaa71a7d0
Format ranges
2018-02-02 14:34:36 +01:00
cbc68c2c43
Implement formatting for enums
2018-02-01 16:29:13 +01:00
048ddf21ff
Replace body with do
2018-01-31 12:05:06 +01:00
b69d737845
Add typeid formatting tests
2018-01-16 17:44:09 +01:00
904451ccaa
Remove moved and deprecated conv module
2018-01-14 19:13:12 +01:00
8db1851c5c
Update dmd to 2.078.0
2018-01-04 05:36:46 +01:00
12de700706
Fix formatting null class references
2017-12-16 09:42:57 +01:00
78a8afdf75
Format stringish ranges
2017-12-15 22:42:18 +01:00
3c996d7c57
Add struct formatting
2017-12-14 19:47:13 +01:00
2a68048fc1
Put real formatting code into a separate function
2017-12-09 10:02:54 +01:00
7fe69ccc5c
format: Aggregate types
2017-12-08 10:56:59 +01:00
26c3532e28
Wrap formatting into printToString
...
printToString gets the output string as argument and can be called
recursive with the same output string to format ranges.
2017-12-03 19:53:06 +01:00
9e16d84f9e
Reintroduce isStruct, isClass and isInterface
...
since they can be useful for generic programming.
2017-11-29 19:53:28 +01:00
7e7bf40f70
Move remaining to methods to tanya.conv
2017-11-29 19:09:58 +01:00
642717883e
Add boolean and null formatting
2017-11-29 18:44:51 +01:00
85be35c5e0
Make floating formatting safe
2017-11-29 07:49:20 +01:00
664298f038
Remove buffer argument from format
2017-11-28 22:11:19 +01:00
c199cdd47c
Merge changes to reals formatting from master
2017-11-28 09:32:20 +01:00
3a24e9e462
Make pointer to string conversion safer
2017-11-27 15:10:17 +01:00
f334e6a1a0
Check format specifier at compile time
2017-11-25 22:29:45 +01:00
72d5760589
Change default pointer format
2017-11-25 19:01:20 +01:00
b28dde9d8e
Remove triplet comma
2017-11-25 17:10:59 +01:00
b612e978bf
format: Add format string tests
2017-11-25 15:24:45 +01:00
02d1d8218b
Port vsprintf
2017-11-25 15:11:43 +01:00
fbf6ec5250
format: Check if the scientific form is to be used
2017-11-25 14:59:27 +01:00
ac317aa9d6
math.min: Drop useless second isFloatingPoint check
2017-11-19 22:37:15 +01:00
10022d158c
Replace aho/ali usage with HP
2017-11-16 19:28:44 +01:00
a38242d0ac
Make real2String more readable
2017-11-16 19:19:18 +01:00
a84c71f26d
Revert usage of "do" instead of "body"
...
And fix GCC build.
2017-11-16 19:15:56 +01:00
7797f0a1fe
format.conv.number2String -> format.integral2String (intern)
2017-11-12 11:57:47 +01:00
4bbc8b510a
conv: Use assertThrown to check ConvException is thrown
2017-11-12 11:44:45 +01:00
87ea1f98dc
Add range primitives that remove several elements
...
- isOutputRange
- popFrontN
- popFrontExactly
- popBackN
- popBackExactly
2017-11-05 07:00:10 +01:00
13407fcf8a
math: Add min/max
2017-11-02 06:00:11 +01:00
e06cc5a071
Fix moveEmplace for static arrays
2017-11-01 14:27:39 +01:00
12fb9ff9f6
Add algorithm.mutation.swap
2017-11-01 13:03:48 +01:00
392cdcf192
Fix moveEmplace not being pure
2017-11-01 12:30:27 +01:00