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
d629525a4b
Make String to be a char Slice alias
2017-04-21 14:03:20 +02:00
33d321f0d7
Merge branch 'master' into utf8string
2017-04-20 17:32:59 +02:00
3d64d59ba9
Merge branch 'master' of github.com:caraus-ecms/tanya
2017-04-20 17:32:29 +02:00
4635835a99
Rename Vector range to Slice
2017-04-20 17:32:16 +02:00
8725ec5f20
Make Integer representation little endian
2017-04-19 13:49:44 +02:00
9a4c8cea06
Merge branch 'master' into utf8string
2017-04-16 20:52:40 +02:00
eb360bda38
Add unittest to check RefCounted calles struct destructors
2017-04-16 20:52:24 +02:00
4b1cd2cbfd
Merge branch 'master' into utf8string
2017-04-16 20:15:11 +02:00
628153e2e8
Make RefCounted work with dynamic arrays
2017-04-16 20:14:04 +02:00
7aa9ac9f4a
Add internal finalize method for finalizing an object without deallocating
2017-04-16 20:13:20 +02:00
47ef787353
Add missing constructors to the String
2017-04-10 08:10:08 +02:00
6436ad49df
Add ByteRange to the String
2017-04-08 17:44:08 +02:00
e1964e47a5
Merge branch 'master' into utf8string
2017-04-08 08:44:21 +02:00
6e2ce5d686
Remove opApply from containers
...
opApply requires additional overloads for the const containers (with a
const delegate). If using a templated opApply foreach cannot infer the
types for the variables. foreach with one argument still works
(opIndex() is used), for more complex cases slicing should be used.
2017-04-07 16:00:50 +02:00
ba6bf554fb
Make SList range public
2017-04-07 15:17:14 +02:00
b1d2b9bd9e
Fix Vector.insertAfter/Before an empty range
2017-04-04 15:11:14 +02:00
9b953198fa
Fix network.inet release build
2017-04-04 08:36:42 +02:00
bc2a6d2703
Swap toHostOrder template parameters
2017-04-03 15:32:15 +02:00
b458250ad7
Make NetworkOrder work with 8-byte integers
2017-04-02 20:55:22 +02:00
b08d5e5d83
Add tanya.network.inet.toHostOrder
...
The function reverts NetworkOrder.
2017-04-02 11:16:08 +02:00
445b872e91
Add tanya.network.inet.NetworkOrder
...
NetworkOrder converts an integral type into a bidirectional range with
big-endian byte order.
2017-04-02 09:29:54 +02:00
5e16fe98d6
Add tanya.network package file
2017-04-01 09:53:59 +02:00
4cd6126d6b
Fix SList documentation for insertFront and insertBefore
2017-03-29 17:22:25 +02:00
b870179a35
Move bitvector to another branch till it is finished
2017-03-29 11:17:03 +02:00
aabb4fb534
Add SList.opAssign
2017-03-29 10:35:45 +02:00
4d8b95812e
Implement opAssign for the Vector
2017-03-28 20:42:42 +02:00
e921413249
Merge branch 'master' of github.com:caraus-ecms/tanya
2017-03-24 20:54:47 +01:00
49cae88645
Add insertBefore and remove to SList
2017-03-24 20:54:28 +01:00
402fdfae89
math.mp: Fix initialization issues after resizing
2017-03-23 15:36:17 +01:00
7892c1a930
Remove Init template parameter from memory.resize()
2017-03-22 08:51:00 +01:00
b90517580e
Merge math.mp.Integer changes from the crypto branch
2017-03-21 19:25:12 +01:00
85380ac3fc
Remove makeArray import
2017-03-19 06:54:59 +01:00
b90c56395c
Remove resizeArray alias
2017-03-19 06:10:27 +01:00
d0ada39fa7
Add Mallocator as an alternative allocator
2017-03-18 08:07:01 +01:00
f4145abfd1
Add SList constructors
2017-03-09 06:07:23 +01:00
093d499729
Fix element order inserted from a range into list
2017-03-08 07:12:23 +01:00
f90a03501b
Move BitVector from the crypto branch
2017-03-02 11:27:26 +01:00
c6a99b114e
SList.insertFront for ranges
2017-03-01 19:23:54 +01:00
43319e4e3a
Initialization from a UTF-16 string
2017-02-27 11:27:24 +01:00
33dbf042c2
Add dchar constructor
2017-02-26 22:40:27 +01:00
3c23aca6a6
Improve Vector module and reserve documentation
2017-02-20 12:03:49 +01:00
885fca9b5e
Add String.reserve and shrink
2017-02-20 12:01:15 +01:00
074d027629
Merge branch 'master' into utf8string
2017-02-20 08:02:01 +01:00
Eugen Wissner
d210a39249
Implement IOCPTransport.close and isClosing
2017-02-18 14:10:54 +01:00
e86ff63f91
Add DuplexTransport.close for the selector transport
2017-02-12 18:51:00 +01:00
3454a1965a
Move all IOWatcher members to the transports
2017-02-11 19:47:57 +01:00
c41fa2e98f
Adjust kqueue build
2017-02-10 23:01:33 +01:00
a012ca4003
Remove StreamTransport interface
...
Implement DuplexTransport and SocketTransport separately.
2017-02-10 22:30:12 +01:00
f4b90d8b51
Add string skeleton
2017-02-10 19:22:46 +01:00
b74e5aa4ee
Make event loop implementations final
2017-02-10 19:19:37 +01:00
b1b652b943
Fix Kqueue buil with the new watcher-transport
2017-02-09 21:40:52 +01:00
530a482402
Inherit IOCPTransport from IOWatcher
2017-02-09 21:40:52 +01:00
f9023cf0ab
Let Transport extend IOWatcher
2017-02-09 21:40:52 +01:00
0e91ea6786
Pass client socket directly to the IOWatcher
2017-02-09 21:40:52 +01:00
63c6226a2a
Implement protocol property for IOCPTransport
2017-02-08 21:21:12 +01:00
48a49c2a2d
Add protocol property to the transport
...
Transport should be protocol aware because it should be possible to
switch the protocol if the operation is supported, for example for upgrading
HTTP to web sockets or HTTP 1.1 to HTTP/2.
2017-02-08 20:04:05 +01:00
43c28b749d
Rename async.loop.Loop.done_ to done
...
Since there is no property with a conflicting name.
2017-02-04 14:55:52 +01:00
241767df13
Move DefaultAllocator mixin to tanya.memory
...
Since it depends on defaultAllocator property defined in the module.
2017-02-03 13:07:40 +01:00
b2baba9237
SList: Add length and opEquals
2017-01-25 19:41:05 +01:00
3e36ec0984
Add support for dmd 2.070.2
2017-01-25 07:24:19 +01:00
a48d9cb739
Add range support for SList
2017-01-24 08:20:07 +01:00
a7206cbd02
Fix #4
2017-01-22 10:48:34 +01:00
1450a6adfe
Vector.insertBack: Accept by value and by ref
2017-01-20 05:40:28 +01:00
5fa9bd7b49
Rename Allocator.expand to reallocateInPlace
...
Rename and extend Allocator.expand to reallocateInPlace. The problem is
that realloc for example doesn't guarante that the shrinking of the
memory block won't cause address change. So not only expanding should
have "in place" version, but the shrinking as well.
2017-01-18 09:33:39 +01:00
c7eb233fc7
Make passed length parameter const
2017-01-16 10:56:45 +01:00
20c8b659d1
Remove mutation methods from vector range
...
in favor of std.algorithm.mutation.
2017-01-16 09:02:00 +01:00
4ea9c2b740
Vector: Reuse available methods
2017-01-15 08:38:19 +01:00
48205b2fc9
MmapPool: Add invariant
...
Add invariant to ensure blocks are linked correctly since this error
appeared several times.
2017-01-14 21:48:21 +01:00
f5fe7bec4a
Queue optimization. Fix #5
2017-01-14 21:27:07 +01:00
c567b88d5d
MmapPool: Fix expand block moving.
...
D dereferences the pointer wrong because of missing difference between .
and -> operators, if trying to write a block over another
block. So use memmove first to move the memory and then update the fields
that should be changed (only size).
2017-01-14 20:39:33 +01:00
fe884541fc
Rename Vector.data to Vector.get
2017-01-13 15:23:42 +01:00
8973bdb2af
Fix if EPOLLIN and EPOLLOUT come together
2017-01-13 10:20:11 +01:00
4c4e65b373
MmapPool: (p[] is null) != (p[].ptr is null)
2017-01-12 19:47:07 +01:00
7bed7f039f
Remove default parameter value from Protocol.disconnected
2017-01-12 18:07:39 +01:00
8ddea0aa46
Loop.maxEvents is const, not inout const
2017-01-12 10:43:02 +01:00
cb6cc65113
async: Switch to the internal use of the vector instead of built-in arrays
2017-01-12 10:17:12 +01:00
4de42ca227
Use only one queue for the async events
2017-01-12 09:09:33 +01:00
ab930657b6
Queue: Leave only enqueue/dequeue/empty/opApply
2017-01-11 18:24:50 +01:00
291920b479
Vector constructors for initializing from a vector
2017-01-10 06:34:53 +01:00
999c9bdb0f
Vector: remove core.stdc.string import
2017-01-09 19:52:39 +01:00
405b6d9f9f
Accept only ranges for slicing assignment
2017-01-09 19:32:51 +01:00
87b74b2542
Fix reallocating the vector
2017-01-09 17:03:09 +01:00
d6514cb515
Fix Ddoc
2017-01-07 17:53:57 +01:00
fb843e3473
Fix #3
2017-01-07 09:30:42 +01:00
f3d48234c0
MmapPool: add expand and empty methods.
2017-01-06 23:12:19 +01:00
254b881da6
Fix block size calculation
2017-01-06 11:56:54 +01:00
8e0b742748
MmapPool: Merge blocks on deallocation if possible
2017-01-05 14:25:54 +01:00
a35e04c049
Don't throw in the allocator, return null
2017-01-05 07:42:23 +01:00
4271c8583e
Remove static constructor from the MmapPool
2017-01-05 07:35:29 +01:00
e27d0fe58c
Fix Vector.remove not destroying from the end copied elements
2017-01-04 20:37:55 +01:00
67952dabdb
Implement Vector.remove
2017-01-03 13:21:19 +01:00
b8d5d4c2bd
Fix template condition for Vector.insertBack
2017-01-03 10:03:28 +01:00
b6413823cd
Add opEquals for all combinations of vector ranges
2017-01-02 17:33:01 +01:00
48e355b87f
Vector: allow insert multiple items in insertBack
2017-01-02 12:47:41 +01:00
b3f4ea572e
Vector: Use opEquals if defined to compare items
2017-01-02 06:59:05 +01:00
c73e704421
Fix constness of Vector range, optimizing
2017-01-01 02:51:49 +01:00
0561e96f21
Fix build with 2.071.2
2016-12-28 07:57:36 +01:00
86d87430da
Fix socket build on Windows
2016-12-25 12:54:04 +01:00
0156c5a883
Don't allocate watcher queue on the heap
2016-12-25 00:54:05 +01:00
c966b42ac3
Fix FreeBSD build
2016-12-24 22:25:34 +01:00
200fff3714
Fix #1
2016-12-22 22:05:48 +01:00
28755b4d01
Rename module traits into enums
2016-12-22 22:05:06 +01:00
8bd6a14988
Fix issue going out of the range with back()
2016-12-22 22:01:45 +01:00
b41dcc9f37
Fix compatibility issue with dmd 2.071
2016-12-22 22:01:11 +01:00
38addb7a5b
Add support for pow for big integers
2016-12-22 21:51:16 +01:00
f7fb89fed0
Move random.d into math submodule
2016-12-22 21:50:33 +01:00
e32af2d09e
Add scalar type template parameter for buffers
2016-12-19 21:24:28 +01:00
f1bc4dc2e2
Add length and opCmp to the Queue
2016-12-19 16:33:16 +01:00
40857e69b7
Add capacity capabilities to the vector
2016-12-18 18:48:25 +01:00
c1fb89af99
Implement insertion into the vector
2016-12-15 15:00:06 +01:00
061cd6264b
Use auto ref for templated overloaded functions
2016-12-13 10:59:05 +01:00
f437dafa6b
Fix dispose for structs
2016-12-13 10:58:11 +01:00
54d0597657
Use resizeArray instead of expand/shrinkArray
2016-12-13 10:57:12 +01:00
ab9f96e0c7
Replace class Queue with the struct Queue
2016-12-13 10:56:29 +01:00
711855474c
Remove unused buffer interface
2016-12-13 10:54:27 +01:00
b20f367aa8
Array support for refCounted factory function
2016-12-11 11:42:09 +01:00
a2dadda511
Fix subtraction of numbers with different signs
2016-12-08 18:30:22 +01:00
4309a30dfe
Add opBinary for the other math operations on Integer
2016-12-08 14:51:49 +01:00
9362287938
Fix error with assignin long numbers to Integer
2016-12-08 14:43:50 +01:00
c8e6d44f7b
Implement own dispose
2016-12-07 11:01:51 +01:00
f75433e0e6
Implement operations on negative numbers
2016-12-06 23:22:12 +01:00
fa607141e4
Make allocator shared and fix some RefCounted bugs
2016-12-06 21:29:08 +01:00
b3fdd6fd4a
Implement unary operation for multiple precision integers
2016-12-05 22:06:06 +01:00
86c08e7af6
Use RefCounted as math.mp.Integer internal storage
2016-12-04 22:51:21 +01:00
1c5796eb96
Add RefCounted
2016-12-04 14:05:53 +01:00
f7f92e7906
Switch to container.queue. Remove PendingQueue
2016-12-02 19:18:37 +01:00
1123d01e6c
Implement opApply for the Queue
2016-12-02 17:31:57 +01:00
c53d319337
Implement foreach_reverse for the vector
2016-12-02 14:12:12 +01:00
7c36dbb8f0
Rename SList front property into insertFront
2016-12-02 10:50:54 +01:00
dd3becf6b7
Implement slicing for the vector
2016-12-02 10:29:30 +01:00
b78ecdf4c5
Make tanya.memory.allocator compatible with dmd < 2.072
2016-12-01 20:04:04 +01:00
a4aa5bcb2e
Make opApply delegate scoped for SList
2016-12-01 20:03:21 +01:00
edd3ec4b32
Add URL parser
2016-12-01 20:02:49 +01:00
9fdcef86e7
Replace defaultAllocator with theAllocator
2016-11-30 21:54:31 +01:00
ed0eb4ac74
Fix epoll connection bugs
2016-11-30 21:53:30 +01:00
192ee20bf7
Remove shared from the allocators
2016-11-30 21:20:18 +01:00
965ca0088e
Add multiple precision unsigned integer module
2016-11-30 20:24:51 +01:00
b752acdff7
Fix tanya.math module name
2016-11-30 16:48:46 +01:00
cbeb0395f9
Remove @safe from potentially unsafe code
2016-11-30 16:21:20 +01:00
79a7b840f7
Fix missing semicolons in echo server example
2016-10-08 19:43:40 +02:00
6b093cd5fa
Add Windows IOCP and Kqueue implementations for the event loop
2016-10-08 19:33:06 +02:00
154e2f2ff7
Add socket module with overlapped socket support
2016-10-08 19:29:07 +02:00
e9a0a93d3c
Add DES block cipher
2016-10-06 06:32:01 +02:00
da5dc276d5
Add BitVector container
2016-10-06 06:31:42 +02:00
721bb110e5
Use dispose from std.experimental
2016-10-05 13:12:50 +02:00
9241ec503c
Add Mallocator (malloc allocator)
2016-10-05 13:04:25 +02:00
c2afb07ff6
Rename Ullocator to MmapPool and make it Windows compatible
2016-10-05 13:01:37 +02:00
698660c4c8
Make allocators shared
2016-10-04 18:19:48 +02:00
be9181698a
Add remove padding
2016-08-27 07:49:43 +02:00
a3efee6d7f
Add code
2016-08-24 18:15:21 +02:00