Commit graph

608 commits

Author SHA1 Message Date
Sönke Ludwig f56fd7580c Avoid reallocating the data in readFileUTF8 if the UTF encoding is valid.
Uses the immutable overload of sanitizeUTF8 to reuse the original buffer if possible.
2019-10-22 11:41:35 +02:00
Sönke Ludwig 2e4bc6a316 Improve performance of sanitizeUTF8/readFileUTF8.
Uses std.encoding.sanitize, which returns the original string, if all code points are properly encoded. Note that the performance could still be improved considerably by iterating over multiple bytes at once, fast skipping over characters that don't have the most significant bit set.
2019-10-22 11:40:23 +02:00
Sönke Ludwig 81ba969fd6 Reduce log noise for worker tasks. 2019-10-22 11:30:31 +02:00
Sönke Ludwig 2bf660a529 Bump version to 1.8.0-alpha.1. 2019-09-27 17:37:43 +02:00
The Dlang Bot b976519057
Merge pull request #180 from vibe-d/fix_yieldlock_destruction
Make sure that an uninitialized YieldLock does not decrement the lock counter
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2019-09-27 16:51:56 +02:00
Sönke Ludwig aae2c28ef6 Make sure that an uninitialized YieldLock does not decrement the lock counter.
Uninitialized YieldLock values can happen in various ways, dispite the default constructor being disabled. If any such value got destroyed, it would lead to a negative lock count. Since this is handled properly now, the default constructor is also enabled in this commit.
2019-09-27 15:09:06 +02:00
Leonid Kramer 24a83434e4
Merge pull request #179 from vibe-d/path_optimization
Add a nogc path segment API
2019-09-26 11:54:36 +02:00
Leonid Kramer 09eb24c5f6
Merge pull request #178 from vibe-d/drop_spinlock
Remove SpinLock and use core.sync.mutex.Mutex instead.
2019-09-26 10:37:37 +02:00
Sönke Ludwig 645896bcfd Use bySegment2 instead of bySegment for high-level functionality. 2019-09-19 15:33:00 +02:00
Sönke Ludwig 6ef53121ad Add GenericPath.bySegment2 and .head2 as fully nogc alternatives. 2019-09-19 15:32:59 +02:00
Sönke Ludwig 32858b7aee Rework the path segment encoding/decoding API.
- Deprecates Format.decodeSegment (returning a range of GemericPath.Segment) and added decodeSingleSegment instead, which returns a string instead.
- Adds Format.encodeSegment to encode a single path segment
2019-09-19 15:32:59 +02:00
Sönke Ludwig 5640516ba8 Remove SpinLock and use core.sync.mutex.Mutex instead.
The places that used it showed too much contention in load tests, so that the spin lock was more expensive that the regular OS mutex/futex.
2019-09-19 11:25:14 +02:00
Sönke Ludwig 591ab4a944
Merge pull request #177 from vibe-d/prepare_release
Prepare for 1.7.0 release
2019-09-17 23:40:53 +02:00
Sönke Ludwig 04be22b00e Bump version number. 2019-09-17 19:37:13 +02:00
Sönke Ludwig b775351e74 Update change log. 2019-09-17 19:37:13 +02:00
Sönke Ludwig 7f998a6bec Test on DMD 2.088.0 2019-09-17 19:37:13 +02:00
The Dlang Bot a39d3537ca
Merge pull request #171 from Geod24/deprecation
Clean up std.json deprecation, remove DUB hack in CI
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2019-09-17 16:05:12 +02:00
Sönke Ludwig db994eaa80
Fix compile error on old compiler versions 2019-09-17 15:22:41 +02:00
Geod24 e7294bb9bd Clean up std.json deprecation 2019-09-03 01:35:58 +09:00
Geod24 a88f9f92af Remove dub hack in Travis config 2019-09-03 01:35:58 +09:00
Sönke Ludwig ac548c2a24
Merge pull request #175 from JinShil/replace_hash_t
Replace `hash_t` and `sizediff_t` with `size_t` and `ptrdiff_t`
2019-08-31 10:30:24 +02:00
JinShil bb25789132 Replace sizediff_t with ptrdiff_t 2019-08-31 12:30:50 +09:00
JinShil eb4344653e Replace hash_t with size_t 2019-08-31 12:29:15 +09:00
The Dlang Bot da006ae154
Merge pull request #174 from vibe-d/test_ldc_1_17
Test on LDC 1.17.0.
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2019-08-26 23:23:58 +02:00
Sönke Ludwig 83b3c47578 Test on LDC 1.17.0. 2019-08-26 21:08:01 +02:00
Sönke Ludwig 3dff74fc0f Bump version number. 2019-08-25 17:12:49 +02:00
Sönke Ludwig 0ffbc84091 Disable non-master Travis runs. 2019-08-25 17:12:30 +02:00
Sönke Ludwig deda4bd973
Merge pull request #173 from vibe-d/async_fileops_improvements
Fix getFileInfo's exception handling and reduce overhead of the background work.
2019-08-25 17:11:47 +02:00
Sönke Ludwig c38d181670 Add basic tests for getFileInfo. 2019-08-25 14:09:59 +02:00
Sönke Ludwig d9e545bf60 Fix getFileInfo's exception handling and reduce overhead of the background work.
Instead of asyncWork, now uses a worker task directly and signals the finalization of the result using message passing. This avoids the roundtrip required to return the task handle, as well as the heap allocated result buffer of Future!T.
2019-08-25 12:02:08 +02:00
Sönke Ludwig d7dfb6cd23 Bump version number. 2019-08-24 16:36:48 +02:00
Sönke Ludwig 5c1992ac6a Update change log. 2019-08-24 16:35:50 +02:00
The Dlang Bot beac700a5b
Merge pull request #166 from vibe-d/update_compiler_support
Update to DMD 2.087.0 and LDC 1.6.0.
merged-on-behalf-of: Leonid Kramer <l-kramer@users.noreply.github.com>
2019-08-24 11:34:26 +02:00
Sönke Ludwig d549829c88 Fix process test. 2019-08-24 10:19:29 +02:00
Sönke Ludwig 771dc872c2 Restrict the set of tested compiler versions to the latest 4 + the oldest supported. 2019-08-23 09:54:22 +02:00
Sönke Ludwig 3e619560af Add watchdog and log output to vibe.core.process test. 2019-08-22 21:58:05 +02:00
Sönke Ludwig c74ce47cc9 Update to DMD 2.087.1 and LDC 1.6.0. 2019-08-22 21:58:05 +02:00
Sönke Ludwig ce1adf8c3b
Merge pull request #172 from vibe-d/async_file_operations
Avoid all blocking file operations outside of worker threads
2019-08-21 20:59:45 +02:00
Sönke Ludwig a2f970b7b2
Merge pull request #165 from vibe-d/pure_parent_path
Make GenericPath.parentPath pure.
2019-08-21 19:26:00 +02:00
Sönke Ludwig 84907ddbe3
Merge pull request #168 from v1ne/fix-appending-to-file
FileStream: Adjust file offset when appending to a file
2019-08-21 19:25:17 +02:00
Sönke Ludwig f6b97b04c3 Make GenericPath.parentPath pure. 2019-08-21 13:57:54 +02:00
Sönke Ludwig e3a38b374e Let all non-aio file system functions run in worker threads.
This avoids stalling the event loop in case of lengthy I/O (network shares, spinning up hard drives etc).
2019-08-21 13:34:00 +02:00
Sönke Ludwig 881e3da5f9 Make async marked safe if possible and add asyncWork.
asyncWork is the same as async, except that it guarantees that the computation happens in a worker thread.
2019-08-21 13:34:00 +02:00
Sönke Ludwig 4f5636dadf Mark async/Future and runWorkerTaskH as safe. 2019-08-21 13:34:00 +02:00
Sönke Ludwig 7c609dd07f
Merge pull request #169 from tchaloupka/connpool_unlockOnErr
Unlock ConnectionPool on failure
2019-07-31 22:38:37 +02:00
Tomáš Chaloupka 4e8302d10d unlock ConnectionPool on failure 2019-07-31 14:41:26 +02:00
v1ne 513bebcb95 FileStream: Approximate the file offset better when appending
Instead of starting at zero, start at the current file size. This offset
is stored in FileStream. It is only an approximation because concurrent
writes could advance the file without FileStream's knowledge.

Add a test that shows that the offset is approximated as expected and that
appending to an existing file works, too.

This is also a regression test which shows that appending to an existing
file works as expected. See vibe-d/eventcore#115.
2019-07-26 00:38:15 +02:00
v1ne ce9faec1c1 FileStream: Forbid seek(.) or truncate(.) when appending to a file
Those functions do not work for files opened for appending. Make this clear.
2019-07-26 00:29:59 +02:00
v1ne 3ebb065509 Clean up: Use "enforce" 2019-07-26 00:29:59 +02:00
Sönke Ludwig 382a8d8a11 Fix missing link. 2019-06-22 09:29:30 +02:00