commit
41f7357eb5
25
.travis.yml
25
.travis.yml
|
@ -9,16 +9,16 @@ d:
|
||||||
# this way the overall test time gets cut down (GDC/LDC are a lot
|
# this way the overall test time gets cut down (GDC/LDC are a lot
|
||||||
# slower tham DMD, so they should be started early), while still
|
# slower tham DMD, so they should be started early), while still
|
||||||
# catching most DMD version related build failures early
|
# catching most DMD version related build failures early
|
||||||
- dmd-2.091.0
|
- dmd-2.091.0,dub
|
||||||
- dmd-2.078.3
|
- dmd-2.078.3,dub
|
||||||
- ldc-1.20.1
|
- ldc-1.20.1,dub
|
||||||
- ldc-1.15.0
|
- ldc-1.15.0,dub
|
||||||
- ldc-1.19.0
|
- ldc-1.19.0,dub
|
||||||
- ldc-1.18.0
|
- ldc-1.18.0,dub
|
||||||
- dmd-2.089.1
|
- dmd-2.089.1,dub
|
||||||
- dmd-2.088.1
|
- dmd-2.088.1,dub
|
||||||
- dmd-nightly
|
- dmd-nightly,dub
|
||||||
- ldc-latest-ci
|
- ldc-latest-ci,dub
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- CONFIG=select
|
- CONFIG=select
|
||||||
|
@ -54,11 +54,6 @@ branches:
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
before_install:
|
|
||||||
- wget https://dlang.org/install.sh -O ~/dlang/install.dub.sh
|
|
||||||
- . $(bash ~/dlang/install.dub.sh -a dub)
|
|
||||||
- dub --version
|
|
||||||
|
|
||||||
script: ./travis-ci.sh
|
script: ./travis-ci.sh
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
|
|
|
@ -17,7 +17,7 @@ The core package provides the low level I/O and concurrency primitives that are
|
||||||
The fundamental building block is the fiber based task concept, together with the event based asynchronous I/O model. This enables developing highly scalable I/O concurrent applications without running into the complexities and design implications that asynchronous I/O programming models usually impose. See the [features page](https://vibed.org/features) for a more detailed explanation.
|
The fundamental building block is the fiber based task concept, together with the event based asynchronous I/O model. This enables developing highly scalable I/O concurrent applications without running into the complexities and design implications that asynchronous I/O programming models usually impose. See the [features page](https://vibed.org/features) for a more detailed explanation.
|
||||||
|
|
||||||
[![DUB Package](https://img.shields.io/dub/v/vibe-core.svg)](https://code.dlang.org/packages/vibe-core)
|
[![DUB Package](https://img.shields.io/dub/v/vibe-core.svg)](https://code.dlang.org/packages/vibe-core)
|
||||||
[![Posix Build Status](https://travis-ci.org/vibe-d/vibe-core.svg?branch=master)](https://travis-ci.org/vibe-d/vibe-core)
|
[![Posix Build Status](https://travis-ci.com/vibe-d/vibe-core.svg?branch=master)](https://travis-ci.com/vibe-d/vibe-core)
|
||||||
[![Windows Build status](https://ci.appveyor.com/api/projects/status/eexephyroa7ag3xr/branch/master?svg=true)](https://ci.appveyor.com/project/s-ludwig/vibe-core/branch/master)
|
[![Windows Build status](https://ci.appveyor.com/api/projects/status/eexephyroa7ag3xr/branch/master?svg=true)](https://ci.appveyor.com/project/s-ludwig/vibe-core/branch/master)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -107,11 +107,11 @@ struct Channel(T, size_t buffer_size = 100) {
|
||||||
*/
|
*/
|
||||||
bool consumeAll(ref FixedRingBuffer!(T, buffer_size) dst)
|
bool consumeAll(ref FixedRingBuffer!(T, buffer_size) dst)
|
||||||
in { assert(dst.empty); }
|
in { assert(dst.empty); }
|
||||||
body { return m_impl.consumeAll(dst); }
|
do { return m_impl.consumeAll(dst); }
|
||||||
/// ditto
|
/// ditto
|
||||||
bool consumeAll(ref FixedRingBuffer!(T, buffer_size) dst) shared
|
bool consumeAll(ref FixedRingBuffer!(T, buffer_size) dst) shared
|
||||||
in { assert(dst.empty); }
|
in { assert(dst.empty); }
|
||||||
body { return m_impl.consumeAll(dst); }
|
do { return m_impl.consumeAll(dst); }
|
||||||
|
|
||||||
/** Enqueues an element.
|
/** Enqueues an element.
|
||||||
|
|
||||||
|
|
|
@ -505,7 +505,7 @@ private struct IsolatedArray(T)
|
||||||
//assert(isSorted(indices), "Indices must be in ascending order.");
|
//assert(isSorted(indices), "Indices must be in ascending order.");
|
||||||
assert(indices[$-1] <= m_array.length, "Splice index out of bounds.");
|
assert(indices[$-1] <= m_array.length, "Splice index out of bounds.");
|
||||||
}
|
}
|
||||||
body {
|
do {
|
||||||
auto ret = new IsolatedArray!T[indices.length];
|
auto ret = new IsolatedArray!T[indices.length];
|
||||||
size_t lidx = 0;
|
size_t lidx = 0;
|
||||||
foreach( i, sidx; indices ){
|
foreach( i, sidx; indices ){
|
||||||
|
@ -521,7 +521,7 @@ private struct IsolatedArray(T)
|
||||||
assert(array.m_array.ptr == m_array.ptr+m_array.length || array.m_array.ptr+array.length == m_array.ptr,
|
assert(array.m_array.ptr == m_array.ptr+m_array.length || array.m_array.ptr+array.length == m_array.ptr,
|
||||||
"Argument to merge() must be a neighbouring array partition.");
|
"Argument to merge() must be a neighbouring array partition.");
|
||||||
}
|
}
|
||||||
body {
|
do {
|
||||||
if( array.m_array.ptr == m_array.ptr + m_array.length ){
|
if( array.m_array.ptr == m_array.ptr + m_array.length ){
|
||||||
m_array = m_array.ptr[0 .. m_array.length + array.length];
|
m_array = m_array.ptr[0 .. m_array.length + array.length];
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1019,7 +1019,7 @@ nothrow {
|
||||||
*/
|
*/
|
||||||
@property size_t workerThreadCount()
|
@property size_t workerThreadCount()
|
||||||
out(count) { assert(count > 0, "No worker threads started after setupWorkerThreads!?"); }
|
out(count) { assert(count > 0, "No worker threads started after setupWorkerThreads!?"); }
|
||||||
body {
|
do {
|
||||||
setupWorkerThreads();
|
setupWorkerThreads();
|
||||||
synchronized (st_threadsMutex)
|
synchronized (st_threadsMutex)
|
||||||
return st_workerPool.threadCount;
|
return st_workerPool.threadCount;
|
||||||
|
@ -1253,7 +1253,7 @@ struct Timer {
|
||||||
*/
|
*/
|
||||||
void rearm(Duration dur, bool periodic = false) nothrow
|
void rearm(Duration dur, bool periodic = false) nothrow
|
||||||
in { assert(dur >= 0.seconds, "Negative timer duration specified."); }
|
in { assert(dur >= 0.seconds, "Negative timer duration specified."); }
|
||||||
body { m_driver.timers.set(m_id, dur, periodic ? dur : 0.seconds); }
|
do { m_driver.timers.set(m_id, dur, periodic ? dur : 0.seconds); }
|
||||||
|
|
||||||
/** Resets the timer and avoids any firing.
|
/** Resets the timer and avoids any firing.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -365,16 +365,16 @@ struct NetworkAddress {
|
||||||
|
|
||||||
@property inout(sockaddr_in)* sockAddrInet4() inout pure nothrow
|
@property inout(sockaddr_in)* sockAddrInet4() inout pure nothrow
|
||||||
in { assert (family == AF_INET); }
|
in { assert (family == AF_INET); }
|
||||||
body { return &addr_ip4; }
|
do { return &addr_ip4; }
|
||||||
|
|
||||||
@property inout(sockaddr_in6)* sockAddrInet6() inout pure nothrow
|
@property inout(sockaddr_in6)* sockAddrInet6() inout pure nothrow
|
||||||
in { assert (family == AF_INET6); }
|
in { assert (family == AF_INET6); }
|
||||||
body { return &addr_ip6; }
|
do { return &addr_ip6; }
|
||||||
|
|
||||||
version (Posix) {
|
version (Posix) {
|
||||||
@property inout(sockaddr_un)* sockAddrUnix() inout pure nothrow
|
@property inout(sockaddr_un)* sockAddrUnix() inout pure nothrow
|
||||||
in { assert (family == AddressFamily.UNIX); }
|
in { assert (family == AddressFamily.UNIX); }
|
||||||
body { return &addr_unix; }
|
do { return &addr_unix; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns a string representation of the IP address
|
/** Returns a string representation of the IP address
|
||||||
|
|
|
@ -190,7 +190,7 @@ in {
|
||||||
assert((cast(size_t) chunk.ptr) % T.alignof == 0,
|
assert((cast(size_t) chunk.ptr) % T.alignof == 0,
|
||||||
format("emplace: Misaligned memory block (0x%X): it must be %s-byte aligned for type %s", &chunk[0], T.alignof, T.stringof));
|
format("emplace: Misaligned memory block (0x%X): it must be %s-byte aligned for type %s", &chunk[0], T.alignof, T.stringof));
|
||||||
|
|
||||||
} body {
|
} do {
|
||||||
enum classSize = __traits(classInstanceSize, T);
|
enum classSize = __traits(classInstanceSize, T);
|
||||||
auto result = () @trusted { return cast(T) chunk.ptr; } ();
|
auto result = () @trusted { return cast(T) chunk.ptr; } ();
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ in {
|
||||||
assert((cast(size_t) chunk.ptr) % T.alignof == 0,
|
assert((cast(size_t) chunk.ptr) % T.alignof == 0,
|
||||||
format("emplace: Misaligned memory block (0x%X): it must be %s-byte aligned for type %s", &chunk[0], T.alignof, T.stringof));
|
format("emplace: Misaligned memory block (0x%X): it must be %s-byte aligned for type %s", &chunk[0], T.alignof, T.stringof));
|
||||||
|
|
||||||
} body {
|
} do {
|
||||||
return emplace(() @trusted { return cast(T*)chunk.ptr; } (), args);
|
return emplace(() @trusted { return cast(T*)chunk.ptr; } (), args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue