b612e978bf
format: Add format string tests
2017-11-25 15:24:45 +01:00
02d1d8218b
Port vsprintf
2017-11-25 15:11:43 +01:00
fbf6ec5250
format: Check if the scientific form is to be used
2017-11-25 14:59:27 +01:00
ac317aa9d6
math.min: Drop useless second isFloatingPoint check
2017-11-19 22:37:15 +01:00
10022d158c
Replace aho/ali usage with HP
2017-11-16 19:28:44 +01:00
a38242d0ac
Make real2String more readable
2017-11-16 19:19:18 +01:00
a84c71f26d
Revert usage of "do" instead of "body"
...
And fix GCC build.
2017-11-16 19:15:56 +01:00
7797f0a1fe
format.conv.number2String -> format.integral2String (intern)
2017-11-12 11:57:47 +01:00
4bbc8b510a
conv: Use assertThrown to check ConvException is thrown
2017-11-12 11:44:45 +01:00
87ea1f98dc
Add range primitives that remove several elements
...
- isOutputRange
- popFrontN
- popFrontExactly
- popBackN
- popBackExactly
2017-11-05 07:00:10 +01:00
13407fcf8a
math: Add min/max
2017-11-02 06:00:11 +01:00
e06cc5a071
Fix moveEmplace for static arrays
2017-11-01 14:27:39 +01:00
12fb9ff9f6
Add algorithm.mutation.swap
2017-11-01 13:03:48 +01:00
392cdcf192
Fix moveEmplace not being pure
2017-11-01 12:30:27 +01:00
09b6655b9a
memory.op: Check for valid .ptr and .length
...
typeid(T).initializer can return an array, whose .ptr is null but the
length not. Assert that .ptr and .length are consistent.
2017-11-01 00:01:43 +01:00
7a2768340e
Add algorithm package with move and moveEmplace
2017-10-29 07:51:00 +01:00
414d7a11a8
Add meta.trait.Fields
2017-10-27 20:28:34 +02:00
0d69c7fc79
Make math.mp.Integer pure
2017-10-24 11:50:32 +02:00
d1d55be7c2
Fix lowerHexDigits string
2017-10-18 06:40:22 +02:00
7b21238db7
String: Fix byCodePoint.popFront for multibyte chars
2017-10-14 13:47:16 +02:00
e316631f6e
Add test package
2017-10-12 07:41:35 +02:00
5d6f8e5299
Implement pure onOutOfMemory
2017-10-10 06:59:34 +02:00
87bfd77373
container.string: Add missing postblit
2017-10-08 15:53:29 +02:00
17005e4ac9
Fix isInnerClass for templates, sort unittest attributes
2017-10-06 12:28:14 +02:00
85ad88bc4d
Rename isPolymorphic into isPolymorphicType
2017-10-06 12:06:47 +02:00
211f590caa
Tests and better documentation for memory.stateSize
2017-10-06 07:45:46 +02:00
2f4dd34582
Replace isInterface, isClass, isStruct with isPolymorphic
2017-10-05 07:12:27 +02:00
7e93bcdeeb
meta: Add canFind and isInnerClass
2017-10-04 06:06:26 +02:00
e4cd57a615
math.nbtheory: Implement natural logarithm
2017-10-02 14:55:30 +02:00
74b085b88d
Sort imports
2017-10-01 19:03:42 +02:00
a576c36d02
Replace memcpy/memmove with copy/copyBackward
2017-09-30 08:15:02 +02:00
1056a2984e
Fix #303
...
Allocation schema is displayed incorrectly in HTML.
Add pre-tag for the schema.
2017-09-27 17:56:15 +02:00
faebf3e4d5
Fix #304
...
Replace inline assembly with GAS.
2017-09-26 08:26:12 +02:00
ee48c25328
Replace "Ditto." with "ditto"
...
ddox doesn't recognize "Ditto.".
2017-09-22 04:08:50 +02:00
4612d5eb6d
Add tanya.encoding.ascii
2017-09-21 06:57:49 +02:00
8d3a4860e6
Add memory.op.find for looking for a byte in a memory block
2017-09-20 08:31:54 +02:00
3df6c83376
Move formatting development to the io branch
2017-09-19 15:10:24 +02:00
14f91b6942
Don't import math submodules publically
2017-09-18 12:28:13 +02:00
be551e9349
Add docs and tests for fp classificators
2017-09-18 11:31:37 +02:00
586d12b6c7
Classificators for double extended floating point numbers
2017-09-17 10:30:12 +02:00
27146f7e0c
Add tanya.math.fp
2017-09-16 22:35:31 +02:00
9b54017840
Move all windows specific definitions from network.socket to the sys-package
2017-09-15 10:58:23 +02:00
aabb6334be
Import extern windows fill/copy memory functions
2017-09-14 18:49:13 +02:00
ce425b9ce5
Move simple socket definitions to sys.windows
2017-09-14 07:31:26 +02:00
3e9ca359da
math: Add floating point support to abs
2017-09-13 06:43:49 +02:00
edc3296083
Drop support for dmd 2.073.2, remove deprecations
2017-09-12 06:07:16 +02:00
e8143bd0cc
Fix template constraints style in tanya.math
2017-09-11 06:48:47 +02:00
3eb8618c32
Add range.primitive
2017-09-10 10:35:05 +02:00
3567a6608e
Add generic description for 'meta' package
2017-09-09 11:48:30 +02:00
520bd399a3
Add template-time Set and set-theoretic metafunctions
2017-09-05 05:51:34 +02:00
d38e33593e
Add traits for working with UDAs
2017-09-03 00:00:43 +02:00
34b79ad46e
Update compiler version list in the README
2017-09-02 09:48:28 +02:00
515bf619e8
Add support for dmd 2.076.0
2017-09-01 19:38:44 +02:00
617eaab9a2
tanya.format: Cast lookup array index to size_t
2017-08-30 12:20:42 +02:00
d946b598fd
Add internal sprintf-compatible format function
...
format() has full support for sprintf format but is written completely in D.
It is currently internal, since it is not typesafe and uses GC at one place.
After some work the function can be made public.
2017-08-29 10:38:03 +02:00
e9d7e9eb73
Add documention for newly added metafunctions
...
Docs for:
* ZipWith
* Min
* Max
Unittests for "Instantiate".
2017-08-28 16:07:02 +02:00
4dbfbe9874
Add new metafunctions: Min, Max, ZipWith
...
Documentation follow
2017-08-27 15:32:05 +02:00
25d59ffdda
Remove "static" prefix from metafunctions
2017-08-26 10:37:22 +02:00
2c064eb05b
Add hasElaborate traits
2017-08-25 14:50:15 +02:00
c9a4a2f651
Add "native" configuration and TanyaPhobos version
2017-08-25 00:29:43 +02:00
0e99effaeb
net.inet: Remove htonl/htons based unit tests
2017-08-24 07:45:16 +02:00
0f1e53b4b9
format.conv: Replace loop with copy()
2017-08-22 12:47:13 +02:00
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
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
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
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