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
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
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
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
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
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
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
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
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
47b394d8c3
Add module documentation. Fix #248
2017-06-24 09:08:19 +02:00
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
7d5dda1cba
Add Unique.isInitialized and Unique.release
2017-06-24 00:51:16 +02:00
e5f83c22fa
Add support for enums to format.conv.to. Fix #240
2017-06-23 02:58:46 +02:00
a4de1cc754
toStringz returns a pointer
2017-06-22 11:48:58 +02:00
dfacabd88b
format.conv.to: Convert to/from boolean
2017-06-20 07:07:58 +02:00
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
56406fb593
Mark Entropy class as nogc, add linux 64bit unittest
2017-06-17 08:58:44 +02:00
ec9b2db4b9
Add os package#
2017-06-16 21:41:23 +02:00
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
c62dc4063e
Add unittest for Linux random generator
2017-06-15 11:19:50 +02:00
3789853d98
Fix one Mallocator test
...
Test that if the reallocation fails, the pointer doesn't change.
2017-06-15 10:37:50 +02:00
f0d016bcde
Replace in and immutable with const in allocators
2017-06-15 10:27:12 +02:00
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
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
8443f1b385
Make test functions nogc
2017-06-11 09:45:33 +02:00
c9050c1a8e
Rename Scoped to Unique. Improve unit tests
...
Renaming to avoid confusing with Phobos Scoped.
2017-06-11 09:41:18 +02:00
bdf87570e2
Add basic unit tests for the event loop
2017-06-11 09:15:10 +02:00
faa44b6704
Remove deprecated tanya.container.vector
2017-06-09 19:27:54 +02:00
278e851414
Rename String.toString to String.get()
...
Last changed it only by the Range and forgotten about the string itself.
2017-06-08 07:59:16 +02:00
4633bcc680
Set: Fix comparing with removed elements
2017-06-07 07:57:22 +02:00
dc39efd316
Add some unit tests for InternetAddress
2017-06-03 15:18:53 +02:00
260937e4fb
Put socket overlapped I/O docs into a D_Ddoc block
2017-06-03 13:20:32 +02:00
bc32511254
Fix template parameters for Set
2017-06-01 22:36:38 +02:00
f30972f948
Add basic constructors and opAssign to Set
2017-06-01 06:26:06 +02:00
ea33ca62c8
Implement lookups in the Set
2017-05-31 10:29:07 +02:00
0f365758e1
Add optional fieldnames for Pair
2017-05-30 20:20:20 +02:00
2815b53a88
Implement Set Range
2017-05-30 15:52:18 +02:00
6c0588164a
Rename String.toString back to get()
...
Since it is expected that the return type of toString() is
immutable(char)[] and not char[] or const(char)[].
2017-05-29 11:41:49 +02:00
8ee1d647ce
Close issue 212
...
Introduce Range and constRange aliases for containers.
2017-05-29 11:26:39 +02:00
f013e2f1f4
Implement a Set container first
2017-05-29 10:50:01 +02:00
ac3935d71b
Merge branch 'master' into horton-table
2017-05-28 10:15:02 +02:00
b1c217e272
Fix kqueue to work with SocketType
2017-05-25 22:21:45 +02:00
d007aaa310
Rename socket_t to SocketType
2017-05-25 21:59:40 +02:00
8aaf9e14be
Add HashTable struct
2017-05-23 22:17:35 +02:00
ae3e6b46f6
Import std.algorithm.comparison for network.socket on Windows
2017-05-21 10:25:54 +02:00
8687df1fbb
Define AddressFamily in network.socket
2017-05-21 10:20:57 +02:00
ba0aff6737
Add tanya.typecons.Pair
2017-05-19 21:15:56 +02:00
a648e2120a
Fix parameter count for docs in container.string
2017-05-19 20:01:04 +02:00
bc61809050
Implement DList.insertBack
2017-05-16 13:16:18 +02:00
8c42cbfd63
Rename Vector to Array
...
For consistency with Phobos.
2017-05-16 12:12:57 +02:00
decb82f437
Remove crypto.mac for now
...
It wasn't released yet and needs some work.
2017-05-15 19:57:36 +02:00
357c7e279d
Add doubly-linked list
...
DList is an adjusted copy of SList. Missing:
* insertBack
* insertAfter
* removeBack
2017-05-15 19:50:20 +02:00
32e19c8b58
Rename String.get into toString. Add String.toStringz
2017-05-14 11:56:57 +02:00
f5c6c5b483
Add Payload template for memory.types
2017-05-13 08:43:49 +02:00
ba2d086fb8
Add memory.types.Scoped
2017-05-13 08:27:51 +02:00
7a0241b484
Fix unittest text for strings
2017-05-12 22:42:43 +02:00
36dad80e18
Use char ranges to avoid compilation errors on elder compilers
2017-05-12 21:46:48 +02:00
29d883150e
Fix unittests on 2.072 and 2.071
2017-05-12 21:10:22 +02:00
e2bed0cfcb
Replace tabs with spaces in mmappool and buffer
2017-05-12 21:02:24 +02:00
38afeac071
Insert String.insertFront and String.insertBack
2017-05-12 20:55:42 +02:00
001c7c3e33
Replace immutable with const in Vector
2017-05-12 20:35:16 +02:00
d4ab339feb
Add String.remove
2017-05-12 20:23:16 +02:00
8afb552d59
mp.Integer: add two's complement constructor
2017-05-10 19:27:25 +02:00
1cb9349226
math.mp.Integer.toVector return two's complement
2017-05-09 06:27:30 +02:00
06620dc5df
math.mp.Integer: Return two's complement length
2017-05-08 21:09:52 +02:00
85d9361bfb
Fix fill with char on older compilers
2017-05-05 07:03:16 +02:00
a6a6f496eb
Implement string slice assignments
2017-05-04 23:17:50 +02:00
db12f03264
Merge branch 'master' into utf8string
2017-05-03 19:15:13 +02:00
231aedb8ad
Add HMAC
2017-05-03 19:05:23 +02:00
c3b63ee40d
Merge branch 'master' into utf8string
2017-05-02 10:59:00 +02:00
6f405c5e08
Make Vector's opSliceAssign accept only own ranges
...
Vector.opSliceAssign and Vector.opIndexAssign should accept only vector
ranges. For assigning other ranges, std.algorithm.mutation.copy and
std.algorithm.mutation.fill should be used.
2017-05-02 10:56:32 +02:00
16cf8478cf
Add ByCodePoint
2017-05-01 20:17:37 +02:00
8915a0c7a7
Implement opCmp and opEquals for the String
2017-05-01 18:43:12 +02:00
e5c7edb72c
Implement String opAssign
2017-05-01 12:58:37 +02:00
64e0d666ed
Merge branch 'master' of github.com:caraus-ecms/tanya into utf8string
2017-05-01 09:59:29 +02:00
f2aac680c5
Fix container ctors and opAssign ref parameters
...
Container constructors and opAssign should accept any ref container and
not only const, otherwise the source container will be copied because
the constructor/opAssign without ref would be a better match.
2017-05-01 09:48:12 +02:00
65c3ca14ec
Integer storage optimization
2017-04-30 16:07:44 +02:00
4fa47153ba
Make Integer representation little endian
2017-04-25 19:50:06 +02:00