Commit Graph

351 Commits

Author SHA1 Message Date
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