From c9d20230bf6f874a3e27bfae01b2cca0052b019b Mon Sep 17 00:00:00 2001 From: Csaba Kiraly Date: Thu, 15 Jun 2023 11:38:50 +0200 Subject: [PATCH] make chronosim work through patchFile patchFile is not a perfect solution, e.g. needs some handling of circular references, but seems to work good enough Signed-off-by: Csaba Kiraly --- chronosim/{chronosim.nim => chronos.nim} | 17 +++++++++++++---- das.nims | 1 + vendor/nim-libp2p-dht | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) rename chronosim/{chronosim.nim => chronos.nim} (88%) create mode 100644 das.nims diff --git a/chronosim/chronosim.nim b/chronosim/chronos.nim similarity index 88% rename from chronosim/chronosim.nim rename to chronosim/chronos.nim index 01b8530..69b2217 100644 --- a/chronosim/chronosim.nim +++ b/chronosim/chronos.nim @@ -8,9 +8,11 @@ import std/[tables, deques, random], - chronos, chronicles +# we can't import chronos directly, as patchFile would create a loop +import chronos/[asyncloop, asyncsync, handles, transport, timer, debugutils] + logScope: topics = "ChronoSim" @@ -20,10 +22,10 @@ const # chronos uses SomeIntegerI64. We shoudl be more specific here to override proc milliseconds*(v: int): Duration {.inline.} = - chronos.milliseconds(v * timeWarp) + timer.milliseconds(v * timeWarp) proc seconds*(v: int): Duration {.inline.} = - chronos.seconds(v * timeWarp) + timer.seconds(v * timeWarp) when(emulateDatagram): #enable network emulator type @@ -111,4 +113,11 @@ export seconds, milliseconds export TransportAddress, initTAddress export async, sleepAsync, complete, await export Future, FutureBase, newFuture, futureContinue -export TransportOsError \ No newline at end of file +export TransportOsError + +# export copied from chronos, except transport +export asyncloop, asyncsync, handles, timer, debugutils + +# export copied chronos/transport except what we replace +export common, stream, ipnet, osnet +export asyncstream, chunkstream diff --git a/das.nims b/das.nims new file mode 100644 index 0000000..5e159f9 --- /dev/null +++ b/das.nims @@ -0,0 +1 @@ +patchFile("chronos", "chronos", "chronosim/chronos") diff --git a/vendor/nim-libp2p-dht b/vendor/nim-libp2p-dht index 3afc006..8b3d676 160000 --- a/vendor/nim-libp2p-dht +++ b/vendor/nim-libp2p-dht @@ -1 +1 @@ -Subproject commit 3afc0063423aa6b38a247a7e8399d381cdcd6f7c +Subproject commit 8b3d67688069784a5651a18f672e0b2ada74e3b7