diff --git a/.d-compiler b/.d-compiler index e1e25f1..a6a6aa9 100644 --- a/.d-compiler +++ b/.d-compiler @@ -1 +1 @@ -dmd-2.100.2 +dmd-2.104.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8ecbec..9d2df05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-20.04 ] - dc: [ dmd-2.100.2, ldc-1.30.0 ] + dc: [ dmd-2.104.0, ldc-1.32.2 ] runs-on: ${{ matrix.os }} steps: diff --git a/dub.selections.json b/dub.selections.json index 3020d47..b3775c9 100644 --- a/dub.selections.json +++ b/dub.selections.json @@ -4,16 +4,17 @@ "ae": "0.0.3228", "botan": "1.12.19", "botan-math": "1.0.3", - "diet-ng": "1.7.5", - "eventcore": "0.9.14", + "diet-ng": "1.8.1", + "eventcore": "0.9.25", "libasync": "0.8.6", - "memutils": "1.0.4", + "memutils": "1.0.9", "mir-linux-kernel": "1.0.1", - "openssl": "1.1.6+1.0.1g", + "openssl": "3.3.0", + "openssl-static": "1.0.2+3.0.8", "stdx-allocator": "2.77.5", "taggedalgebraic": "0.11.22", - "unit-threaded": "1.0.15", - "vibe-core": "1.18.0", - "vibe-d": "0.9.3" + "unit-threaded": "1.1.0", + "vibe-core": "2.2.0", + "vibe-d": "0.9.6" } } diff --git a/source/dlangbot/buildkite.d b/source/dlangbot/buildkite.d index 67fceec..091c8d2 100644 --- a/source/dlangbot/buildkite.d +++ b/source/dlangbot/buildkite.d @@ -106,12 +106,13 @@ Info queryState(string pipelineSearch=null) { import std.algorithm : map, remove, each; import std.array : array; + import std.exception : assertNotThrown; import vibe.core.core : runTask; typeof(return) ret; [ - { ret.organization = organization(pipelineSearch); }, - { ret.hcServers = hc.servers.remove!(s => !s.name.startsWith("ci-agent-")); }, + { ret.organization = organization(pipelineSearch).assertNotThrown; }, + { ret.hcServers = hc.servers.remove!(s => !s.name.startsWith("ci-agent-")).assertNotThrown; }, ].map!runTask.array.each!(task => task.join); return ret; } diff --git a/source/dlangbot/twitter.d b/source/dlangbot/twitter.d index eb01adb..d9a3930 100644 --- a/source/dlangbot/twitter.d +++ b/source/dlangbot/twitter.d @@ -99,7 +99,7 @@ struct OAuth import std.range : chain; import std.string : representation; - auto query = parameters.map!(a => a.byKeyValue.array) + auto query = parameters.map!(a => a.byKeyValue.array.dup) .joiner .array .sort diff --git a/source/dlangbot/utils.d b/source/dlangbot/utils.d index c335051..425bb4d 100644 --- a/source/dlangbot/utils.d +++ b/source/dlangbot/utils.d @@ -4,6 +4,7 @@ import core.time : seconds; import dlangbot.app : runAsync; +import vibe.core.log : logError; import vibe.http.client : HTTPClientRequest, HTTPClientResponse, HTTPClientSettings; import vibe.http.common : HTTPStatus; @@ -99,7 +100,17 @@ auto runTaskHelper(Fun, Args...)(Fun fun, auto ref Args args) import vibe.core.core : runTask; if (runAsync) - runTask(fun.toDelegate, args); + runTask({ + try + fun(args); + catch (Exception e) + { + try + logError(e.toString()); + catch (Exception) {} + assert(false, "Fatal error"); + } + }); else return fun(args); }