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
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
beb5d6963b
Complete tanya.meta.metafunction
2017-08-20 12:29:48 +02:00
a188f8b6e2
Rename traits module to trait
2017-08-19 11:28:08 +02:00
9355c54163
Add metafunctions
2017-08-18 23:38:41 +02:00
e8dd6e3217
Add more traits
2017-08-16 06:45:15 +02:00
94a7fdbb91
Update latest DMD to 2.075.1
2017-08-15 01:18:21 +02:00
afd3c42c5f
Add meta.traits module
2017-08-14 14:21:10 +02:00
1d91bb4df9
Add templates to meta.transform
2017-08-14 14:13:43 +02:00
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
64f2295d1a
Fix #276
...
Add link to the source file for each module.
2017-08-12 17:01:51 +02:00
dea0eb9a37
Add function for comparing memory regions
...
memory.op.cmp.
2017-08-11 22:15:01 +02:00
7c2abadb90
Add memory.op.copyBackward
...
Added function that can copy memory chunks that can overlap.
2017-08-09 07:01:57 +02:00
e6b28468ca
Fix typo in the README, remove dmd 2.072 support
2017-08-08 05:59:04 +02:00
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
ed92e3993e
Add fast function to zero memory
2017-08-02 06:41:54 +02:00
1a4d1238a1
Remove dmd 2.071.2 support
2017-08-01 05:17:57 +02:00
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
40e43c1465
Add memory.op.copy
2017-07-30 00:08:41 +02:00
5d145f524c
Add fast memory copy function for x86-64
2017-07-29 10:08:44 +02:00
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
3afb40e09e
format.conv: Convert string to a boolean
2017-07-27 08:48:44 +02:00
a9cc135318
format.conv: Add conversion from bool to String
2017-07-26 06:49:33 +02:00
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
a37c9b162e
container.Set: Reduce duplicated code, add tests
2017-07-22 07:40:58 +02:00
cde492c279
Add dmd 2.075.0 support
2017-07-21 05:44:45 +02:00
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
a0a28c76f7
Fix CONTRIBUTING.md typos
2017-07-19 07:58:20 +02:00
a1f4d2bc1c
If scheme is invalid, parse everything as path
2017-07-18 23:01:57 +02:00
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
9ef5986288
Add some style guidelines for contributors
2017-07-16 18:56:48 +02:00
42146c5e8a
Fix #259
...
Get rid of std.experimental.
2017-07-15 22:25:29 +02:00
e6b91f70cb
Add style checking
...
A lot of tests are disabled. They should be enabled successively.
2017-07-14 00:05:13 +02:00
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
839c740cb1
Fix mmap flags on linux
2017-07-12 10:04:48 +02:00
2bd612fd19
Make MmapPool allocations pure
2017-07-12 09:30:07 +02:00
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
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
97358ebc6c
Ignore tanya-test-library.core (FreeBSD)
2017-07-08 15:54:47 +02:00
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
53df12897b
Add missing methods to DList. Issue #209
2017-07-08 13:44:57 +02:00
4ac890d7d3
Fix #260
...
DList invariant fails.
2017-07-08 05:41:04 +02:00
b79657f0d2
Fix 232
2017-07-06 08:35:16 +02:00
9429e7bb14
Refer to net instead of network package in README
2017-07-05 23:11:54 +02:00
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
e46e45ad5a
Remove previously deprecated modules
...
* tanya.network.uri
* tanya.network.inet
* tanya.memory.types
2017-06-30 04:19:20 +02:00
e79c75df81
Fix typo in README, add CONTRIBUTING.md link
2017-06-29 11:06:40 +02:00
a6dfb3a19e
Fix DList.opAssign not changing tail
2017-06-28 08:12:58 +02:00
2af0db04bd
Move network.url to net.uri
2017-06-27 13:23:17 +02:00
2c9867c577
Fix generating async docs for different OS
2017-06-25 09:46:02 +02:00