Eugen Wissner
666d59c231
Add traits for checking if class, iface, struct
...
They are useful for compile-time algorithms like Filter, StaticMap and
so on.
2017-08-22 11:12:41 +02:00
Eugen Wissner
ce90b4865b
Make front and popFront for arrays public
...
This commit adds tanya.range.array module which contains functions to make
the arrays act as ranges. These functions don't do any auto-decoding for
strings.
2017-08-21 06:49:02 +02:00
Eugen Wissner
beb5d6963b
Complete tanya.meta.metafunction
2017-08-20 12:29:48 +02:00
Eugen Wissner
a188f8b6e2
Rename traits module to trait
2017-08-19 11:28:08 +02:00
Eugen Wissner
9355c54163
Add metafunctions
2017-08-18 23:38:41 +02:00
Eugen Wissner
e8dd6e3217
Add more traits
2017-08-16 06:45:15 +02:00
Eugen Wissner
94a7fdbb91
Update latest DMD to 2.075.1
2017-08-15 01:18:21 +02:00
Eugen Wissner
afd3c42c5f
Add meta.traits module
2017-08-14 14:21:10 +02:00
Eugen Wissner
1d91bb4df9
Add templates to meta.transform
2017-08-14 14:13:43 +02:00
Eugen Wissner
a5026e48d8
Add meta.transform package
...
Templates in this module applied to a type produce a transformed type.
2017-08-13 19:12:46 +02:00
Eugen Wissner
64f2295d1a
Fix #276
...
Add link to the source file for each module.
2017-08-12 17:01:51 +02:00
Eugen Wissner
dea0eb9a37
Add function for comparing memory regions
...
memory.op.cmp.
2017-08-11 22:15:01 +02:00
Eugen Wissner
7c2abadb90
Add memory.op.copyBackward
...
Added function that can copy memory chunks that can overlap.
2017-08-09 07:01:57 +02:00
Eugen Wissner
e6b28468ca
Fix typo in the README, remove dmd 2.072 support
2017-08-08 05:59:04 +02:00
Eugen Wissner
2934bb16d7
Rename memory.op.zero into fill
...
- Rename memory.op.zero to fill, which accepts one template parameter: one
byte to fill the memory with.
- Fix bug on x86_64: RAX (register keeping the value to fill with) isn't set if
the pointer was already aligned.
2017-08-06 06:22:28 +02:00
Eugen Wissner
ed92e3993e
Add fast function to zero memory
2017-08-02 06:41:54 +02:00
Eugen Wissner
1a4d1238a1
Remove dmd 2.071.2 support
2017-08-01 05:17:57 +02:00
Eugen Wissner
04864559e2
Respect how Windows passes arrays on x86_64
...
tanya.memory.arch.x86_64:
Linux passes the array length and the data pointer in separate registers.
Windows passes a pointer to the whole array instead (pointer to the
array length practically).
2017-07-31 04:23:21 +02:00
Eugen Wissner
40e43c1465
Add memory.op.copy
2017-07-30 00:08:41 +02:00
Eugen Wissner
5d145f524c
Add fast memory copy function for x86-64
2017-07-29 10:08:44 +02:00
Eugen Wissner
51ade45108
Add internal routing to convert a number to string
...
Add internal routing to write a number to a char buffer.
2017-07-28 09:08:58 +02:00
Eugen Wissner
3afb40e09e
format.conv: Convert string to a boolean
2017-07-27 08:48:44 +02:00
Eugen Wissner
a9cc135318
format.conv: Add conversion from bool to String
2017-07-26 06:49:33 +02:00
Eugen Wissner
1389b03842
memory: Fix parameter name in the documentation
...
Size parameter for "make" was renamed into n, but the function
description wasn't fixed:
size => n
This commit also removes some redundant variables in "make".
2017-07-25 07:40:14 +02:00
Eugen Wissner
a37c9b162e
container.Set: Reduce duplicated code, add tests
2017-07-22 07:40:58 +02:00
Eugen Wissner
cde492c279
Add dmd 2.075.0 support
2017-07-21 05:44:45 +02:00
Eugen Wissner
922c8bf7a3
Fix assigning a ByCodeUnit to the String slice
...
std.algorithm.mutation copy is unable to copy a char range into a char array slice.
2017-07-19 07:58:48 +02:00
Eugen Wissner
a0a28c76f7
Fix CONTRIBUTING.md typos
2017-07-19 07:58:20 +02:00
Eugen Wissner
a1f4d2bc1c
If scheme is invalid, parse everything as path
2017-07-18 23:01:57 +02:00
Eugen Wissner
e5fb95ceb0
Fix #254
...
network.url Range violation.
Add a check after parsing "scheme://" whether only the scheme is available.
2017-07-17 04:57:33 +02:00
Eugen Wissner
9ef5986288
Add some style guidelines for contributors
2017-07-16 18:56:48 +02:00
Eugen Wissner
42146c5e8a
Fix #259
...
Get rid of std.experimental.
2017-07-15 22:25:29 +02:00
Eugen Wissner
e6b91f70cb
Add style checking
...
A lot of tests are disabled. They should be enabled successively.
2017-07-14 00:05:13 +02:00
Eugen Wissner
657f4a60d5
Fix #246
...
Make allocators pure.
* Methods allocating/deallocating memory are pure.
* Allocator.instance is pure (once initialized, it always returns
the same instance).
* defaultAllocator getter property is pure (should be set at the
beginning, and always return the same instance after that).
2017-07-13 16:01:21 +02:00
Eugen Wissner
839c740cb1
Fix mmap flags on linux
2017-07-12 10:04:48 +02:00
Eugen Wissner
2bd612fd19
Make MmapPool allocations pure
2017-07-12 09:30:07 +02:00
Eugen Wissner
fc53779d3f
Fix #245
...
* Remove postcondition for functions calculating alignment
* Put MmapPool invariant into version (none) block
* Check that alignment doesn't overflow
2017-07-11 10:27:24 +02:00
Eugen Wissner
7bdc778390
Fix inserting 3 byte wchar into String
...
* Fix inserting 3 byte wchar into String
* Improve documentation
2017-07-09 15:16:06 +02:00
Eugen Wissner
97358ebc6c
Ignore tanya-test-library.core (FreeBSD)
2017-07-08 15:54:47 +02:00
Eugen Wissner
4834b36271
Finish DList implementation. Fixes #209
...
* removeBack
* insertAfter
* Diverse fixes of insertion logic
* Internal moveFront and moveBack functions
* Internal makeList function
2017-07-08 15:51:17 +02:00
Eugen Wissner
53df12897b
Add missing methods to DList. Issue #209
2017-07-08 13:44:57 +02:00
Eugen Wissner
4ac890d7d3
Fix #260
...
DList invariant fails.
2017-07-08 05:41:04 +02:00
Eugen Wissner
b79657f0d2
Fix 232
2017-07-06 08:35:16 +02:00
Eugen Wissner
9429e7bb14
Refer to net instead of network package in README
2017-07-05 23:11:54 +02:00
Eugen Wissner
4fd37e84f8
Fix #232 for Array
...
Because const is transitive, if we create a range as Range!(const E)
there is no way to get the original type from inside of the range. So if
E is int*, the original type of const(E) could be const(int)* or int*.
Unqual!(const(int*)) returns const(int)*. So pass the whole container as
template parameter. It is a breaking change but since we have Range and
ConstRange aliases now, the usage should be fine.
2017-07-04 07:24:29 +02:00
Eugen Wissner
e46e45ad5a
Remove previously deprecated modules
...
* tanya.network.uri
* tanya.network.inet
* tanya.memory.types
2017-06-30 04:19:20 +02:00
Eugen Wissner
e79c75df81
Fix typo in README, add CONTRIBUTING.md link
2017-06-29 11:06:40 +02:00
Eugen Wissner
a6dfb3a19e
Fix DList.opAssign not changing tail
2017-06-28 08:12:58 +02:00
Eugen Wissner
2af0db04bd
Move network.url to net.uri
2017-06-27 13:23:17 +02:00
Eugen Wissner
2c9867c577
Fix generating async docs for different OS
2017-06-25 09:46:02 +02:00