Commit Graph

503 Commits

Author SHA1 Message Date
belka 1d91bb4df9 Add templates to meta.transform 2017-08-14 14:13:43 +02:00
belka 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
belka 64f2295d1a Fix #276
Add link to the source file for each module.
2017-08-12 17:01:51 +02:00
belka dea0eb9a37 Add function for comparing memory regions
memory.op.cmp.
2017-08-11 22:15:01 +02:00
belka 7c2abadb90 Add memory.op.copyBackward
Added function that can copy memory chunks that can overlap.
2017-08-09 07:01:57 +02:00
belka 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
belka ed92e3993e Add fast function to zero memory 2017-08-02 06:41:54 +02:00
belka 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
belka 40e43c1465 Add memory.op.copy 2017-07-30 00:08:41 +02:00
belka 5d145f524c Add fast memory copy function for x86-64 2017-07-29 10:08:44 +02:00
belka 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
belka 3afb40e09e format.conv: Convert string to a boolean 2017-07-27 08:48:44 +02:00
belka a9cc135318 format.conv: Add conversion from bool to String 2017-07-26 06:49:33 +02:00
belka 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
belka a37c9b162e container.Set: Reduce duplicated code, add tests 2017-07-22 07:40:58 +02:00
belka 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
belka a1f4d2bc1c If scheme is invalid, parse everything as path 2017-07-18 23:01:57 +02:00
belka 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
belka 42146c5e8a Fix #259
Get rid of std.experimental.
2017-07-15 22:25:29 +02:00
belka e6b91f70cb Add style checking
A lot of tests are disabled. They should be enabled successively.
2017-07-14 00:05:13 +02:00
belka 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
belka 839c740cb1 Fix mmap flags on linux 2017-07-12 10:04:48 +02:00
belka 2bd612fd19 Make MmapPool allocations pure 2017-07-12 09:30:07 +02:00
belka 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
belka 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
belka 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
belka 53df12897b Add missing methods to DList. Issue #209 2017-07-08 13:44:57 +02:00
belka 4ac890d7d3 Fix #260
DList invariant fails.
2017-07-08 05:41:04 +02:00
belka b79657f0d2 Fix 232 2017-07-06 08:35:16 +02:00
belka 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
belka e46e45ad5a Remove previously deprecated modules
* tanya.network.uri
* tanya.network.inet
* tanya.memory.types
2017-06-30 04:19:20 +02:00
belka a6dfb3a19e Fix DList.opAssign not changing tail 2017-06-28 08:12:58 +02:00
belka 2af0db04bd Move network.url to net.uri 2017-06-27 13:23:17 +02:00
belka 2c9867c577 Fix generating async docs for different OS 2017-06-25 09:46:02 +02:00
belka 47b394d8c3 Add module documentation. Fix #248 2017-06-24 09:08:19 +02:00
belka ede0107fd7 Fix #247
Assigning RefCounted to RefCounted fails at compile time.

https://issues.caraus.io/issues/247
2017-06-24 02:28:17 +02:00
belka 7d5dda1cba Add Unique.isInitialized and Unique.release 2017-06-24 00:51:16 +02:00
belka e5f83c22fa Add support for enums to format.conv.to. Fix #240 2017-06-23 02:58:46 +02:00
belka a4de1cc754 toStringz returns a pointer 2017-06-22 11:48:58 +02:00
belka dfacabd88b format.conv.to: Convert to/from boolean 2017-06-20 07:07:58 +02:00
belka ae36296ca6 Add tanya.format.conv.to
Function that converts between different types.
This first commit adds only conversion between integral types.
2017-06-18 18:05:50 +02:00
belka 56406fb593 Mark Entropy class as nogc, add linux 64bit unittest 2017-06-17 08:58:44 +02:00
belka ec9b2db4b9 Add os package# 2017-06-16 21:41:23 +02:00
belka f5d0c2af8f Revert "Add unittest for Linux random generator"
Doesn't work on 32-bit.
This reverts commit c62dc4063e.
2017-06-15 11:21:56 +02:00
belka c62dc4063e Add unittest for Linux random generator 2017-06-15 11:19:50 +02:00
belka 3789853d98 Fix one Mallocator test
Test that if the reallocation fails, the pointer doesn't change.
2017-06-15 10:37:50 +02:00
belka f0d016bcde Replace in and immutable with const in allocators 2017-06-15 10:27:12 +02:00
belka 70e96c62b3 Make Unique.get and RefCounted.get return inout
Also revert the renaming of Scoped to Unique. And rename the whole
module to memory.smartref.
2017-06-14 22:11:57 +02:00
belka 4b0134713c Move new network modules into tanya.net package
tanya.net will combine tanya.async and tanya.network and provide one API
for blocking and non-blocking socket programming.
2017-06-13 10:42:35 +02:00
belka 8443f1b385 Make test functions nogc 2017-06-11 09:45:33 +02:00