status-im / nim-chronos Goto Github PK
View Code? Open in Web Editor NEWChronos - An efficient library for asynchronous programming
Home Page: https://status-im.github.io/nim-chronos/docs/chronos
License: Apache License 2.0
Chronos - An efficient library for asynchronous programming
Home Page: https://status-im.github.io/nim-chronos/docs/chronos
License: Apache License 2.0
import chronos
var j = 0
proc f() {.async.} =
while true:
try:
await sleepAsync(4.millis)
break
finally:
inc j
proc f2() {.async.} =
for i in 0..<1:
try:
await sleepAsync(4.millis)
continue
finally:
inc j
waitFor(f())
waitFor(f2())
doAssert j == 2
Error: unhandled exception: /home/arnetheduck/status/nim-beacon-chain/beacon_chain/testit.nim(23, 10) `j == 2` [AssertionError]
EDIT: 2020-02-12 Expanded the introduction section with more details explaining the existing problems in non-structural async.
This is a proposal to change the semantics of the async
procs in a way that enforces a more structural control flow. The goal of the new APIs is to force you to await
your async operations, while still allowing you to easily execute multiple operations in parallel. The proposal eliminates a large category of usage errors with the old APIs and enables some additional optimisations such as storing your Future[T]
results on the stack and creating async procs consuming stack-based openarray[T]
inputs and var
parameters.
For a more comprehensive set of rationales for enforcing the structural control flow proposed here, please read the following article:
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
Acknowledgements: some of the key ideas in this proposal were first suggested by @yglukhov in private conversations.
Consider the following async proc:
proc checkBrokenLinks(uris: seq[Uri]): Future[seq[bool]] {.async.} =
## Tests all supplied URLs in parallel and returns
## whether they are still reachable or not.
...
If this wasn't an async proc, Nim would pass the supplied input sequence as a read-only reference (please note that I'm using C++ terminology here). This relies on the fact that the lifetime of the sequence at the call-site will surely extend until the moment the function delivers its result.
Unfortunately, in the async world this is no longer the case. The caller of checkBrokenLinks
is free to use it like this:
proc brokenCode: Future[seq[bool] =
var uris = @[
Uri.init("git://github.com/status-im/nim-chronos"),
Uri.init("https://status.team")
]
let brokenLinksFut = checkBrokenLinks(uris)
...
return brokenLinksFut
If the uris
sequence was passed by reference, the async proc may be resumed after brokenCode
returns which may result in accessing the now dangling reference. To avoid this problem, the Nim compiler makes sure to copy all input parameters of the async proc to corresponding fields in the "environment" struct associated with the async proc's closure iterator. This copying may be quite expensive for value types such as string
and seqs
and the users are advised to avoid using such type in async procs and to prefer using ref
parameters where only a pointer must be copied.
var
and openarray
parameters are not supportedAs a corollary from the previous problem, it becomes impossible to use var
and openarray
parameters with async procs, because these require the input data to be passed by reference.
Consider the following simple async proc:
proc terminateConnection(s: AsyncSocket) {.async.} =
var myDisconnectMsg: array[X, byte]
prepareDisconnect(myDisconnectMsg)
var res = s.send(addr MyDisconnectMsg[0], X) # oops, forgot to call await here
s.close()
It showcases two critical problems triggered by a simple omission of await
in the code:
send
operation will be working with bogus data.This proposal argues that the default behavior should be completely safe and impossible to misuse, while the more advanced concerns such as enabling parallel execution could be handled with a more specialized syntax.
We create a new set of APIs that hide the explicit use of Future
values in the user code and enforce awaiting of all async operations. If all operations are awaited, it becomes possible to store the inputs of the said operations in the "pseudo stack" associated with the async proc, which in turn enables the use of the reference types such as lent
, var
and openarray
providing much better safety than the current pointer/len
inputs.
So, here is the full set of new APIs:
await
to be given multiple arguments or a tupleproc httpRequest(url: string): Future[HttpResult]
proc jsonRpcCall(url: string): Future[JsonNode]
proc foo {.async.} =
var keyword = "Status"
var (googlePage, jsonData) = await(httpRequest(&"http://google.com/?q={keyword}"),
jsonRpcCall("localhost/myApi"))
echo "HTTP RESPONSE ", googlePage.status, "\n", googlePage.body
echo "JSON RESPONSE\n", jsonData{"result"}
This form of await
just performs the I/O operations in parallel returning a tuple of the final results. It is similar to using var r1 = request(); var r2 = request(); await all(r1, r2)
in the current design.
For convenience await (foo, bar)
is considered the same as await(foo,bar)
.
select
API (EDIT: this point is made partially obsolete by point 4)select
is a new API that is given a number of I/O operations that should be started in parallel. The key difference from await
is that the handlers installed for each operation will be executed as soon as any of the results are ready. Control flow keywords such as return
and break
can be used to cancel some of the outstanding operations:
proc foo {.async.} =
var keyword = "Status"
var timedOut = false
select:
httpRequest(&"http://google.com/?q={keyword}") as response:
# executes this as soon as it's ready
echo "HTTP RESPONSE ", googlePage.status, "\n", googlePage.body
jsonRpcCall("localhost/myApi") as jsonData:
echo jsonData{"result"}
return # returns from the current proc; skips the other handlers
*timeout(100):
# `timeout` is the same as `sleepAsync`
timedOut = true
break # continues after the select; skips the other handlers
echo "async ops ", if timedOut: "timed out" else: "finished"
The execution after the select
block continues when all of the handlers have been executed, although there must be a way to mark some of them as optional (here, I've used *
for this).
The named results are considered in scope after the select
statement. You can choose to only name a particular result without providing a handling block.
safeasync
pragma (EDIT: this may well be the default mode)The safeasync
pragma is responsible for inserting the await
keyword in automatic way. It also has the role of the current multisync
pragma in the sense that it allows you to compile the same code for both sync and async usage:
proc foo: bool {.safeasync.} =
var keyword = "Status"
# Notice how I don't need to use await anymore
var (googlePage, jsonData) = (httpRequest(&"http://google.com/?q={keyword}"),
jsonRpcCall("localhost/myApi"))
return googlePage.status == 200 and not jsonData.hasKey("error")
How does this work? It inserts a call to a template called implicitAwait
on each expression within the proc's body. implicitAwait
is defined as an identity for all non-future types and as a regular await
statement for all futures:
template implicitAwait(x: auto): auto = x
template implicitAwait(x: Future): auto = await x
Please note that the body of a safeasync
will work in synchronous mode by executing each operation in turn. It's also possible to compile the code for implicit off-loading to a background thread pool in programs that don't feature an asynchronous event loop.
Please note that using the await
statement may still be supported inside safeasync
procs. One may use it to improve the code clarity. It's also possible to implement safeasync
in an alternative way that requires the use of await
and signals any omission as an error, but the arguments for this are not very strong - in all code there might be significant differences between operations that are algorithmically cheaper or heavier. It's usually the names of the operations that reveal where the I/O waits will happen.
parallel
blocksI'm extending the proposal to also enhance Nim's parallel
construct with additional support for async operations. This proposal can replace the need for a separate select
API, although it could still exist as a simple high-level helper. The new features are the following:
Within parallel
blocks:
4.1) Allow spawn
to be followed by a do
block that will be executed with the result of the operation, once complete.
4.2) Allow spawn
to be used with procs returning Future[T]
results. spawn
immediately starts the async operation and it adds the Future
to a list of tasks to be awaited just before the exit of the parallel block. This enforces the structural handling of the async operations, but one can still work with the returned futures in the familiar fashion - passing them to helper procs, setting up callbacks and so on. It is guaranteed that the callbacks will be executed in the same thread that has entered the parallel block.
4.3) Add a new call called spawnOptional
that launches non-critical parallel operations. If the parallel
block is able to complete before all such operations have completed, they are simply cancelled.
4.4) Support break
and return
in parallel blocks by cancelling all outstanding operations.
With such an API, the select
example above becomes:
proc foo {.async.} =
var keyword = "Status"
var timedOut = false
parallel:
spawn httpRequest(&"http://google.com/?q={keyword}") do (response):
# executes this as soon as it's ready
echo "HTTP RESPONSE ", googlePage.status, "\n", googlePage.body
spawn jsonRpcCall("localhost/myApi") do (jsonData):
echo jsonData{"result"}
return # returns from the current proc; skips the other handlers
spawnOptional timeout(100) do:
# `timeout` is the same as `sleepAsync`
timedOut = true
break # continues after the select; skips the other handlers
echo "async ops ", if timedOut: "timed out" else: "finished"
Please note that such a parallel
block will be more powerful than the select
construct, because it enables you to add multiple tasks to be awaited from a loop.
The use of parallel
blocks and spawn
comes at a cost. All parameters passed in the spawn
expression must be copied inside the spawned task. Please note that this matches precisely the behavior of spawn
when it comes to sending computational tasks to a thread pool as well.
4.5) Introduce an underlying object representing the "parallel block" and create an accessor for it (e.g. a thisParallelBlock
magic valid only inside the block). This object will feature operations such as addThreadJob
, addAsyncIO
, addOptionalAsyncIO
. It's the equivalent to the nursery
object described in the article linked in the abstract. Its goal is to enable the creation of helper libraries that perform something with the parallel block context.
parallel:
addJobs(thisParallelBlock)
4.6) Define the exception-handling semantics inside parallel blocks - if an exception is thrown by a spawned task inside a parallel block, this exception will be re-raised in the thread that has entered the block. All other spawned tasks are cancelled.
spawn
outside of parallel
blocks.This is an escape hatch that will replace the current usages of asyncCheck
and traceAsyncErrors
. Semantically, it spawns a new "async thread" of execution. Just like when spawning a regular thread, all parameters passed to the spawn
expression must be copied or moved in the new thread. The spawned function must annotated with raises: [Defect]
. If it terminates with a Defect
, the whole process is also terminated.
async
A semi backwards-compatible async
pragma can be added to serve as a drop-in replacement for the existing async
pragma. It will differ in only one way. All started async operations will be added to a list that is awaited at the end of their scope. This is not strictly backwards-compatible, but most of the existing async code should not be affected by the change in semantics.
Implement scheme which will track create/(complete or fail) of Future[T]
objects.
In such way developer can find never completed Future[T]
objects which can lead to memory leaks.
All Future[T]
objects are identified by string fromProc
and unique id
. fromProc
is passed as argument in newFuture[T]()
. Unique id
is maintained inside of newFuture[T]()
procedure.
Maintain 3 counters:
Future[T]
objects, note that all Future[T]
objects must be created with newFuture(xxx)() procedures.Future[T]
objects. (Future[T]
is got completed on complete()
call).Future[T]
objects. (Future[T]
is got failed on fail()
call).If there no leaking Futures number of created Futures must be equal to the sum of number of completed Futures and number of failed Futures.
Maintable table which will hold all the created Future[T]
objects and information about it. This can be Table[FutureFromProc, Table[FutureID, FutureInfo]]
.
FutureFromProc
is a string which is representing fromProc
argument of newFuture[T]() procedure call.
FutureIDis integer which representing
Future[T]unique identifier.
FutureInfo` is object which holds:
Future[T]
moment of creation (or epoch time).Table elements will be added when the Future[T]
is created and deleted when the
Future[T]
got completed or failed.
Provide procedure which will dump all the information from table in convenient way.
chronos provide readUntill raise two kinds of exception that I can handle, but when exception occurs I dont know how much bytes read , the parsing logic heavily relies on it.
https://nim-lang.org/docs/asyncdispatch.html#recvInto%2CAsyncFD%2Cpointer%2Cint
Currently {.async.}
transformation catches all possible exceptions inside transformed procedures and stores it inside procedure's result Future[T] object.
As you can see here it catches all the exceptions:
https://github.com/status-im/nim-chronos/blob/master/chronos/asyncmacro2.nim#L55
Question is do we need to continue catching all possible exceptions or we should catch only CatchableError
level?
This is one word fix.
CC: @arnetheduck @zah @mratsim @sinkingsugar @dryajov @kdeme
Async stack traces should not reside in the msg
field of the exception - this field is meant for a short, human-readable description of the error that can be logged on a single line.
The Exception object already contains a parent
field for exceptions - this, together with a dedicated FutureError exception that has a source
field for the purpose would allow code that logs the exception to deliver a better UX.
Unhandled exception: (10013) An attempt was made to access a socket in a way forbidden by its access permissions.
2020-01-05T05:18:22.3688614Z ##[section]Starting: Run CI
2020-01-05T05:18:22.3810536Z ==============================================================================
2020-01-05T05:18:22.3810656Z Task : Bash
2020-01-05T05:18:22.3810722Z Description : Run a Bash script on macOS, Linux, or Windows
2020-01-05T05:18:22.3810812Z Version : 3.159.3
2020-01-05T05:18:22.3810870Z Author : Microsoft Corporation
2020-01-05T05:18:22.3810962Z Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/bash
2020-01-05T05:18:22.3811040Z ==============================================================================
2020-01-05T05:18:22.6289909Z Generating script.
2020-01-05T05:18:22.6467554Z [command]"C:\Program Files\Git\bin\bash.exe" --noprofile --norc -c pwd
2020-01-05T05:18:22.6847557Z /d/a/_temp
2020-01-05T05:18:22.6903689Z
2020-01-05T05:18:22.6936416Z ========================== Starting Command Output ===========================
2020-01-05T05:18:22.6944226Z [command]"C:\Program Files\Git\bin\bash.exe" --noprofile --norc /d/a/_temp/e1e42a12-752b-44b5-a35e-b760a96619f5.sh
2020-01-05T05:18:22.7502383Z runCI:
2020-01-05T05:18:22.7503123Z D:\a\1\s\koch.exe boot -d:release -d:danger
2020-01-05T05:18:22.7631223Z iteration: 1
2020-01-05T05:18:22.7700262Z bin\nim.exe c --skipUserCfg --skipParentCfg -d:release -d:danger --nimcache:nimcache/r_windows_amd64 --compileOnly compiler\nim.nim
2020-01-05T05:18:22.7835006Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:18:22.7835362Z Hint: used config file 'd:\a\1\s\compiler\nim.cfg' [Conf]
2020-01-05T05:18:22.7835549Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:18:22.8584632Z Hint: system [Processing]
2020-01-05T05:18:23.0740968Z Hint: widestrs [Processing]
2020-01-05T05:18:23.0844947Z Hint: io [Processing]
2020-01-05T05:18:23.0990171Z Hint: nim [Processing]
2020-01-05T05:18:23.0999072Z Hint: commands [Processing]
2020-01-05T05:18:23.1009243Z Hint: os [Processing]
2020-01-05T05:18:23.1020844Z Hint: strutils [Processing]
2020-01-05T05:18:23.1027169Z Hint: parseutils [Processing]
2020-01-05T05:18:23.1181401Z Hint: math [Processing]
2020-01-05T05:18:23.1194419Z Hint: bitops [Processing]
2020-01-05T05:18:23.1207461Z Hint: macros [Processing]
2020-01-05T05:18:23.1767079Z Hint: algorithm [Processing]
2020-01-05T05:18:23.1824060Z Hint: unicode [Processing]
2020-01-05T05:18:23.6845173Z Hint: pathnorm [Processing]
2020-01-05T05:18:23.6852822Z Hint: osseps [Processing]
2020-01-05T05:18:23.6905128Z Hint: winlean [Processing]
2020-01-05T05:18:23.6912675Z Hint: dynlib [Processing]
2020-01-05T05:18:23.6958335Z d:\a\1\s\lib\windows\winlean.nim(407, 12) Warning: ze64 is deprecated [Deprecated]
2020-01-05T05:18:23.6961768Z d:\a\1\s\lib\windows\winlean.nim(407, 38) Warning: ze64 is deprecated [Deprecated]
2020-01-05T05:18:23.6962213Z d:\a\1\s\lib\windows\winlean.nim(410, 12) Warning: ze64 is deprecated [Deprecated]
2020-01-05T05:18:23.6962434Z d:\a\1\s\lib\windows\winlean.nim(410, 37) Warning: ze64 is deprecated [Deprecated]
2020-01-05T05:18:23.7034209Z Hint: times [Processing]
2020-01-05T05:18:23.7056562Z Hint: options [Processing]
2020-01-05T05:18:23.7056975Z Hint: typetraits [Processing]
2020-01-05T05:18:23.7103875Z Hint: time_t [Processing]
2020-01-05T05:18:23.7876857Z d:\a\1\s\lib\pure\times.nim(2467, 26) Warning: countLeapYears is deprecated [Deprecated]
2020-01-05T05:18:24.6635852Z d:\a\1\s\lib\pure\times.nim(2474, 15) Warning: countLeapYears is deprecated [Deprecated]
2020-01-05T05:18:24.6636064Z d:\a\1\s\lib\pure\times.nim(2482, 24) Warning: countLeapYears is deprecated [Deprecated]
2020-01-05T05:18:24.6636175Z d:\a\1\s\lib\pure\os.nim(2120, 6) Warning: declared lock level is 0, but real lock level is <unknown> [LockLevel]
2020-01-05T05:18:24.6636264Z d:\a\1\s\lib\pure\os.nim(2237, 6) Warning: declared lock level is 0, but real lock level is <unknown> [LockLevel]
2020-01-05T05:18:24.6636366Z d:\a\1\s\lib\pure\os.nim(2370, 6) Warning: declared lock level is 0, but real lock level is <unknown> [LockLevel]
2020-01-05T05:18:24.6647440Z Hint: msgs [Processing]
2020-01-05T05:18:24.6647521Z Hint: options [Processing]
2020-01-05T05:18:24.6647577Z Hint: strtabs [Processing]
2020-01-05T05:18:24.6647648Z Hint: hashes [Processing]
2020-01-05T05:18:24.6647702Z Hint: sets [Processing]
2020-01-05T05:18:24.6647773Z Hint: lineinfos [Processing]
2020-01-05T05:18:24.6647995Z Hint: ropes [Processing]
2020-01-05T05:18:24.6648063Z Hint: pathutils [Processing]
2020-01-05T05:18:24.6648116Z Hint: tables [Processing]
2020-01-05T05:18:24.6648168Z Hint: platform [Processing]
2020-01-05T05:18:24.6648238Z Hint: prefixmatches [Processing]
2020-01-05T05:18:24.6648292Z Hint: terminal [Processing]
2020-01-05T05:18:24.6648361Z Hint: strformat [Processing]
2020-01-05T05:18:24.6648412Z Hint: colors [Processing]
2020-01-05T05:18:24.6648492Z d:\a\1\s\lib\pure\terminal.nim(582, 42) Warning: toU16 is deprecated [Deprecated]
2020-01-05T05:18:24.6648569Z d:\a\1\s\lib\pure\terminal.nim(584, 42) Warning: toU16 is deprecated [Deprecated]
2020-01-05T05:18:24.6648672Z d:\a\1\s\lib\pure\terminal.nim(611, 42) Warning: toU16 is deprecated [Deprecated]
2020-01-05T05:18:24.6648743Z d:\a\1\s\lib\pure\terminal.nim(613, 42) Warning: toU16 is deprecated [Deprecated]
2020-01-05T05:18:24.6649022Z Hint: nversion [Processing]
2020-01-05T05:18:24.6649279Z Hint: condsyms [Processing]
2020-01-05T05:18:24.6649364Z Hint: extccomp [Processing]
2020-01-05T05:18:24.6649428Z Hint: osproc [Processing]
2020-01-05T05:18:24.6649508Z Hint: streams [Processing]
2020-01-05T05:18:24.6649569Z Hint: cpuinfo [Processing]
2020-01-05T05:18:24.6649646Z Hint: sha1 [Processing]
2020-01-05T05:18:24.6649707Z Hint: endians [Processing]
2020-01-05T05:18:24.6649783Z Hint: sequtils [Processing]
2020-01-05T05:18:24.6649844Z Hint: json [Processing]
2020-01-05T05:18:24.6649921Z Hint: lexbase [Processing]
2020-01-05T05:18:24.6649982Z Hint: parsejson [Processing]
2020-01-05T05:18:24.6650059Z Hint: wordrecg [Processing]
2020-01-05T05:18:24.6650120Z Hint: nimblecmd [Processing]
2020-01-05T05:18:24.6650352Z Hint: parseopt [Processing]
2020-01-05T05:18:24.6650432Z Hint: incremental [Processing]
2020-01-05T05:18:24.6650495Z Hint: main [Processing]
2020-01-05T05:18:24.6650577Z Hint: llstream [Processing]
2020-01-05T05:18:24.6650640Z Hint: ast [Processing]
2020-01-05T05:18:24.6650720Z Hint: idents [Processing]
2020-01-05T05:18:24.6650780Z Hint: idgen [Processing]
2020-01-05T05:18:24.6650863Z Hint: int128 [Processing]
2020-01-05T05:18:24.6650925Z Hint: lexer [Processing]
2020-01-05T05:18:24.6651007Z Hint: nimlexbase [Processing]
2020-01-05T05:18:24.6651070Z Hint: syntaxes [Processing]
2020-01-05T05:18:24.6651153Z Hint: parser [Processing]
2020-01-05T05:18:24.6651214Z Hint: filters [Processing]
2020-01-05T05:18:24.6651293Z Hint: renderer [Processing]
2020-01-05T05:18:24.7020535Z Hint: filter_tmpl [Processing]
2020-01-05T05:18:24.7191438Z Hint: sem [Processing]
2020-01-05T05:18:24.7234274Z Hint: astalgo [Processing]
2020-01-05T05:18:24.7255707Z Hint: intsets [Processing]
2020-01-05T05:18:24.7386453Z Hint: rodutils [Processing]
2020-01-05T05:18:24.8464111Z Hint: trees [Processing]
2020-01-05T05:18:24.8586812Z Hint: types [Processing]
2020-01-05T05:18:24.8641118Z d:\a\1\s\compiler\types.nim(113, 23) Warning: use getOrdvalue; getOrdValue64 is deprecated [Deprecated]
2020-01-05T05:18:24.9775968Z Hint: magicsys [Processing]
2020-01-05T05:18:24.9794372Z Hint: modulegraphs [Processing]
2020-01-05T05:18:24.9828123Z Hint: btrees [Processing]
2020-01-05T05:18:24.9853950Z Hint: md5 [Processing]
2020-01-05T05:18:25.0231620Z Hint: nimsets [Processing]
2020-01-05T05:18:25.0248751Z Hint: bitsets [Processing]
2020-01-05T05:18:25.0390789Z Hint: semfold [Processing]
2020-01-05T05:18:25.0897613Z Hint: modulepaths [Processing]
2020-01-05T05:18:25.0941407Z Hint: importer [Processing]
2020-01-05T05:18:25.0968638Z Hint: lookups [Processing]
2020-01-05T05:18:25.0993035Z Hint: semdata [Processing]
2020-01-05T05:18:25.1020335Z Hint: vmdef [Processing]
2020-01-05T05:18:25.1276813Z Hint: prettybase [Processing]
2020-01-05T05:18:25.1294541Z Hint: linter [Processing]
2020-01-05T05:18:25.1616369Z Hint: sigmatch [Processing]
2020-01-05T05:18:25.1649480Z Hint: semtypinst [Processing]
2020-01-05T05:18:25.2018182Z Hint: parampatterns [Processing]
2020-01-05T05:18:25.2223008Z Hint: lowerings [Processing]
2020-01-05T05:18:25.4500349Z Hint: procfind [Processing]
2020-01-05T05:18:25.4564791Z Hint: pragmas [Processing]
2020-01-05T05:18:25.5314448Z Hint: passes [Processing]
2020-01-05T05:18:25.5338276Z Hint: reorder [Processing]
2020-01-05T05:18:25.5614304Z Hint: rod [Processing]
2020-01-05T05:18:25.5762000Z Hint: transf [Processing]
2020-01-05T05:18:25.5787523Z Hint: cgmeth [Processing]
2020-01-05T05:18:25.5814060Z Hint: sempass2 [Processing]
2020-01-05T05:18:25.5852680Z Hint: guards [Processing]
2020-01-05T05:18:25.5876407Z Hint: saturate [Processing]
2020-01-05T05:18:25.6807929Z Hint: liftdestructors [Processing]
2020-01-05T05:18:25.6831981Z Hint: sighashes [Processing]
2020-01-05T05:18:25.8876645Z Hint: liftlocals [Processing]
2020-01-05T05:18:25.8934760Z Hint: closureiters [Processing]
2020-01-05T05:18:25.8952377Z Hint: lambdalifting [Processing]
2020-01-05T05:18:26.1071365Z Hint: vm [Processing]
2020-01-05T05:18:26.1088155Z Hint: vmgen [Processing]
2020-01-05T05:18:26.2411106Z Hint: vmdeps [Processing]
2020-01-05T05:18:26.2586548Z Hint: vmmarshal [Processing]
2020-01-05T05:18:26.2898016Z Hint: gorgeimpl [Processing]
2020-01-05T05:18:26.2947409Z Hint: macrocacheimpl [Processing]
2020-01-05T05:18:26.2977301Z Hint: evaltempl [Processing]
2020-01-05T05:18:26.6126763Z Hint: aliases [Processing]
2020-01-05T05:18:26.6246471Z Hint: patterns [Processing]
2020-01-05T05:18:26.6480207Z Hint: semmacrosanity [Processing]
2020-01-05T05:18:26.6575042Z Hint: active [Processing]
2020-01-05T05:18:26.6590374Z Hint: pluginsupport [Processing]
2020-01-05T05:18:26.6630951Z Hint: locals [Processing]
2020-01-05T05:18:26.6707523Z Hint: itersgen [Processing]
2020-01-05T05:18:26.6768520Z Hint: spawn [Processing]
2020-01-05T05:18:26.7007094Z Hint: semparallel [Processing]
2020-01-05T05:18:28.5879598Z Hint: cgen [Processing]
2020-01-05T05:18:28.5934252Z Hint: ccgutils [Processing]
2020-01-05T05:18:28.6013127Z Hint: treetab [Processing]
2020-01-05T05:18:28.6089769Z Hint: cgendata [Processing]
2020-01-05T05:18:28.6114843Z Hint: ndi [Processing]
2020-01-05T05:18:28.6190272Z Hint: ccgmerge [Processing]
2020-01-05T05:18:28.6438076Z Hint: enumtostr [Processing]
2020-01-05T05:18:28.6511904Z Hint: injectdestructors [Processing]
2020-01-05T05:18:28.6547560Z Hint: dfa [Processing]
2020-01-05T05:18:30.0463693Z Hint: nimconf [Processing]
2020-01-05T05:18:30.0612093Z Hint: passaux [Processing]
2020-01-05T05:18:30.0643155Z Hint: depends [Processing]
2020-01-05T05:18:30.0683876Z Hint: modules [Processing]
2020-01-05T05:18:30.0887353Z Hint: jsgen [Processing]
2020-01-05T05:18:30.3403283Z Hint: docgen [Processing]
2020-01-05T05:18:30.3453270Z Hint: rstast [Processing]
2020-01-05T05:18:30.3541746Z Hint: rst [Processing]
2020-01-05T05:18:30.4118607Z Hint: rstgen [Processing]
2020-01-05T05:18:30.4147459Z Hint: highlite [Processing]
2020-01-05T05:18:30.5525812Z Hint: xmltree [Processing]
2020-01-05T05:18:30.5674318Z Hint: cgi [Processing]
2020-01-05T05:18:30.5685754Z Hint: cookies [Processing]
2020-01-05T05:18:30.5715393Z Hint: uri [Processing]
2020-01-05T05:18:30.5907007Z Hint: typesrenderer [Processing]
2020-01-05T05:18:30.6700279Z Hint: docgen2 [Processing]
2020-01-05T05:18:30.7764604Z Hint: cmdlinehelper [Processing]
2020-01-05T05:18:30.7783065Z Hint: scriptconfig [Processing]
2020-01-05T05:18:34.2369061Z Hint: operation successful (142040 lines compiled; 11.381 sec total; 409.363MiB peakmem; Dangerous Release Build) [SuccessX]
2020-01-05T05:18:34.3128588Z bin\nim.exe jsonscript -d:release -d:danger --nimcache:nimcache/r_windows_amd64 compiler\nim.nim
2020-01-05T05:18:34.3277812Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:18:34.3278266Z Hint: used config file 'd:\a\1\s\compiler\nim.cfg' [Conf]
2020-01-05T05:18:34.3278691Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:18:34.4020082Z CC: stdlib_assertions.nim
2020-01-05T05:18:34.4047832Z CC: stdlib_dollars.nim
2020-01-05T05:18:34.4672011Z CC: stdlib_formatfloat.nim
2020-01-05T05:18:34.4724957Z CC: stdlib_widestrs.nim
2020-01-05T05:18:34.5432662Z CC: stdlib_io.nim
2020-01-05T05:18:34.5810839Z CC: stdlib_system.nim
2020-01-05T05:18:34.8820596Z CC: stdlib_parseutils.nim
2020-01-05T05:18:35.0254358Z CC: stdlib_math.nim
2020-01-05T05:18:35.0958412Z CC: stdlib_algorithm.nim
2020-01-05T05:18:35.4094052Z CC: stdlib_unicode.nim
2020-01-05T05:18:35.4726549Z CC: stdlib_strutils.nim
2020-01-05T05:18:36.5636463Z CC: stdlib_pathnorm.nim
2020-01-05T05:18:36.7164223Z CC: stdlib_dynlib.nim
2020-01-05T05:18:37.1613357Z CC: stdlib_winlean.nim
2020-01-05T05:18:37.2544369Z CC: stdlib_times.nim
2020-01-05T05:18:37.4969461Z CC: stdlib_os.nim
2020-01-05T05:18:37.8891592Z CC: stdlib_hashes.nim
2020-01-05T05:18:38.0057685Z CC: stdlib_strtabs.nim
2020-01-05T05:18:38.2659041Z CC: stdlib_sets.nim
2020-01-05T05:18:38.4113715Z CC: pathutils.nim
2020-01-05T05:18:38.4915526Z CC: ropes.nim
2020-01-05T05:18:38.5155631Z CC: stdlib_tables.nim
2020-01-05T05:18:40.8305028Z CC: lineinfos.nim
2020-01-05T05:18:41.0118944Z CC: platform.nim
2020-01-05T05:18:41.0421216Z CC: prefixmatches.nim
2020-01-05T05:18:41.1314562Z CC: stdlib_terminal.nim
2020-01-05T05:18:41.1485682Z CC: options.nim
2020-01-05T05:18:41.2665151Z CC: msgs.nim
2020-01-05T05:18:41.9699704Z CC: condsyms.nim
2020-01-05T05:18:42.0734282Z CC: stdlib_streams.nim
2020-01-05T05:18:42.3014872Z CC: stdlib_cpuinfo.nim
2020-01-05T05:18:42.3629857Z CC: stdlib_osproc.nim
2020-01-05T05:18:42.6401848Z CC: stdlib_sha1.nim
2020-01-05T05:18:42.7836414Z CC: stdlib_lexbase.nim
2020-01-05T05:18:42.9007992Z CC: stdlib_parsejson.nim
2020-01-05T05:18:43.0092011Z CC: stdlib_json.nim
2020-01-05T05:18:43.3024205Z CC: extccomp.nim
2020-01-05T05:18:43.4365232Z CC: wordrecg.nim
2020-01-05T05:18:43.5233679Z CC: nimblecmd.nim
2020-01-05T05:18:43.7608966Z CC: stdlib_parseopt.nim
2020-01-05T05:18:48.1823066Z CC: incremental.nim
2020-01-05T05:18:48.1823209Z CC: commands.nim
2020-01-05T05:18:48.1823295Z CC: llstream.nim
2020-01-05T05:18:48.1823355Z CC: idents.nim
2020-01-05T05:18:48.1823434Z CC: idgen.nim
2020-01-05T05:18:48.1823493Z CC: int1288.nim
2020-01-05T05:18:48.1823570Z CC: ast.nim
2020-01-05T05:18:48.1823628Z CC: nimlexbase.nim
2020-01-05T05:18:48.1823688Z CC: lexer.nim
2020-01-05T05:18:48.1823767Z CC: parser.nim
2020-01-05T05:18:48.1823825Z CC: renderer.nim
2020-01-05T05:18:48.1823903Z CC: filters.nim
2020-01-05T05:18:48.2998188Z CC: filter__tmpl.nim
2020-01-05T05:18:48.5065245Z CC: syntaxes.nim
2020-01-05T05:18:48.6432321Z CC: stdlib_intsets.nim
2020-01-05T05:18:48.7174868Z CC: rodutils.nim
2020-01-05T05:18:48.8455789Z CC: astalgo.nim
2020-01-05T05:18:49.1237610Z CC: trees.nim
2020-01-05T05:18:49.4509288Z CC: types.nim
2020-01-05T05:18:49.7339599Z CC: btrees.nim
2020-01-05T05:18:49.9426127Z CC: stdlib_md5.nim
2020-01-05T05:18:50.2698182Z CC: modulegraphs.nim
2020-01-05T05:18:50.6719894Z CC: magicsys.nim
2020-01-05T05:18:51.0269348Z CC: bitsets.nim
2020-01-05T05:18:51.1265606Z CC: nimsets.nim
2020-01-05T05:18:51.2619972Z CC: semfold.nim
2020-01-05T05:18:51.5082143Z CC: modulepaths.nim
2020-01-05T05:18:51.6082982Z CC: vmdef.nim
2020-01-05T05:18:51.9157842Z CC: semdata.nim
2020-01-05T05:18:52.2424942Z CC: linter.nim
2020-01-05T05:18:52.4682965Z CC: nimfix7prettybase.nim
2020-01-05T05:18:52.5931201Z CC: lookups.nim
2020-01-05T05:18:52.9404349Z CC: semtypinst.nim
2020-01-05T05:18:53.0306173Z CC: parampatterns.nim
2020-01-05T05:18:53.3716619Z CC: lowerings.nim
2020-01-05T05:18:53.6912325Z CC: sigmatch.nim
2020-01-05T05:18:53.9800632Z CC: importer.nim
2020-01-05T05:18:54.2858640Z CC: procfind.nim
2020-01-05T05:18:54.3847820Z CC: pragmas.nim
2020-01-05T05:18:55.5769731Z CC: reorder.nim
2020-01-05T05:18:56.2336806Z CC: passes.nim
2020-01-05T05:18:56.4616996Z CC: saturate.nim
2020-01-05T05:18:56.4852177Z CC: guards.nim
2020-01-05T05:18:56.5285606Z CC: sighashes.nim
2020-01-05T05:18:56.9260323Z CC: liftdestructors.nim
2020-01-05T05:18:57.8543967Z CC: sempass2.nim
2020-01-05T05:18:57.8950750Z CC: cgmeth.nim
2020-01-05T05:18:58.2299080Z CC: liftlocals.nim
2020-01-05T05:18:58.3967102Z CC: lambdalifting.nim
2020-01-05T05:18:59.0937982Z CC: closureiters.nim
2020-01-05T05:18:59.1267035Z CC: transf.nim
2020-01-05T05:19:00.4558557Z CC: vmgen.nim
2020-01-05T05:19:00.9371840Z CC: vmdeps.nim
2020-01-05T05:19:01.2646688Z CC: vmmarshal.nim
2020-01-05T05:19:01.6703114Z CC: gorgeimpl.nim
2020-01-05T05:19:01.7955953Z CC: macrocacheimpl.nim
2020-01-05T05:19:01.8616240Z CC: evaltempl.nim
2020-01-05T05:19:02.0868060Z CC: vm.nim
2020-01-05T05:19:02.6197968Z CC: aliases.nim
2020-01-05T05:19:02.8326568Z CC: patterns.nim
2020-01-05T05:19:03.2342504Z CC: semmacrosanity.nim
2020-01-05T05:19:03.5623942Z CC: pluginsupport.nim
2020-01-05T05:19:03.6246207Z CC: plugins7locals.nim
2020-01-05T05:19:03.7169094Z CC: plugins7itersgen.nim
2020-01-05T05:19:03.7946785Z CC: plugins7active.nim
2020-01-05T05:19:03.8710390Z CC: spawn.nim
2020-01-05T05:19:04.2568779Z CC: semparallel.nim
2020-01-05T05:19:04.8352806Z CC: sem.nim
2020-01-05T05:19:08.4172043Z CC: ccgutils.nim
2020-01-05T05:19:08.4172148Z CC: treetab.nim
2020-01-05T05:19:08.4172627Z CC: ndi.nim
2020-01-05T05:19:08.4172685Z CC: cgendata.nim
2020-01-05T05:19:08.4172764Z CC: ccgmerge.nim
2020-01-05T05:19:08.4172828Z CC: enumtostr.nim
2020-01-05T05:19:08.4172906Z CC: dfa.nim
2020-01-05T05:19:08.4172962Z CC: injectdestructors.nim
2020-01-05T05:19:08.4185188Z CC: cgen.nim
2020-01-05T05:19:14.0717501Z CC: nimconf.nim
2020-01-05T05:19:14.5627861Z CC: passaux.nim
2020-01-05T05:19:14.6360332Z CC: depends.nim
2020-01-05T05:19:14.7487581Z CC: modules.nim
2020-01-05T05:19:14.9327133Z CC: jsgen.nim
2020-01-05T05:19:17.6637194Z CC: _7lib7packages7docutils7rstast.nim
2020-01-05T05:19:17.7888298Z CC: _7lib7packages7docutils7rst.nim
2020-01-05T05:19:19.8976838Z CC: _7lib7packages7docutils7highlite.nim
2020-01-05T05:19:23.7839763Z CC: _7lib7packages7docutils7rstgen.nim
2020-01-05T05:19:23.7840031Z CC: stdlib_xmltree.nim
2020-01-05T05:19:23.7840083Z CC: stdlib_uri.nim
2020-01-05T05:19:23.7840147Z CC: stdlib_cgi.nim
2020-01-05T05:19:23.7840196Z CC: typesrenderer.nim
2020-01-05T05:19:23.7840266Z CC: docgen.nim
2020-01-05T05:19:23.7840315Z CC: docgen2.nim
2020-01-05T05:19:23.7840361Z CC: main.nim
2020-01-05T05:19:23.7840427Z CC: scriptconfig.nim
2020-01-05T05:19:23.7840475Z CC: cmdlinehelper.nim
2020-01-05T05:19:23.7840539Z CC: nim.nim
2020-01-05T05:19:23.7840584Z iteration: 2
2020-01-05T05:19:23.7840665Z compiler\nim1.exe c -d:release -d:danger --nimcache:nimcache/r_windows_amd64 --compileOnly compiler\nim.nim
2020-01-05T05:19:23.7840739Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:19:23.7840820Z Hint: used config file 'd:\a\1\s\compiler\nim.cfg' [Conf]
2020-01-05T05:19:23.7840905Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:19:23.8017980Z Hint: system [Processing]
2020-01-05T05:19:24.0012712Z Hint: widestrs [Processing]
2020-01-05T05:19:24.0122597Z Hint: io [Processing]
2020-01-05T05:19:24.0343446Z Hint: nim [Processing]
2020-01-05T05:19:24.0352820Z Hint: commands [Processing]
2020-01-05T05:19:24.0365362Z Hint: os [Processing]
2020-01-05T05:19:24.0377112Z Hint: strutils [Processing]
2020-01-05T05:19:24.0383094Z Hint: parseutils [Processing]
2020-01-05T05:19:24.0526301Z Hint: math [Processing]
2020-01-05T05:19:24.0543860Z Hint: bitops [Processing]
2020-01-05T05:19:24.0559814Z Hint: macros [Processing]
2020-01-05T05:19:24.1085381Z Hint: algorithm [Processing]
2020-01-05T05:19:24.1158769Z Hint: unicode [Processing]
2020-01-05T05:19:24.4937560Z Hint: pathnorm [Processing]
2020-01-05T05:19:24.4943613Z Hint: osseps [Processing]
2020-01-05T05:19:24.5008831Z Hint: winlean [Processing]
2020-01-05T05:19:24.5014123Z Hint: dynlib [Processing]
2020-01-05T05:19:24.5130297Z Hint: times [Processing]
2020-01-05T05:19:24.5147659Z Hint: options [Processing]
2020-01-05T05:19:24.5154676Z Hint: typetraits [Processing]
2020-01-05T05:19:24.5217203Z Hint: time_t [Processing]
2020-01-05T05:19:24.6432389Z Hint: msgs [Processing]
2020-01-05T05:19:24.6489290Z Hint: options [Processing]
2020-01-05T05:19:24.6490187Z Hint: strtabs [Processing]
2020-01-05T05:19:24.6490631Z Hint: hashes [Processing]
2020-01-05T05:19:24.6673715Z Hint: sets [Processing]
2020-01-05T05:19:24.6755862Z Hint: lineinfos [Processing]
2020-01-05T05:19:24.6766267Z Hint: ropes [Processing]
2020-01-05T05:19:24.6774223Z Hint: pathutils [Processing]
2020-01-05T05:19:24.6912778Z Hint: tables [Processing]
2020-01-05T05:19:24.7192104Z Hint: platform [Processing]
2020-01-05T05:19:24.7245952Z Hint: prefixmatches [Processing]
2020-01-05T05:19:24.7278221Z Hint: terminal [Processing]
2020-01-05T05:19:24.7288276Z Hint: strformat [Processing]
2020-01-05T05:19:24.7404778Z Hint: colors [Processing]
2020-01-05T05:19:24.8330058Z Hint: nversion [Processing]
2020-01-05T05:19:24.8337625Z Hint: condsyms [Processing]
2020-01-05T05:19:24.8373677Z Hint: extccomp [Processing]
2020-01-05T05:19:24.8396694Z Hint: osproc [Processing]
2020-01-05T05:19:24.8410716Z Hint: streams [Processing]
2020-01-05T05:19:24.8588197Z Hint: cpuinfo [Processing]
2020-01-05T05:19:24.8778457Z Hint: sha1 [Processing]
2020-01-05T05:19:24.8788124Z Hint: endians [Processing]
2020-01-05T05:19:24.9190754Z Hint: sequtils [Processing]
2020-01-05T05:19:24.9606669Z Hint: json [Processing]
2020-01-05T05:19:24.9623014Z Hint: lexbase [Processing]
2020-01-05T05:19:24.9681304Z Hint: parsejson [Processing]
2020-01-05T05:19:25.0579332Z Hint: wordrecg [Processing]
2020-01-05T05:19:25.0605901Z Hint: nimblecmd [Processing]
2020-01-05T05:19:25.0706379Z Hint: parseopt [Processing]
2020-01-05T05:19:25.0790242Z Hint: incremental [Processing]
2020-01-05T05:19:25.1291079Z Hint: main [Processing]
2020-01-05T05:19:25.1296712Z Hint: llstream [Processing]
2020-01-05T05:19:25.1349186Z Hint: ast [Processing]
2020-01-05T05:19:25.1362423Z Hint: idents [Processing]
2020-01-05T05:19:25.1412861Z Hint: idgen [Processing]
2020-01-05T05:19:25.1433915Z Hint: int128 [Processing]
2020-01-05T05:19:25.2044327Z Hint: lexer [Processing]
2020-01-05T05:19:25.2066293Z Hint: nimlexbase [Processing]
2020-01-05T05:19:25.2512908Z Hint: syntaxes [Processing]
2020-01-05T05:19:25.2537067Z Hint: parser [Processing]
2020-01-05T05:19:25.3228328Z Hint: filters [Processing]
2020-01-05T05:19:25.3247801Z Hint: renderer [Processing]
2020-01-05T05:19:25.4108380Z Hint: filter_tmpl [Processing]
2020-01-05T05:19:25.4280044Z Hint: sem [Processing]
2020-01-05T05:19:25.4325005Z Hint: astalgo [Processing]
2020-01-05T05:19:25.4352653Z Hint: intsets [Processing]
2020-01-05T05:19:25.4474330Z Hint: rodutils [Processing]
2020-01-05T05:19:25.5348406Z Hint: trees [Processing]
2020-01-05T05:19:25.5454126Z Hint: types [Processing]
2020-01-05T05:19:25.5528447Z d:\a\1\s\compiler\types.nim(113, 23) Warning: use getOrdvalue; getOrdValue64 is deprecated [Deprecated]
2020-01-05T05:19:25.6490383Z Hint: magicsys [Processing]
2020-01-05T05:19:25.6512701Z Hint: modulegraphs [Processing]
2020-01-05T05:19:25.6544252Z Hint: btrees [Processing]
2020-01-05T05:19:25.6569744Z Hint: md5 [Processing]
2020-01-05T05:19:25.6919395Z Hint: nimsets [Processing]
2020-01-05T05:19:25.6934462Z Hint: bitsets [Processing]
2020-01-05T05:19:25.7069650Z Hint: semfold [Processing]
2020-01-05T05:19:25.7534281Z Hint: modulepaths [Processing]
2020-01-05T05:19:25.7586106Z Hint: importer [Processing]
2020-01-05T05:19:25.7608734Z Hint: lookups [Processing]
2020-01-05T05:19:25.7628757Z Hint: semdata [Processing]
2020-01-05T05:19:25.7695694Z Hint: vmdef [Processing]
2020-01-05T05:19:25.7914558Z Hint: prettybase [Processing]
2020-01-05T05:19:25.7925851Z Hint: linter [Processing]
2020-01-05T05:19:25.8224941Z Hint: sigmatch [Processing]
2020-01-05T05:19:25.8256181Z Hint: semtypinst [Processing]
2020-01-05T05:19:25.8589240Z Hint: parampatterns [Processing]
2020-01-05T05:19:25.8775065Z Hint: lowerings [Processing]
2020-01-05T05:19:26.0984112Z Hint: procfind [Processing]
2020-01-05T05:19:26.1043995Z Hint: pragmas [Processing]
2020-01-05T05:19:26.1767144Z Hint: passes [Processing]
2020-01-05T05:19:26.1788936Z Hint: reorder [Processing]
2020-01-05T05:19:26.2030462Z Hint: rod [Processing]
2020-01-05T05:19:26.2163297Z Hint: transf [Processing]
2020-01-05T05:19:26.2190673Z Hint: cgmeth [Processing]
2020-01-05T05:19:26.2219328Z Hint: sempass2 [Processing]
2020-01-05T05:19:26.2253352Z Hint: guards [Processing]
2020-01-05T05:19:26.2275816Z Hint: saturate [Processing]
2020-01-05T05:19:26.3015329Z Hint: liftdestructors [Processing]
2020-01-05T05:19:26.3040003Z Hint: sighashes [Processing]
2020-01-05T05:19:26.4841052Z Hint: liftlocals [Processing]
2020-01-05T05:19:26.4896946Z Hint: closureiters [Processing]
2020-01-05T05:19:26.4914786Z Hint: lambdalifting [Processing]
2020-01-05T05:19:26.6788267Z Hint: vm [Processing]
2020-01-05T05:19:26.6808885Z Hint: vmgen [Processing]
2020-01-05T05:19:26.8065292Z Hint: vmdeps [Processing]
2020-01-05T05:19:26.8245110Z Hint: vmmarshal [Processing]
2020-01-05T05:19:26.8512733Z Hint: gorgeimpl [Processing]
2020-01-05T05:19:26.8560014Z Hint: macrocacheimpl [Processing]
2020-01-05T05:19:26.8590204Z Hint: evaltempl [Processing]
2020-01-05T05:19:27.1410046Z Hint: aliases [Processing]
2020-01-05T05:19:27.1515823Z Hint: patterns [Processing]
2020-01-05T05:19:27.1729146Z Hint: semmacrosanity [Processing]
2020-01-05T05:19:27.1787289Z Hint: active [Processing]
2020-01-05T05:19:27.1795696Z Hint: pluginsupport [Processing]
2020-01-05T05:19:27.1825733Z Hint: locals [Processing]
2020-01-05T05:19:27.1851694Z Hint: itersgen [Processing]
2020-01-05T05:19:27.1911012Z Hint: spawn [Processing]
2020-01-05T05:19:27.2110657Z Hint: semparallel [Processing]
2020-01-05T05:19:28.8782176Z d:\a\1\s\compiler\sem.nim(27, 17) Warning: imported and not used: 'semparallel' [UnusedImport]
2020-01-05T05:19:28.8790474Z Hint: cgen [Processing]
2020-01-05T05:19:28.8846972Z Hint: ccgutils [Processing]
2020-01-05T05:19:28.8917987Z Hint: treetab [Processing]
2020-01-05T05:19:28.8995791Z Hint: cgendata [Processing]
2020-01-05T05:19:28.9020464Z Hint: ndi [Processing]
2020-01-05T05:19:28.9086853Z Hint: ccgmerge [Processing]
2020-01-05T05:19:28.9302697Z Hint: enumtostr [Processing]
2020-01-05T05:19:28.9374537Z Hint: injectdestructors [Processing]
2020-01-05T05:19:28.9411787Z Hint: dfa [Processing]
2020-01-05T05:19:30.1621032Z Hint: nimconf [Processing]
2020-01-05T05:19:30.1753039Z Hint: passaux [Processing]
2020-01-05T05:19:30.1784368Z Hint: depends [Processing]
2020-01-05T05:19:30.1824319Z Hint: modules [Processing]
2020-01-05T05:19:30.1999264Z Hint: jsgen [Processing]
2020-01-05T05:19:30.4171774Z Hint: docgen [Processing]
2020-01-05T05:19:30.4220985Z Hint: rstast [Processing]
2020-01-05T05:19:30.4303522Z Hint: rst [Processing]
2020-01-05T05:19:30.4875557Z Hint: rstgen [Processing]
2020-01-05T05:19:30.4905407Z Hint: highlite [Processing]
2020-01-05T05:19:30.6062869Z Hint: xmltree [Processing]
2020-01-05T05:19:30.6212114Z Hint: cgi [Processing]
2020-01-05T05:19:30.6223611Z Hint: cookies [Processing]
2020-01-05T05:19:30.6252310Z Hint: uri [Processing]
2020-01-05T05:19:30.6455130Z Hint: typesrenderer [Processing]
2020-01-05T05:19:30.7361282Z Hint: docgen2 [Processing]
2020-01-05T05:19:30.8244542Z Hint: cmdlinehelper [Processing]
2020-01-05T05:19:30.8260903Z Hint: scriptconfig [Processing]
2020-01-05T05:19:34.5554463Z Hint: operation successful (142040 lines compiled; 10.743 sec total; 411.934MiB peakmem; Dangerous Release Build) [SuccessX]
2020-01-05T05:19:34.6173856Z compiler\nim1.exe jsonscript -d:release -d:danger --nimcache:nimcache/r_windows_amd64 compiler\nim.nim
2020-01-05T05:19:34.6315145Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:19:34.6317078Z Hint: used config file 'd:\a\1\s\compiler\nim.cfg' [Conf]
2020-01-05T05:19:34.6317412Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:19:34.7022949Z CC: stdlib_assertions.nim
2020-01-05T05:19:34.7051072Z CC: stdlib_dollars.nim
2020-01-05T05:19:34.7680884Z CC: stdlib_formatfloat.nim
2020-01-05T05:19:34.7747828Z CC: stdlib_widestrs.nim
2020-01-05T05:19:34.8486599Z CC: stdlib_io.nim
2020-01-05T05:19:34.8864876Z CC: stdlib_system.nim
2020-01-05T05:19:35.1773330Z CC: stdlib_parseutils.nim
2020-01-05T05:19:35.3245206Z CC: stdlib_math.nim
2020-01-05T05:19:35.3953687Z CC: stdlib_algorithm.nim
2020-01-05T05:19:35.7199923Z CC: stdlib_unicode.nim
2020-01-05T05:19:35.7827940Z CC: stdlib_strutils.nim
2020-01-05T05:19:36.8747047Z CC: stdlib_pathnorm.nim
2020-01-05T05:19:37.0272410Z CC: stdlib_dynlib.nim
2020-01-05T05:19:37.4553374Z CC: stdlib_winlean.nim
2020-01-05T05:19:37.5265495Z CC: stdlib_times.nim
2020-01-05T05:19:37.8315602Z CC: stdlib_os.nim
2020-01-05T05:19:38.1671449Z CC: stdlib_hashes.nim
2020-01-05T05:19:38.2962970Z CC: stdlib_strtabs.nim
2020-01-05T05:19:38.5444813Z CC: stdlib_sets.nim
2020-01-05T05:19:38.7504967Z CC: pathutils.nim
2020-01-05T05:19:38.8238980Z CC: ropes.nim
2020-01-05T05:19:38.8338238Z CC: stdlib_tables.nim
2020-01-05T05:19:41.0649820Z CC: lineinfos.nim
2020-01-05T05:19:41.2660623Z CC: platform.nim
2020-01-05T05:19:41.3389936Z CC: prefixmatches.nim
2020-01-05T05:19:41.3924161Z CC: stdlib_terminal.nim
2020-01-05T05:19:41.4303856Z CC: options.nim
2020-01-05T05:19:41.5297110Z CC: msgs.nim
2020-01-05T05:19:42.2014958Z CC: condsyms.nim
2020-01-05T05:19:42.3132886Z CC: stdlib_streams.nim
2020-01-05T05:19:42.5415518Z CC: stdlib_cpuinfo.nim
2020-01-05T05:19:42.6027236Z CC: stdlib_osproc.nim
2020-01-05T05:19:42.8960706Z CC: stdlib_sha1.nim
2020-01-05T05:19:43.0197962Z CC: stdlib_lexbase.nim
2020-01-05T05:19:43.1334972Z CC: stdlib_parsejson.nim
2020-01-05T05:19:43.2311759Z CC: stdlib_json.nim
2020-01-05T05:19:43.5369908Z CC: extccomp.nim
2020-01-05T05:19:43.6772027Z CC: wordrecg.nim
2020-01-05T05:19:43.7616448Z CC: nimblecmd.nim
2020-01-05T05:19:44.0025631Z CC: stdlib_parseopt.nim
2020-01-05T05:19:44.2124746Z CC: incremental.nim
2020-01-05T05:19:44.2677494Z CC: commands.nim
2020-01-05T05:19:44.8099900Z CC: llstream.nim
2020-01-05T05:19:45.0360515Z CC: idents.nim
2020-01-05T05:19:45.2144521Z CC: idgen.nim
2020-01-05T05:19:45.2661119Z CC: int128.nim
2020-01-05T05:19:45.3146426Z CC: ast.nim
2020-01-05T05:19:45.6608635Z CC: nimlexbase.nim
2020-01-05T05:19:45.7922041Z CC: lexer.nim
2020-01-05T05:19:46.7266702Z CC: parser.nim
2020-01-05T05:19:47.0994349Z CC: renderer.nim
2020-01-05T05:19:48.4993313Z CC: filters.nim
2020-01-05T05:19:48.6228247Z CC: filter_tmpl.nim
2020-01-05T05:19:48.8336222Z CC: syntaxes.nim
2020-01-05T05:19:48.8434967Z CC: stdlib_intsets.nim
2020-01-05T05:19:49.0426420Z CC: rodutils.nim
2020-01-05T05:19:49.1120583Z CC: astalgo.nim
2020-01-05T05:19:49.1913017Z CC: trees.nim
2020-01-05T05:19:49.5556865Z CC: types.nim
2020-01-05T05:19:49.9863405Z CC: btrees.nim
2020-01-05T05:19:50.2011269Z CC: stdlib_md5.nim
2020-01-05T05:19:50.5307097Z CC: modulegraphs.nim
2020-01-05T05:19:50.9610865Z CC: magicsys.nim
2020-01-05T05:19:51.3106633Z CC: bitsets.nim
2020-01-05T05:19:51.4145264Z CC: nimsets.nim
2020-01-05T05:19:51.5515155Z CC: semfold.nim
2020-01-05T05:19:51.6629091Z CC: modulepaths.nim
2020-01-05T05:19:51.8851010Z CC: vmdef.nim
2020-01-05T05:19:52.2534984Z CC: semdata.nim
2020-01-05T05:19:52.5683155Z CC: linter.nim
2020-01-05T05:19:52.7941615Z CC: nimfix/prettybase.nim
2020-01-05T05:19:52.9578892Z CC: lookups.nim
2020-01-05T05:19:53.2810603Z CC: semtypinst.nim
2020-01-05T05:19:53.4104065Z CC: parampatterns.nim
2020-01-05T05:19:53.7546919Z CC: lowerings.nim
2020-01-05T05:19:54.0101940Z CC: sigmatch.nim
2020-01-05T05:19:54.3876739Z CC: importer.nim
2020-01-05T05:19:54.7487397Z CC: procfind.nim
2020-01-05T05:19:54.8332082Z CC: pragmas.nim
2020-01-05T05:19:56.0233116Z CC: reorder.nim
2020-01-05T05:19:56.5602274Z CC: passes.nim
2020-01-05T05:19:56.7942688Z CC: saturate.nim
2020-01-05T05:19:56.8703750Z CC: guards.nim
2020-01-05T05:19:56.9243131Z CC: sighashes.nim
2020-01-05T05:19:58.2267155Z CC: liftdestructors.nim
2020-01-05T05:19:58.2895081Z CC: sempass2.nim
2020-01-05T05:19:58.2910575Z CC: cgmeth.nim
2020-01-05T05:19:58.6304338Z CC: liftlocals.nim
2020-01-05T05:19:58.8010032Z CC: lambdalifting.nim
2020-01-05T05:19:59.5036826Z CC: closureiters.nim
2020-01-05T05:19:59.5092888Z CC: transf.nim
2020-01-05T05:20:00.9049948Z CC: vmgen.nim
2020-01-05T05:20:01.3348907Z CC: vmdeps.nim
2020-01-05T05:20:01.6601190Z CC: vmmarshal.nim
2020-01-05T05:20:02.0500129Z CC: gorgeimpl.nim
2020-01-05T05:20:02.1793286Z CC: macrocacheimpl.nim
2020-01-05T05:20:02.2480161Z CC: evaltempl.nim
2020-01-05T05:20:02.4722495Z CC: vm.nim
2020-01-05T05:20:03.0797679Z CC: aliases.nim
2020-01-05T05:20:03.2699039Z CC: patterns.nim
2020-01-05T05:20:03.6798104Z CC: semmacrosanity.nim
2020-01-05T05:20:04.0069690Z CC: pluginsupport.nim
2020-01-05T05:20:04.0922536Z CC: plugins/locals.nim
2020-01-05T05:20:04.1751076Z CC: plugins/itersgen.nim
2020-01-05T05:20:04.2523291Z CC: plugins/active.nim
2020-01-05T05:20:04.3122928Z CC: spawn.nim
2020-01-05T05:20:04.6876446Z CC: semparallel.nim
2020-01-05T05:20:05.2963400Z CC: sem.nim
2020-01-05T05:20:05.7241335Z CC: ccgutils.nim
2020-01-05T05:20:05.9320558Z CC: treetab.nim
2020-01-05T05:20:06.1700220Z CC: ndi.nim
2020-01-05T05:20:06.2555051Z CC: cgendata.nim
2020-01-05T05:20:06.7579429Z CC: ccgmerge.nim
2020-01-05T05:20:06.9765535Z CC: enumtostr.nim
2020-01-05T05:20:07.2149055Z CC: dfa.nim
2020-01-05T05:20:07.9963005Z CC: injectdestructors.nim
2020-01-05T05:20:08.9043676Z CC: cgen.nim
2020-01-05T05:20:15.0229307Z CC: nimconf.nim
2020-01-05T05:20:15.0369609Z CC: passaux.nim
2020-01-05T05:20:15.1127260Z CC: depends.nim
2020-01-05T05:20:15.2228673Z CC: modules.nim
2020-01-05T05:20:15.4034284Z CC: jsgen.nim
2020-01-05T05:20:18.1264758Z CC: ../lib/packages/docutils/rstast.nim
2020-01-05T05:20:18.2517033Z CC: ../lib/packages/docutils/rst.nim
2020-01-05T05:20:20.3599665Z CC: ../lib/packages/docutils/highlite.nim
2020-01-05T05:20:20.6390343Z CC: ../lib/packages/docutils/rstgen.nim
2020-01-05T05:20:21.3055475Z CC: stdlib_xmltree.nim
2020-01-05T05:20:21.3839836Z CC: stdlib_uri.nim
2020-01-05T05:20:21.4547491Z CC: stdlib_cgi.nim
2020-01-05T05:20:21.5082864Z CC: typesrenderer.nim
2020-01-05T05:20:21.6776193Z CC: docgen.nim
2020-01-05T05:20:22.3504753Z CC: docgen2.nim
2020-01-05T05:20:22.4796867Z CC: main.nim
2020-01-05T05:20:22.8529800Z CC: scriptconfig.nim
2020-01-05T05:20:23.3593922Z CC: cmdlinehelper.nim
2020-01-05T05:20:23.5095514Z CC: nim.nim
2020-01-05T05:20:23.6984968Z Hint: [Link]
2020-01-05T05:20:24.9224284Z Hint: operation successful (7758 lines compiled; 50.224 sec total; 8.387MiB peakmem; Dangerous Release Build) [SuccessX]
2020-01-05T05:20:24.9296671Z iteration: 3
2020-01-05T05:20:24.9297264Z compiler\nim2.exe c -d:release -d:danger --nimcache:nimcache/r_windows_amd64 --compileOnly compiler\nim.nim
2020-01-05T05:20:25.0755926Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:20:25.0756678Z Hint: used config file 'd:\a\1\s\compiler\nim.cfg' [Conf]
2020-01-05T05:20:25.0756927Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:20:25.1480990Z Hint: system [Processing]
2020-01-05T05:20:25.3408049Z Hint: widestrs [Processing]
2020-01-05T05:20:25.3496066Z Hint: io [Processing]
2020-01-05T05:20:25.3631771Z Hint: nim [Processing]
2020-01-05T05:20:25.3640879Z Hint: commands [Processing]
2020-01-05T05:20:25.3653928Z Hint: os [Processing]
2020-01-05T05:20:25.3665846Z Hint: strutils [Processing]
2020-01-05T05:20:25.3671875Z Hint: parseutils [Processing]
2020-01-05T05:20:25.3818278Z Hint: math [Processing]
2020-01-05T05:20:25.3834914Z Hint: bitops [Processing]
2020-01-05T05:20:25.3850578Z Hint: macros [Processing]
2020-01-05T05:20:25.4361504Z Hint: algorithm [Processing]
2020-01-05T05:20:25.4425263Z Hint: unicode [Processing]
2020-01-05T05:20:25.8215019Z Hint: pathnorm [Processing]
2020-01-05T05:20:25.8222135Z Hint: osseps [Processing]
2020-01-05T05:20:25.8283813Z Hint: winlean [Processing]
2020-01-05T05:20:25.8289029Z Hint: dynlib [Processing]
2020-01-05T05:20:25.8411430Z Hint: times [Processing]
2020-01-05T05:20:25.8422855Z Hint: options [Processing]
2020-01-05T05:20:25.8429304Z Hint: typetraits [Processing]
2020-01-05T05:20:25.8486532Z Hint: time_t [Processing]
2020-01-05T05:20:25.9821008Z Hint: msgs [Processing]
2020-01-05T05:20:25.9837509Z Hint: options [Processing]
2020-01-05T05:20:25.9856584Z Hint: strtabs [Processing]
2020-01-05T05:20:25.9863853Z Hint: hashes [Processing]
2020-01-05T05:20:26.0022139Z Hint: sets [Processing]
2020-01-05T05:20:26.0108719Z Hint: lineinfos [Processing]
2020-01-05T05:20:26.0119692Z Hint: ropes [Processing]
2020-01-05T05:20:26.0130258Z Hint: pathutils [Processing]
2020-01-05T05:20:26.0256787Z Hint: tables [Processing]
2020-01-05T05:20:26.0538537Z Hint: platform [Processing]
2020-01-05T05:20:26.0595446Z Hint: prefixmatches [Processing]
2020-01-05T05:20:26.0630857Z Hint: terminal [Processing]
2020-01-05T05:20:26.0643210Z Hint: strformat [Processing]
2020-01-05T05:20:26.0764733Z Hint: colors [Processing]
2020-01-05T05:20:26.1757298Z Hint: nversion [Processing]
2020-01-05T05:20:26.1766049Z Hint: condsyms [Processing]
2020-01-05T05:20:26.1803830Z Hint: extccomp [Processing]
2020-01-05T05:20:26.1829127Z Hint: osproc [Processing]
2020-01-05T05:20:26.1843813Z Hint: streams [Processing]
2020-01-05T05:20:26.2025269Z Hint: cpuinfo [Processing]
2020-01-05T05:20:26.2208224Z Hint: sha1 [Processing]
2020-01-05T05:20:26.2217480Z Hint: endians [Processing]
2020-01-05T05:20:26.2655428Z Hint: sequtils [Processing]
2020-01-05T05:20:26.3109502Z Hint: json [Processing]
2020-01-05T05:20:26.3127334Z Hint: lexbase [Processing]
2020-01-05T05:20:26.3190533Z Hint: parsejson [Processing]
2020-01-05T05:20:26.3964286Z Hint: wordrecg [Processing]
2020-01-05T05:20:26.3990155Z Hint: nimblecmd [Processing]
2020-01-05T05:20:26.4089735Z Hint: parseopt [Processing]
2020-01-05T05:20:26.4177635Z Hint: incremental [Processing]
2020-01-05T05:20:26.4682362Z Hint: main [Processing]
2020-01-05T05:20:26.4689155Z Hint: llstream [Processing]
2020-01-05T05:20:26.4745091Z Hint: ast [Processing]
2020-01-05T05:20:26.4767788Z Hint: idents [Processing]
2020-01-05T05:20:26.4819620Z Hint: idgen [Processing]
2020-01-05T05:20:26.4841273Z Hint: int128 [Processing]
2020-01-05T05:20:26.5474424Z Hint: lexer [Processing]
2020-01-05T05:20:26.5494896Z Hint: nimlexbase [Processing]
2020-01-05T05:20:26.5955773Z Hint: syntaxes [Processing]
2020-01-05T05:20:26.5981503Z Hint: parser [Processing]
2020-01-05T05:20:26.6665461Z Hint: filters [Processing]
2020-01-05T05:20:26.6685306Z Hint: renderer [Processing]
2020-01-05T05:20:26.7524043Z Hint: filter_tmpl [Processing]
2020-01-05T05:20:26.7691397Z Hint: sem [Processing]
2020-01-05T05:20:26.7734852Z Hint: astalgo [Processing]
2020-01-05T05:20:26.7754828Z Hint: intsets [Processing]
2020-01-05T05:20:26.7880255Z Hint: rodutils [Processing]
2020-01-05T05:20:26.8729183Z Hint: trees [Processing]
2020-01-05T05:20:26.8837339Z Hint: types [Processing]
2020-01-05T05:20:26.8893797Z d:\a\1\s\compiler\types.nim(113, 23) Warning: use getOrdvalue; getOrdValue64 is deprecated [Deprecated]
2020-01-05T05:20:26.9942499Z Hint: magicsys [Processing]
2020-01-05T05:20:26.9957330Z Hint: modulegraphs [Processing]
2020-01-05T05:20:26.9989570Z Hint: btrees [Processing]
2020-01-05T05:20:27.0017438Z Hint: md5 [Processing]
2020-01-05T05:20:27.0337082Z Hint: nimsets [Processing]
2020-01-05T05:20:27.0350620Z Hint: bitsets [Processing]
2020-01-05T05:20:27.0474461Z Hint: semfold [Processing]
2020-01-05T05:20:27.0941000Z Hint: modulepaths [Processing]
2020-01-05T05:20:27.0990506Z Hint: importer [Processing]
2020-01-05T05:20:27.1021502Z Hint: lookups [Processing]
2020-01-05T05:20:27.1044139Z Hint: semdata [Processing]
2020-01-05T05:20:27.1070103Z Hint: vmdef [Processing]
2020-01-05T05:20:27.1301770Z Hint: prettybase [Processing]
2020-01-05T05:20:27.1319805Z Hint: linter [Processing]
2020-01-05T05:20:27.1676633Z Hint: sigmatch [Processing]
2020-01-05T05:20:27.1709655Z Hint: semtypinst [Processing]
2020-01-05T05:20:27.2046216Z Hint: parampatterns [Processing]
2020-01-05T05:20:27.2228904Z Hint: lowerings [Processing]
2020-01-05T05:20:27.4284515Z Hint: procfind [Processing]
2020-01-05T05:20:27.4346062Z Hint: pragmas [Processing]
2020-01-05T05:20:27.5021283Z Hint: passes [Processing]
2020-01-05T05:20:27.5045030Z Hint: reorder [Processing]
2020-01-05T05:20:27.5294399Z Hint: rod [Processing]
2020-01-05T05:20:27.5426185Z Hint: transf [Processing]
2020-01-05T05:20:27.5450807Z Hint: cgmeth [Processing]
2020-01-05T05:20:27.5476946Z Hint: sempass2 [Processing]
2020-01-05T05:20:27.5510705Z Hint: guards [Processing]
2020-01-05T05:20:27.5532626Z Hint: saturate [Processing]
2020-01-05T05:20:27.6275454Z Hint: liftdestructors [Processing]
2020-01-05T05:20:27.6296098Z Hint: sighashes [Processing]
2020-01-05T05:20:27.8034891Z Hint: liftlocals [Processing]
2020-01-05T05:20:27.8095518Z Hint: closureiters [Processing]
2020-01-05T05:20:27.8112805Z Hint: lambdalifting [Processing]
2020-01-05T05:20:28.0034031Z Hint: vm [Processing]
2020-01-05T05:20:28.0048792Z Hint: vmgen [Processing]
2020-01-05T05:20:28.1240638Z Hint: vmdeps [Processing]
2020-01-05T05:20:28.1419780Z Hint: vmmarshal [Processing]
2020-01-05T05:20:28.1672584Z Hint: gorgeimpl [Processing]
2020-01-05T05:20:28.1725324Z Hint: macrocacheimpl [Processing]
2020-01-05T05:20:28.1756132Z Hint: evaltempl [Processing]
2020-01-05T05:20:28.4419760Z Hint: aliases [Processing]
2020-01-05T05:20:28.4521699Z Hint: patterns [Processing]
2020-01-05T05:20:28.4731863Z Hint: semmacrosanity [Processing]
2020-01-05T05:20:28.4791204Z Hint: active [Processing]
2020-01-05T05:20:28.4799432Z Hint: pluginsupport [Processing]
2020-01-05T05:20:28.4828489Z Hint: locals [Processing]
2020-01-05T05:20:28.4855518Z Hint: itersgen [Processing]
2020-01-05T05:20:28.4920754Z Hint: spawn [Processing]
2020-01-05T05:20:28.5121402Z Hint: semparallel [Processing]
2020-01-05T05:20:30.1628961Z d:\a\1\s\compiler\sem.nim(27, 17) Warning: imported and not used: 'semparallel' [UnusedImport]
2020-01-05T05:20:30.1637535Z Hint: cgen [Processing]
2020-01-05T05:20:30.1689931Z Hint: ccgutils [Processing]
2020-01-05T05:20:30.1756864Z Hint: treetab [Processing]
2020-01-05T05:20:30.1824157Z Hint: cgendata [Processing]
2020-01-05T05:20:30.1849121Z Hint: ndi [Processing]
2020-01-05T05:20:30.1913788Z Hint: ccgmerge [Processing]
2020-01-05T05:20:30.2118448Z Hint: enumtostr [Processing]
2020-01-05T05:20:30.2193959Z Hint: injectdestructors [Processing]
2020-01-05T05:20:30.2225751Z Hint: dfa [Processing]
2020-01-05T05:20:31.3959921Z Hint: nimconf [Processing]
2020-01-05T05:20:31.4087676Z Hint: passaux [Processing]
2020-01-05T05:20:31.4118396Z Hint: depends [Processing]
2020-01-05T05:20:31.4158033Z Hint: modules [Processing]
2020-01-05T05:20:31.4342488Z Hint: jsgen [Processing]
2020-01-05T05:20:31.6522476Z Hint: docgen [Processing]
2020-01-05T05:20:31.6570863Z Hint: rstast [Processing]
2020-01-05T05:20:31.6654506Z Hint: rst [Processing]
2020-01-05T05:20:31.7184131Z Hint: rstgen [Processing]
2020-01-05T05:20:31.7211121Z Hint: highlite [Processing]
2020-01-05T05:20:31.8227189Z Hint: xmltree [Processing]
2020-01-05T05:20:31.8383929Z Hint: cgi [Processing]
2020-01-05T05:20:31.8396280Z Hint: cookies [Processing]
2020-01-05T05:20:31.8426801Z Hint: uri [Processing]
2020-01-05T05:20:31.8618281Z Hint: typesrenderer [Processing]
2020-01-05T05:20:31.9342911Z Hint: docgen2 [Processing]
2020-01-05T05:20:32.0344887Z Hint: cmdlinehelper [Processing]
2020-01-05T05:20:32.0361710Z Hint: scriptconfig [Processing]
2020-01-05T05:20:35.3339138Z Hint: operation successful (142040 lines compiled; 10.193 sec total; 412.285MiB peakmem; Dangerous Release Build) [SuccessX]
2020-01-05T05:20:35.3822815Z compiler\nim2.exe jsonscript -d:release -d:danger --nimcache:nimcache/r_windows_amd64 compiler\nim.nim
2020-01-05T05:20:35.3962997Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:20:35.3964258Z Hint: used config file 'd:\a\1\s\compiler\nim.cfg' [Conf]
2020-01-05T05:20:35.3964524Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:20:35.4741051Z Hint: [Link]
2020-01-05T05:20:35.7698241Z Hint: operation successful (7758 lines compiled; 0.297 sec total; 6.824MiB peakmem; Dangerous Release Build) [SuccessX]
2020-01-05T05:20:35.7847921Z D:\a\1\s\koch.exe nimble
2020-01-05T05:20:35.7976055Z git clone https://github.com/nim-lang/nimble.git dist/nimble
2020-01-05T05:20:35.8252424Z Cloning into 'dist/nimble'...
2020-01-05T05:20:37.4935210Z git fetch
2020-01-05T05:20:38.0977340Z git checkout 4007b2a778429a978e12307bf13a038029b4c4d9
2020-01-05T05:20:38.1484253Z Note: switching to '4007b2a778429a978e12307bf13a038029b4c4d9'.
2020-01-05T05:20:38.1485630Z
2020-01-05T05:20:38.1487290Z You are in 'detached HEAD' state. You can look around, make experimental
2020-01-05T05:20:38.1490317Z changes and commit them, and you can discard any commits you make in this
2020-01-05T05:20:38.1492317Z state without impacting any branches by switching back to a branch.
2020-01-05T05:20:38.1495545Z
2020-01-05T05:20:38.1498059Z If you want to create a new branch to retain commits you create, you may
2020-01-05T05:20:38.1499083Z do so (now or later) by using -c with the switch command. Example:
2020-01-05T05:20:38.1500254Z
2020-01-05T05:20:38.1501044Z git switch -c <new-branch-name>
2020-01-05T05:20:38.1501298Z
2020-01-05T05:20:38.1502396Z Or undo this operation with:
2020-01-05T05:20:38.1506354Z
2020-01-05T05:20:38.1510588Z git switch -
2020-01-05T05:20:38.1512488Z
2020-01-05T05:20:38.1513601Z Turn off this advice by setting config variable advice.detachedHead to false
2020-01-05T05:20:38.1514267Z
2020-01-05T05:20:38.1514991Z HEAD is now at 4007b2a Fixes `nimble run` on Windows.
2020-01-05T05:20:38.1570113Z bin\nim.exe c -o:bin\nimble.exe --noNimblePath --nilseqs:on -d:release dist\nimble\src\nimble.nim
2020-01-05T05:20:38.1809645Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:20:38.1810362Z Hint: used config file 'd:\a\1\s\dist\nimble\src\nimble.nim.cfg' [Conf]
2020-01-05T05:20:38.1810572Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:20:38.2480181Z Hint: system [Processing]
2020-01-05T05:20:38.4310827Z Hint: widestrs [Processing]
2020-01-05T05:20:38.4385033Z Hint: io [Processing]
2020-01-05T05:20:38.4506777Z Hint: nimble [Processing]
2020-01-05T05:20:38.4518882Z Hint: os [Processing]
2020-01-05T05:20:38.4529971Z Hint: strutils [Processing]
2020-01-05T05:20:38.4535294Z Hint: parseutils [Processing]
2020-01-05T05:20:38.4657694Z Hint: math [Processing]
2020-01-05T05:20:38.4669917Z Hint: bitops [Processing]
2020-01-05T05:20:38.4682569Z Hint: macros [Processing]
2020-01-05T05:20:38.5145764Z Hint: algorithm [Processing]
2020-01-05T05:20:38.5192425Z Hint: unicode [Processing]
2020-01-05T05:20:38.8591111Z Hint: pathnorm [Processing]
2020-01-05T05:20:38.8596210Z Hint: osseps [Processing]
2020-01-05T05:20:38.8640071Z Hint: winlean [Processing]
2020-01-05T05:20:38.8645334Z Hint: dynlib [Processing]
2020-01-05T05:20:38.8747302Z Hint: times [Processing]
2020-01-05T05:20:38.8758535Z Hint: options [Processing]
2020-01-05T05:20:38.8764313Z Hint: typetraits [Processing]
2020-01-05T05:20:38.8800673Z Hint: time_t [Processing]
2020-01-05T05:20:38.9911879Z Hint: tables [Processing]
2020-01-05T05:20:38.9922343Z Hint: hashes [Processing]
2020-01-05T05:20:39.0171201Z Hint: strtabs [Processing]
2020-01-05T05:20:39.0259370Z Hint: json [Processing]
2020-01-05T05:20:39.0271091Z Hint: lexbase [Processing]
2020-01-05T05:20:39.0278722Z Hint: streams [Processing]
2020-01-05T05:20:39.0499776Z Hint: parsejson [Processing]
2020-01-05T05:20:39.1140609Z Hint: sets [Processing]
2020-01-05T05:20:39.1240051Z Hint: uri [Processing]
2020-01-05T05:20:39.1334397Z Hint: sugar [Processing]
2020-01-05T05:20:39.1419254Z Hint: sequtils [Processing]
2020-01-05T05:20:39.1494461Z Hint: packageinfo [Processing]
2020-01-05T05:20:39.1521608Z Hint: httpclient [Processing]
2020-01-05T05:20:39.1534605Z Hint: net [Processing]
2020-01-05T05:20:39.1540166Z Hint: nativesockets [Processing]
2020-01-05T05:20:39.1858673Z Hint: monotimes [Processing]
2020-01-05T05:20:39.1896990Z Hint: openssl [Processing]
2020-01-05T05:20:39.2509339Z Hint: base64 [Processing]
2020-01-05T05:20:39.2638460Z Hint: mimetypes [Processing]
2020-01-05T05:20:39.2749706Z Hint: random [Processing]
2020-01-05T05:20:39.2804380Z Hint: httpcore [Processing]
2020-01-05T05:20:39.3081116Z Hint: asyncnet [Processing]
2020-01-05T05:20:39.3088507Z Hint: asyncdispatch [Processing]
2020-01-05T05:20:39.3112113Z Hint: heapqueue [Processing]
2020-01-05T05:20:39.3129660Z Hint: lists [Processing]
2020-01-05T05:20:39.3159111Z Hint: asyncstreams [Processing]
2020-01-05T05:20:39.3164740Z Hint: asyncfutures [Processing]
2020-01-05T05:20:39.3194211Z Hint: deques [Processing]
2020-01-05T05:20:39.3232493Z Hint: cstrutils [Processing]
2020-01-05T05:20:39.5023325Z Hint: asyncfile [Processing]
2020-01-05T05:20:39.6298888Z Hint: version [Processing]
2020-01-05T05:20:39.6414298Z Hint: tools [Processing]
2020-01-05T05:20:39.6432341Z Hint: osproc [Processing]
2020-01-05T05:20:39.6450449Z Hint: cpuinfo [Processing]
2020-01-05T05:20:39.6636398Z Hint: pegs [Processing]
2020-01-05T05:20:39.7919794Z Hint: cli [Processing]
2020-01-05T05:20:39.7954315Z Hint: terminal [Processing]
2020-01-05T05:20:39.7954847Z Hint: strformat [Processing]
2020-01-05T05:20:39.8043014Z Hint: colors [Processing]
2020-01-05T05:20:39.8493877Z Hint: common [Processing]
2020-01-05T05:20:39.8508486Z Hint: options [Processing]
2020-01-05T05:20:39.8531994Z Hint: parseopt [Processing]
2020-01-05T05:20:39.8644548Z Hint: config [Processing]
2020-01-05T05:20:39.8661600Z Hint: parsecfg [Processing]
2020-01-05T05:20:40.0195887Z Hint: download [Processing]
2020-01-05T05:20:40.0228452Z Hint: packageparser [Processing]
2020-01-05T05:20:40.0264349Z Hint: nimscriptwrapper [Processing]
2020-01-05T05:20:40.0346195Z d:\a\1\s\dist\nimble\src\nimblepkg\nimscriptwrapper.nim(174, 21) Hint: simpleGetOrDefault(j, "success") --> 'getOrDefault(j, "success")' [Pattern]
2020-01-05T05:20:40.0347057Z d:\a\1\s\dist\nimble\src\nimblepkg\nimscriptwrapper.nim(175, 21) Hint: simpleGetOrDefault(j, "command") --> 'getOrDefault(j, "command")' [Pattern]
2020-01-05T05:20:40.0347330Z d:\a\1\s\dist\nimble\src\nimblepkg\nimscriptwrapper.nim(183, 20) Hint: simpleGetOrDefault(j, "retVal") --> 'getOrDefault(j, "retVal")' [Pattern]
2020-01-05T05:20:40.0870737Z Hint: publish [Processing]
2020-01-05T05:20:40.0895398Z Hint: browsers [Processing]
2020-01-05T05:20:40.0930197Z d:\a\1\s\dist\nimble\src\nimblepkg\publish.nim(79, 7) Hint: simpleGetOrDefault(j, "fork") --> 'getOrDefault(j, "fork")' [Pattern]
2020-01-05T05:20:40.0930793Z d:\a\1\s\dist\nimble\src\nimblepkg\publish.nim(80, 25) Hint: simpleGetOrDefault({}(j, ["parent"]), "full_name") --> 'getOrDefault({}(j, ["parent"]), "full_name")' [Pattern]
2020-01-05T05:20:40.0931036Z d:\a\1\s\dist\nimble\src\nimblepkg\publish.nim(80, 15) Hint: simpleGetOrDefault(j, "parent") --> 'getOrDefault(j, "parent")' [Pattern]
2020-01-05T05:20:40.0937029Z d:\a\1\s\dist\nimble\src\nimblepkg\publish.nim(103, 12) Hint: simpleGetOrDefault(pr, "html_url") --> 'getOrDefault(pr, "html_url")' [Pattern]
2020-01-05T05:20:40.1011629Z Hint: packageinstaller [Processing]
2020-01-05T05:20:40.1074997Z Hint: reversedeps [Processing]
2020-01-05T05:20:40.1129062Z d:\a\1\s\dist\nimble\src\nimblepkg\reversedeps.nim(65, 48) Hint: simpleGetOrDefault({}(options.nimbleData["reverseDeps"], [pkg.name]),
2020-01-05T05:20:40.1129384Z pkg.specialVersion) --> 'getOrDefault({}(options.nimbleData["reverseDeps"], [pkg.name]), pkg.specialVersion)' [Pattern]
2020-01-05T05:20:40.1129634Z d:\a\1\s\dist\nimble\src\nimblepkg\reversedeps.nim(65, 38) Hint: simpleGetOrDefault(options.nimbleData["reverseDeps"], pkg.name) --> 'getOrDefault(options.nimbleData["reverseDeps"], pkg.name)' [Pattern]
2020-01-05T05:20:40.1207859Z Hint: nimscriptexecutor [Processing]
2020-01-05T05:20:40.1248965Z Hint: init [Processing]
2020-01-05T05:20:40.8047129Z CC: stdlib_assertions.nim
2020-01-05T05:20:40.8067531Z CC: stdlib_dollars.nim
2020-01-05T05:20:40.8654660Z CC: stdlib_formatfloat.nim
2020-01-05T05:20:40.8945194Z CC: stdlib_widestrs.nim
2020-01-05T05:20:40.9416652Z CC: stdlib_io.nim
2020-01-05T05:20:41.0518536Z CC: stdlib_system.nim
2020-01-05T05:20:41.2627256Z CC: stdlib_parseutils.nim
2020-01-05T05:20:41.4254237Z CC: stdlib_math.nim
2020-01-05T05:20:41.4922720Z CC: stdlib_algorithm.nim
2020-01-05T05:20:41.7337531Z CC: stdlib_unicode.nim
2020-01-05T05:20:42.1689566Z CC: stdlib_strutils.nim
2020-01-05T05:20:43.1058781Z CC: stdlib_pathnorm.nim
2020-01-05T05:20:43.3408271Z CC: stdlib_dynlib.nim
2020-01-05T05:20:43.8378654Z CC: stdlib_winlean.nim
2020-01-05T05:20:43.8380466Z CC: stdlib_options.nim
2020-01-05T05:20:43.9271556Z CC: stdlib_times.nim
2020-01-05T05:20:44.2733659Z CC: stdlib_os.nim
2020-01-05T05:20:44.6223771Z CC: stdlib_hashes.nim
2020-01-05T05:20:44.7462886Z CC: stdlib_tables.nim
2020-01-05T05:20:45.1735567Z CC: stdlib_strtabs.nim
2020-01-05T05:20:45.3891529Z CC: stdlib_streams.nim
2020-01-05T05:20:45.6819365Z CC: stdlib_lexbase.nim
2020-01-05T05:20:45.8668670Z CC: stdlib_parsejson.nim
2020-01-05T05:20:46.2992655Z CC: stdlib_json.nim
2020-01-05T05:20:46.3543220Z CC: stdlib_sets.nim
2020-01-05T05:20:46.8872630Z CC: stdlib_uri.nim
2020-01-05T05:20:46.9104323Z CC: stdlib_nativesockets.nim
2020-01-05T05:20:47.1767554Z CC: stdlib_monotimes.nim
2020-01-05T05:20:47.2600712Z CC: stdlib_openssl.nim
2020-01-05T05:20:47.3749954Z CC: stdlib_net.nim
2020-01-05T05:20:47.4672326Z CC: stdlib_base64.nim
2020-01-05T05:20:47.6047444Z CC: stdlib_random.nim
2020-01-05T05:20:47.6676822Z CC: stdlib_httpcore.nim
2020-01-05T05:20:47.8571033Z CC: stdlib_heapqueue.nim
2020-01-05T05:20:47.9288069Z CC: stdlib_deques.nim
2020-01-05T05:20:48.0040064Z CC: stdlib_asyncfutures.nim
2020-01-05T05:20:48.0899165Z CC: stdlib_asyncdispatch.nim
2020-01-05T05:20:48.5492390Z CC: stdlib_httpclient.nim
2020-01-05T05:20:48.7007730Z CC: nimblepkg/version.nim
2020-01-05T05:20:49.2049000Z CC: stdlib_osproc.nim
2020-01-05T05:20:49.4178576Z CC: stdlib_pegs.nim
2020-01-05T05:20:49.5930937Z CC: stdlib_terminal.nim
2020-01-05T05:20:49.8657556Z CC: nimblepkg/cli.nim
2020-01-05T05:20:50.2284834Z CC: nimblepkg/tools.nim
2020-01-05T05:20:50.4485120Z CC: nimblepkg/common.nim
2020-01-05T05:20:50.5706227Z CC: stdlib_parseopt.nim
2020-01-05T05:20:50.9056302Z CC: stdlib_parsecfg.nim
2020-01-05T05:20:51.2567562Z CC: nimblepkg/config.nim
2020-01-05T05:20:51.4928664Z CC: nimblepkg/options.nim
2020-01-05T05:20:52.2091351Z CC: nimblepkg/packageinfo.nim
2020-01-05T05:20:52.3949574Z CC: nimblepkg/nimscriptwrapper.nim
2020-01-05T05:20:52.7014025Z CC: nimblepkg/packageparser.nim
2020-01-05T05:20:53.1145532Z CC: nimblepkg/download.nim
2020-01-05T05:20:53.4864430Z CC: stdlib_browsers.nim
2020-01-05T05:20:53.5414574Z CC: nimblepkg/publish.nim
2020-01-05T05:20:53.7181516Z CC: nimblepkg/packageinstaller.nim
2020-01-05T05:20:53.8628000Z CC: nimblepkg/reversedeps.nim
2020-01-05T05:20:53.9127615Z CC: nimblepkg/nimscriptexecutor.nim
2020-01-05T05:20:54.0807732Z CC: nimblepkg/init.nim
2020-01-05T05:20:54.2017253Z CC: nimble.nim
2020-01-05T05:20:55.8495508Z Hint: [Link]
2020-01-05T05:20:55.9854328Z Hint: operation successful (112812 lines compiled; 17.742 sec total; 137.66MiB peakmem; Release Build) [SuccessX]
2020-01-05T05:20:56.0073763Z nim c -r testament/testament cat nimble-packages
2020-01-05T05:20:56.0252254Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:20:56.0252379Z Hint: used config file 'testament\testament.nim.cfg' [Conf]
2020-01-05T05:20:56.0252485Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:20:56.0904936Z Hint: system [Processing]
2020-01-05T05:20:56.3068012Z Hint: widestrs [Processing]
2020-01-05T05:20:56.3151628Z Hint: io [Processing]
2020-01-05T05:20:56.3279837Z Hint: testament [Processing]
2020-01-05T05:20:56.3306926Z Hint: strutils [Processing]
2020-01-05T05:20:56.3312960Z Hint: parseutils [Processing]
2020-01-05T05:20:56.3442701Z Hint: math [Processing]
2020-01-05T05:20:56.3454905Z Hint: bitops [Processing]
2020-01-05T05:20:56.3468394Z Hint: macros [Processing]
2020-01-05T05:20:56.3931478Z Hint: algorithm [Processing]
2020-01-05T05:20:56.3981153Z Hint: unicode [Processing]
2020-01-05T05:20:56.7338592Z Hint: pegs [Processing]
2020-01-05T05:20:56.8597191Z Hint: os [Processing]
2020-01-05T05:20:56.8611359Z Hint: pathnorm [Processing]
2020-01-05T05:20:56.8616413Z Hint: osseps [Processing]
2020-01-05T05:20:56.8662722Z Hint: winlean [Processing]
2020-01-05T05:20:56.8668808Z Hint: dynlib [Processing]
2020-01-05T05:20:56.8776954Z Hint: times [Processing]
2020-01-05T05:20:56.8788796Z Hint: options [Processing]
2020-01-05T05:20:56.8795337Z Hint: typetraits [Processing]
2020-01-05T05:20:56.8838486Z Hint: time_t [Processing]
2020-01-05T05:20:57.0017868Z Hint: osproc [Processing]
2020-01-05T05:20:57.0031338Z Hint: strtabs [Processing]
2020-01-05T05:20:57.0037153Z Hint: hashes [Processing]
2020-01-05T05:20:57.0185157Z Hint: streams [Processing]
2020-01-05T05:20:57.0333617Z Hint: cpuinfo [Processing]
2020-01-05T05:20:57.0505687Z Hint: json [Processing]
2020-01-05T05:20:57.0537820Z Hint: tables [Processing]
2020-01-05T05:20:57.0727128Z Hint: lexbase [Processing]
2020-01-05T05:20:57.0814541Z Hint: parsejson [Processing]
2020-01-05T05:20:57.1605657Z Hint: backend [Processing]
2020-01-05T05:20:57.1666023Z Hint: parseopt [Processing]
2020-01-05T05:20:57.1738216Z Hint: specs [Processing]
2020-01-05T05:20:57.1754601Z Hint: sequtils [Processing]
2020-01-05T05:20:57.1831347Z Hint: parsecfg [Processing]
2020-01-05T05:20:57.2518968Z Hint: htmlgen [Processing]
2020-01-05T05:20:57.2538669Z Hint: testamenthtml [Processing]
2020-01-05T05:20:57.2818356Z Hint: browsers [Processing]
2020-01-05T05:20:57.2830607Z Hint: terminal [Processing]
2020-01-05T05:20:57.2840342Z Hint: strformat [Processing]
2020-01-05T05:20:57.2936027Z Hint: colors [Processing]
2020-01-05T05:20:57.3203470Z Hint: md5 [Processing]
2020-01-05T05:20:57.3262039Z Hint: azure [Processing]
2020-01-05T05:20:57.3274546Z Hint: base64 [Processing]
2020-01-05T05:20:57.3402035Z Hint: httpclient [Processing]
2020-01-05T05:20:57.3415138Z Hint: net [Processing]
2020-01-05T05:20:57.3420291Z Hint: nativesockets [Processing]
2020-01-05T05:20:57.3581174Z Hint: sets [Processing]
2020-01-05T05:20:57.3666183Z Hint: monotimes [Processing]
2020-01-05T05:20:57.3690180Z Hint: openssl [Processing]
2020-01-05T05:20:57.4287979Z Hint: uri [Processing]
2020-01-05T05:20:57.4401638Z Hint: mimetypes [Processing]
2020-01-05T05:20:57.4510739Z Hint: random [Processing]
2020-01-05T05:20:57.4566104Z Hint: httpcore [Processing]
2020-01-05T05:20:57.4845323Z Hint: asyncnet [Processing]
2020-01-05T05:20:57.4851842Z Hint: asyncdispatch [Processing]
2020-01-05T05:20:57.4879248Z Hint: heapqueue [Processing]
2020-01-05T05:20:57.4896788Z Hint: lists [Processing]
2020-01-05T05:20:57.4927772Z Hint: asyncstreams [Processing]
2020-01-05T05:20:57.4933466Z Hint: asyncfutures [Processing]
2020-01-05T05:20:57.4961644Z Hint: deques [Processing]
2020-01-05T05:20:57.5002221Z Hint: cstrutils [Processing]
2020-01-05T05:20:57.6922702Z Hint: asyncfile [Processing]
2020-01-05T05:20:57.8963716Z Hint: important_packages [Processing]
2020-01-05T05:20:58.2970976Z d:\a\1\s\testament\categories.nim(53, 6) Hint: 'icTests' is declared but not used [XDeclaredButNotUsed]
2020-01-05T05:20:58.4764599Z CC: stdlib_assertions.nim
2020-01-05T05:20:58.4792494Z CC: stdlib_dollars.nim
2020-01-05T05:20:58.5381835Z CC: stdlib_formatfloat.nim
2020-01-05T05:20:58.5669298Z CC: stdlib_widestrs.nim
2020-01-05T05:20:58.6026792Z CC: stdlib_io.nim
2020-01-05T05:20:58.6533827Z CC: stdlib_system.nim
2020-01-05T05:20:58.7505090Z CC: stdlib_parseutils.nim
2020-01-05T05:20:58.8419068Z CC: stdlib_math.nim
2020-01-05T05:20:58.9010278Z CC: stdlib_algorithm.nim
2020-01-05T05:20:58.9998895Z CC: stdlib_unicode.nim
2020-01-05T05:20:59.1469686Z CC: stdlib_strutils.nim
2020-01-05T05:20:59.4402020Z CC: stdlib_pegs.nim
2020-01-05T05:20:59.6761961Z CC: stdlib_pathnorm.nim
2020-01-05T05:20:59.7726046Z CC: stdlib_dynlib.nim
2020-01-05T05:21:00.1610707Z CC: stdlib_winlean.nim
2020-01-05T05:21:00.1900645Z CC: stdlib_options.nim
2020-01-05T05:21:00.2564653Z CC: stdlib_times.nim
2020-01-05T05:21:00.5276123Z CC: stdlib_os.nim
2020-01-05T05:21:00.6047337Z CC: stdlib_hashes.nim
2020-01-05T05:21:00.6737017Z CC: stdlib_streams.nim
2020-01-05T05:21:00.7881782Z CC: stdlib_cpuinfo.nim
2020-01-05T05:21:00.8166744Z CC: stdlib_osproc.nim
2020-01-05T05:21:00.8449310Z CC: stdlib_tables.nim
2020-01-05T05:21:00.9997187Z CC: stdlib_lexbase.nim
2020-01-05T05:21:01.0292903Z CC: stdlib_parsejson.nim
2020-01-05T05:21:01.1008508Z CC: stdlib_json.nim
2020-01-05T05:21:01.1944889Z CC: backend.nim
2020-01-05T05:21:01.2666958Z CC: stdlib_parseopt.nim
2020-01-05T05:21:01.2999350Z CC: stdlib_sequtils.nim
2020-01-05T05:21:01.3681231Z CC: stdlib_parsecfg.nim
2020-01-05T05:21:01.4193561Z CC: specs.nim
2020-01-05T05:21:01.5568983Z CC: testamenthtml.nim
2020-01-05T05:21:01.6010751Z CC: htmlgen.nim
2020-01-05T05:21:01.6469318Z CC: stdlib_browsers.nim
2020-01-05T05:21:01.7090550Z CC: stdlib_terminal.nim
2020-01-05T05:21:01.7353188Z CC: stdlib_md5.nim
2020-01-05T05:21:01.8166687Z CC: stdlib_base64.nim
2020-01-05T05:21:01.8508616Z CC: stdlib_nativesockets.nim
2020-01-05T05:21:01.9087267Z CC: stdlib_sets.nim
2020-01-05T05:21:01.9700158Z CC: stdlib_monotimes.nim
2020-01-05T05:21:02.0338254Z CC: stdlib_openssl.nim
2020-01-05T05:21:02.1125872Z CC: stdlib_net.nim
2020-01-05T05:21:02.2952235Z CC: stdlib_uri.nim
2020-01-05T05:21:02.4185037Z CC: stdlib_random.nim
2020-01-05T05:21:02.4605397Z CC: stdlib_httpcore.nim
2020-01-05T05:21:02.5737761Z CC: stdlib_heapqueue.nim
2020-01-05T05:21:02.6348336Z CC: stdlib_deques.nim
2020-01-05T05:21:02.6969990Z CC: stdlib_asyncfutures.nim
2020-01-05T05:21:02.7377729Z CC: stdlib_asyncdispatch.nim
2020-01-05T05:21:02.7570513Z CC: stdlib_httpclient.nim
2020-01-05T05:21:02.9845281Z CC: azure.nim
2020-01-05T05:21:03.0989560Z CC: important_packages.nim
2020-01-05T05:21:03.1243562Z CC: testament.nim
2020-01-05T05:21:03.8310808Z Hint: [Link]
2020-01-05T05:21:04.0043697Z Hint: operation successful (110036 lines compiled; 7.899 sec total; 136.352MiB peakmem; Debug Build) [SuccessX]
2020-01-05T05:21:04.0044101Z Hint: d:\a\1\s\testament\testament.exe cat nimble-packages [Exec]
2020-01-05T05:21:04.7368420Z Downloading Official package list
2020-01-05T05:21:05.3951688Z Success Package list downloaded.
2020-01-05T05:28:08.1178201Z PASS: https://github.com/iffy/nim-argparse C ( 9.51608157 secs)
2020-01-05T05:28:08.1179733Z PASS: https://github.com/mratsim/Arraymancer C (76.84544086 secs)
2020-01-05T05:28:08.1180172Z PASS: https://github.com/krux02/ast-pattern-matching C ( 3.27847791 secs)
2020-01-05T05:28:08.1180460Z PASS: https://github.com/tulayang/asyncmysql C (12.85790277 secs)
2020-01-05T05:28:08.1180782Z PASS: https://github.com/def-/bigints C ( 5.58286858 secs)
2020-01-05T05:28:08.1181003Z PASS: https://github.com/bluenote10/nim-heap C ( 5.20305800 secs)
2020-01-05T05:28:08.1181171Z PASS: https://github.com/status-im/nim-blscurve C (40.63330054 secs)
2020-01-05T05:28:08.1181391Z PASS: https://github.com/status-im/nim-bncurve C (147.91730046 secs)
2020-01-05T05:28:08.1181573Z PASS: https://github.com/nim-lang/c2nim C ( 3.75926661 secs)
2020-01-05T05:28:08.1181795Z PASS: https://github.com/citycide/cascade C ( 5.35157824 secs)
2020-01-05T05:28:08.1182001Z PASS: https://github.com/treeform/chroma C ( 6.27971625 secs)
2020-01-05T05:28:08.1182171Z PASS: https://github.com/status-im/nim-chronicles C (21.29965687 secs)
2020-01-05T05:28:08.1182375Z FAIL: https://github.com/status-im/nim-chronos C
2020-01-05T05:28:08.1182795Z Test "https://github.com/status-im/nim-chronos" in category "nimble-packages"
2020-01-05T05:28:08.1183006Z Failure: reBuildFailed
2020-01-05T05:28:08.1183149Z package test failed
2020-01-05T05:28:08.1183336Z $ nimble test
2020-01-05T05:28:08.1183486Z Executing task test in d:\a\1\s\pkgstemp\chronos\chronos.nimble
2020-01-05T05:28:08.1183662Z
2020-01-05T05:28:08.1183807Z nim c -r -d:useSysAssert -d:useGcAssert tests/testall
2020-01-05T05:28:08.1184010Z Hint: used config file 'd:\a\1\s\config\nim.cfg' [Conf]
2020-01-05T05:28:08.1184364Z Hint: used config file 'd:\a\1\s\config\config.nims' [Conf]
2020-01-05T05:28:08.1184766Z Hint: used config file 'd:\a\1\s\pkgstemp\chronos\tests\config.nims' [Conf]
2020-01-05T05:28:08.1184991Z Hint: system [Processing]
2020-01-05T05:28:08.1185191Z Hint: widestrs [Processing]
2020-01-05T05:28:08.1185331Z Hint: io [Processing]
2020-01-05T05:28:08.1185521Z Hint: testall [Processing]
2020-01-05T05:28:08.1185745Z Hint: testmacro [Processing]
2020-01-05T05:28:08.1185892Z Hint: unittest [Processing]
2020-01-05T05:28:08.1186078Z Hint: macros [Processing]
2020-01-05T05:28:08.1186639Z Hint: strutils [Processing]
2020-01-05T05:28:08.1187325Z Hint: parseutils [Processing]
2020-01-05T05:28:08.1187669Z Hint: math [Processing]
2020-01-05T05:28:08.1188114Z Hint: bitops [Processing]
2020-01-05T05:28:08.1188333Z Hint: algorithm [Processing]
2020-01-05T05:28:08.1188544Z Hint: unicode [Processing]
2020-01-05T05:28:08.1188713Z Hint: streams [Processing]
2020-01-05T05:28:08.1188916Z Hint: times [Processing]
2020-01-05T05:28:08.1189112Z Hint: options [Processing]
2020-01-05T05:28:08.1189221Z Hint: typetraits [Processing]
2020-01-05T05:28:08.1189295Z Hint: winlean [Processing]
2020-01-05T05:28:08.1189449Z Hint: dynlib [Processing]
2020-01-05T05:28:08.1189664Z Hint: time_t [Processing]
2020-01-05T05:28:08.1189727Z Hint: sets [Processing]
2020-01-05T05:28:08.1190074Z Hint: hashes [Processing]
2020-01-05T05:28:08.1190556Z Hint: sequtils [Processing]
2020-01-05T05:28:08.1190678Z Hint: os [Processing]
2020-01-05T05:28:08.1190737Z Hint: pathnorm [Processing]
2020-01-05T05:28:08.1190866Z Hint: osseps [Processing]
2020-01-05T05:28:08.1190926Z Hint: terminal [Processing]
2020-01-05T05:28:08.1190983Z Hint: strformat [Processing]
2020-01-05T05:28:08.1191103Z Hint: colors [Processing]
2020-01-05T05:28:08.1191160Z Hint: chronos [Processing]
2020-01-05T05:28:08.1191291Z Hint: asyncloop [Processing]
2020-01-05T05:28:08.1192329Z Hint: tables [Processing]
2020-01-05T05:28:08.1192455Z Hint: heapqueue [Processing]
2020-01-05T05:28:08.1192517Z Hint: lists [Processing]
2020-01-05T05:28:08.1192625Z Hint: nativesockets [Processing]
2020-01-05T05:28:08.1192878Z Hint: net [Processing]
2020-01-05T05:28:08.1192989Z Hint: monotimes [Processing]
2020-01-05T05:28:08.1193049Z Hint: deques [Processing]
2020-01-05T05:28:08.1193157Z Hint: timer [Processing]
2020-01-05T05:28:08.1193218Z Hint: cstrutils [Processing]
2020-01-05T05:28:08.1193355Z Hint: srcloc [Processing]
2020-01-05T05:28:08.1193438Z d:\a\1\s\lib\system\inclrtl.nim(52, 10) Hint: 'since' is declared but not used [XDeclaredButNotUsed]
2020-01-05T05:28:08.1193718Z Hint: asyncsync [Processing]
2020-01-05T05:28:08.1193780Z Hint: handles [Processing]
2020-01-05T05:28:08.1193884Z Hint: transport [Processing]
2020-01-05T05:28:08.1193943Z Hint: datagram [Processing]
2020-01-05T05:28:08.1194242Z Hint: common [Processing]
2020-01-05T05:28:08.1194304Z Hint: stream [Processing]
2020-01-05T05:28:08.1194363Z Hint: ipnet [Processing]
2020-01-05T05:28:08.1194468Z Hint: endians [Processing]
2020-01-05T05:28:08.1194816Z Hint: osnet [Processing]
2020-01-05T05:28:08.1195011Z Hint: asyncstream [Processing]
2020-01-05T05:28:08.1195070Z Hint: chunkstream [Processing]
2020-01-05T05:28:08.1195532Z Hint: testsync [Processing]
2020-01-05T05:28:08.1195586Z Hint: testsoon [Processing]
2020-01-05T05:28:08.1195682Z Hint: testtime [Processing]
2020-01-05T05:28:08.1195736Z Hint: testfut [Processing]
2020-01-05T05:28:08.1196938Z Hint: testsignal [Processing]
2020-01-05T05:28:08.1197007Z Hint: testaddress [Processing]
2020-01-05T05:28:08.1197116Z Hint: testdatagram [Processing]
2020-01-05T05:28:08.1197179Z Hint: teststream [Processing]
2020-01-05T05:28:08.1197285Z Hint: testserver [Processing]
2020-01-05T05:28:08.1197346Z Hint: testbugs [Processing]
2020-01-05T05:28:08.1197451Z Hint: testnet [Processing]
2020-01-05T05:28:08.1197512Z Hint: testasyncstream [Processing]
2020-01-05T05:28:08.1197623Z Hint: tlsstream [Processing]
2020-01-05T05:28:08.1197686Z Hint: bearssl [Processing]
2020-01-05T05:28:08.1197744Z Hint: decls [Processing]
2020-01-05T05:28:08.1197853Z Hint: errors [Processing]
2020-01-05T05:28:08.1197913Z Hint: cacert [Processing]
2020-01-05T05:28:08.1198020Z CC: ccopy
2020-01-05T05:28:08.1198073Z CC: dec16be
2020-01-05T05:28:08.1198176Z CC: dec16le
2020-01-05T05:28:08.1198229Z CC: dec32be
2020-01-05T05:28:08.1198327Z CC: dec32le
2020-01-05T05:28:08.1198399Z CC: dec64be
2020-01-05T05:28:08.1198499Z CC: dec64le
2020-01-05T05:28:08.1198553Z CC: enc16be
2020-01-05T05:28:08.1198654Z CC: enc16le
2020-01-05T05:28:08.1198709Z CC: enc32be
2020-01-05T05:28:08.1198761Z CC: enc32le
2020-01-05T05:28:08.1198860Z CC: enc64be
2020-01-05T05:28:08.1198914Z CC: enc64le
2020-01-05T05:28:08.1199028Z CC: pemdec
2020-01-05T05:28:08.1199081Z CC: pemenc
2020-01-05T05:28:08.1199181Z CC: ecdsa_atr
2020-01-05T05:28:08.1199239Z CC: ecdsa_default_sign_asn1
2020-01-05T05:28:08.1199351Z CC: ecdsa_default_sign_raw
2020-01-05T05:28:08.1199412Z CC: ecdsa_default_vrfy_asn1
2020-01-05T05:28:08.1199517Z CC: ecdsa_default_vrfy_raw
2020-01-05T05:28:08.1199577Z CC: ecdsa_i15_bits
2020-01-05T05:28:08.1199713Z CC: ecdsa_i15_sign_asn1
2020-01-05T05:28:08.1199776Z CC: ecdsa_i15_sign_raw
2020-01-05T05:28:08.1199835Z CC: ecdsa_i15_vrfy_asn1
2020-01-05T05:28:08.1200925Z CC: ecdsa_i15_vrfy_raw
2020-01-05T05:28:08.1200978Z CC: ecdsa_i31_bits
2020-01-05T05:28:08.1201076Z CC: ecdsa_i31_sign_asn1
2020-01-05T05:28:08.1201273Z CC: ecdsa_i31_sign_raw
2020-01-05T05:28:08.1201378Z CC: ecdsa_i31_vrfy_asn1
2020-01-05T05:28:08.1201431Z CC: ecdsa_i31_vrfy_raw
2020-01-05T05:28:08.1201529Z CC: ecdsa_rta
2020-01-05T05:28:08.1201582Z CC: ec_all_m15
2020-01-05T05:28:08.1201674Z CC: ec_all_m31
2020-01-05T05:28:08.1201726Z CC: ec_c25519_i15
2020-01-05T05:28:08.1201821Z CC: ec_c25519_i31
2020-01-05T05:28:08.1201875Z CC: ec_c25519_m15
2020-01-05T05:28:08.1201965Z CC: ec_c25519_m31
2020-01-05T05:28:08.1202018Z CC: ec_c25519_m62
2020-01-05T05:28:08.1202068Z CC: ec_c25519_m64
2020-01-05T05:28:08.1202163Z CC: ec_curve25519
2020-01-05T05:28:08.1202214Z CC: ec_default
2020-01-05T05:28:08.1202309Z CC: ec_keygen
2020-01-05T05:28:08.1202359Z CC: ec_p256_m15
2020-01-05T05:28:08.1202455Z CC: ec_p256_m31
2020-01-05T05:28:08.1202506Z CC: ec_p256_m62
2020-01-05T05:28:08.1202596Z CC: ec_p256_m64
2020-01-05T05:28:08.1202646Z CC: ec_prime_i15
2020-01-05T05:28:08.1202744Z CC: ec_prime_i31
2020-01-05T05:28:08.1202811Z CC: ec_pubkey
2020-01-05T05:28:08.1202903Z CC: ec_secp256r1
2020-01-05T05:28:08.1202956Z CC: ec_secp384r1
2020-01-05T05:28:08.1203006Z CC: ec_secp521r1
2020-01-05T05:28:08.1203102Z CC: dig_oid
2020-01-05T05:28:08.1203151Z CC: dig_size
2020-01-05T05:28:08.1203245Z CC: ghash_ctmul
2020-01-05T05:28:08.1203296Z CC: ghash_ctmul32
2020-01-05T05:28:08.1203412Z CC: ghash_ctmul64
2020-01-05T05:28:08.1203464Z CC: ghash_pclmul
2020-01-05T05:28:08.1203556Z CC: ghash_pwr8
2020-01-05T05:28:08.1203607Z CC: md5
2020-01-05T05:28:08.1203694Z CC: md5sha1
2020-01-05T05:28:08.1203744Z CC: mgf1
2020-01-05T05:28:08.1203834Z CC: multihash
2020-01-05T05:28:08.1203885Z CC: sha1
2020-01-05T05:28:08.1203932Z CC: sha2big
2020-01-05T05:28:08.1204025Z CC: sha2small
2020-01-05T05:28:08.1204075Z CC: i15_add
2020-01-05T05:28:08.1204373Z CC: i15_bitlen
2020-01-05T05:28:08.1204427Z CC: i15_decmod
2020-01-05T05:28:08.1204523Z CC: i15_decode
2020-01-05T05:28:08.1204576Z CC: i15_decred
2020-01-05T05:28:08.1204762Z CC: i15_encode
2020-01-05T05:28:08.1204816Z CC: i15_fmont
2020-01-05T05:28:08.1204912Z CC: i15_iszero
2020-01-05T05:28:08.1204965Z CC: i15_moddiv
2020-01-05T05:28:08.1205060Z CC: i15_modpow
2020-01-05T05:28:08.1205113Z CC: i15_modpow2
2020-01-05T05:28:08.1205166Z CC: i15_montmul
2020-01-05T05:28:08.1205264Z CC: i15_mulacc
2020-01-05T05:28:08.1205316Z CC: i15_muladd
2020-01-05T05:28:08.1205412Z CC: i15_ninv15
2020-01-05T05:28:08.1205464Z CC: i15_reduce
2020-01-05T05:28:08.1205560Z CC: i15_rshift
2020-01-05T05:28:08.1205612Z CC: i15_sub
2020-01-05T05:28:08.1205705Z CC: i15_tmont
2020-01-05T05:28:08.1205757Z CC: i31_add
2020-01-05T05:28:08.1205850Z CC: i31_bitlen
2020-01-05T05:28:08.1205904Z CC: i31_decmod
2020-01-05T05:28:08.1205996Z CC: i31_decode
2020-01-05T05:28:08.1206049Z CC: i31_decred
2020-01-05T05:28:08.1206100Z CC: i31_encode
2020-01-05T05:28:08.1206270Z CC: i31_fmont
2020-01-05T05:28:08.1207104Z CC: i31_iszero
2020-01-05T05:28:08.1207218Z CC: i31_moddiv
2020-01-05T05:28:08.1207293Z CC: i31_modpow
2020-01-05T05:28:08.1207402Z CC: i31_modpow2
2020-01-05T05:28:08.1207459Z CC: i31_montmul
2020-01-05T05:28:08.1207561Z CC: i31_mulacc
2020-01-05T05:28:08.1207618Z CC: i31_muladd
2020-01-05T05:28:08.1207956Z CC: i31_ninv31
2020-01-05T05:28:08.1208023Z CC: i31_reduce
2020-01-05T05:28:08.1208126Z CC: i31_rshift
2020-01-05T05:28:08.1208183Z CC: i31_sub
2020-01-05T05:28:08.1208236Z CC: i31_tmont
2020-01-05T05:28:08.1208341Z CC: i32_add
2020-01-05T05:28:08.1208394Z CC: i32_bitlen
2020-01-05T05:28:08.1208498Z CC: i32_decmod
2020-01-05T05:28:08.1208555Z CC: i32_decode
2020-01-05T05:28:08.1208656Z CC: i32_decred
2020-01-05T05:28:08.1208712Z CC: i32_div32
2020-01-05T05:28:08.1208812Z CC: i32_encode
2020-01-05T05:28:08.1208869Z CC: i32_fmont
2020-01-05T05:28:08.1208968Z CC: i32_iszero
2020-01-05T05:28:08.1209025Z CC: i32_modpow
2020-01-05T05:28:08.1209125Z CC: i32_montmul
2020-01-05T05:28:08.1209183Z CC: i32_mulacc
2020-01-05T05:28:08.1209239Z CC: i32_muladd
2020-01-05T05:28:08.1209466Z CC: i32_ninv32
2020-01-05T05:28:08.1209525Z CC: i32_reduce
2020-01-05T05:28:08.1209630Z CC: i32_sub
2020-01-05T05:28:08.1209684Z CC: i32_tmont
2020-01-05T05:28:08.1209789Z CC: i62_modpow2
2020-01-05T05:28:08.1209846Z CC: hkdf
2020-01-05T05:28:08.1209945Z CC: shake
2020-01-05T05:28:08.1209999Z CC: hmac
2020-01-05T05:28:08.1210261Z CC: hmac_ct
2020-01-05T05:28:08.1210315Z CC: aesctr_drbg
2020-01-05T05:28:08.1210409Z CC: hmac_drbg
2020-01-05T05:28:08.1210624Z CC: sysrng
2020-01-05T05:28:08.1210674Z CC: rsa_default_keygen
2020-01-05T05:28:08.1210771Z CC: rsa_default_modulus
2020-01-05T05:28:08.1210826Z CC: rsa_default_oaep_decrypt
2020-01-05T05:28:08.1210925Z CC: rsa_default_oaep_encrypt
2020-01-05T05:28:08.1210980Z CC: rsa_default_pkcs1_sign
2020-01-05T05:28:08.1211081Z CC: rsa_default_pkcs1_vrfy
2020-01-05T05:28:08.1211135Z CC: rsa_default_priv
2020-01-05T05:28:08.1211232Z CC: rsa_default_privexp
2020-01-05T05:28:08.1211285Z CC: rsa_default_pss_sign
2020-01-05T05:28:08.1211390Z CC: rsa_default_pss_vrfy
2020-01-05T05:28:08.1211451Z CC: rsa_default_pub
2020-01-05T05:28:08.1211546Z CC: rsa_default_pubexp
2020-01-05T05:28:08.1211601Z CC: rsa_i15_keygen
2020-01-05T05:28:08.1211694Z CC: rsa_i15_modulus
2020-01-05T05:28:08.1211748Z CC: rsa_i15_oaep_decrypt
2020-01-05T05:28:08.1211801Z CC: rsa_i15_oaep_encrypt
2020-01-05T05:28:08.1211898Z CC: rsa_i15_pkcs1_sign
2020-01-05T05:28:08.1211951Z CC: rsa_i15_pkcs1_vrfy
2020-01-05T05:28:08.1212045Z CC: rsa_i15_priv
2020-01-05T05:28:08.1212098Z CC: rsa_i15_privexp
2020-01-05T05:28:08.1212196Z CC: rsa_i15_pss_sign
2020-01-05T05:28:08.1212248Z CC: rsa_i15_pss_vrfy
2020-01-05T05:28:08.1212344Z CC: rsa_i15_pub
2020-01-05T05:28:08.1212396Z CC: rsa_i15_pubexp
2020-01-05T05:28:08.1212490Z CC: rsa_i31_keygen
2020-01-05T05:28:08.1212544Z CC: rsa_i31_keygen_inner
2020-01-05T05:28:08.1212640Z CC: rsa_i31_modulus
2020-01-05T05:28:08.1212695Z CC: rsa_i31_oaep_decrypt
2020-01-05T05:28:08.1212790Z CC: rsa_i31_oaep_encrypt
2020-01-05T05:28:08.1212926Z CC: rsa_i31_pkcs1_sign
2020-01-05T05:28:08.1212980Z CC: rsa_i31_pkcs1_vrfy
2020-01-05T05:28:08.1213079Z CC: rsa_i31_priv
2020-01-05T05:28:08.1213131Z CC: rsa_i31_privexp
2020-01-05T05:28:08.1213227Z CC: rsa_i31_pss_sign
2020-01-05T05:28:08.1213281Z CC: rsa_i31_pss_vrfy
2020-01-05T05:28:08.1213380Z CC: rsa_i31_pub
2020-01-05T05:28:08.1213432Z CC: rsa_i31_pubexp
2020-01-05T05:28:08.1213529Z CC: rsa_i32_oaep_decrypt
2020-01-05T05:28:08.1213584Z CC: rsa_i32_oaep_encrypt
2020-01-05T05:28:08.1213681Z CC: rsa_i32_pkcs1_sign
2020-01-05T05:28:08.1213735Z CC: rsa_i32_pkcs1_vrfy
2020-01-05T05:28:08.1213832Z CC: rsa_i32_priv
2020-01-05T05:28:08.1213885Z CC: rsa_i32_pss_sign
2020-01-05T05:28:08.1213979Z CC: rsa_i32_pss_vrfy
2020-01-05T05:28:08.1214033Z CC: rsa_i32_pub
2020-01-05T05:28:08.1214085Z CC: rsa_i62_keygen
2020-01-05T05:28:08.1214181Z CC: rsa_i62_oaep_decrypt
2020-01-05T05:28:08.1214234Z CC: rsa_i62_oaep_encrypt
2020-01-05T05:28:08.1214333Z CC: rsa_i62_pkcs1_sign
2020-01-05T05:28:08.1214400Z CC: rsa_i62_pkcs1_vrfy
2020-01-05T05:28:08.1214498Z CC: rsa_i62_priv
2020-01-05T05:28:08.1214550Z CC: rsa_i62_pss_sign
2020-01-05T05:28:08.1214646Z CC: rsa_i62_pss_vrfy
2020-01-05T05:28:08.1214699Z CC: rsa_i62_pub
2020-01-05T05:28:08.1214791Z CC: rsa_oaep_pad
2020-01-05T05:28:08.1214844Z CC: rsa_oaep_unpad
2020-01-05T05:28:08.1214940Z CC: rsa_pkcs1_sig_pad
2020-01-05T05:28:08.1214995Z CC: rsa_pkcs1_sig_unpad
2020-01-05T05:28:08.1215089Z CC: rsa_pss_sig_pad
2020-01-05T05:28:08.1215143Z CC: rsa_pss_sig_unpad
2020-01-05T05:28:08.1215195Z CC: rsa_ssl_decrypt
2020-01-05T05:28:08.1215289Z CC: prf
2020-01-05T05:28:08.1215338Z CC: prf_md5sha1
2020-01-05T05:28:08.1215431Z CC: prf_sha256
2020-01-05T05:28:08.1215483Z CC: prf_sha384
2020-01-05T05:28:08.1215577Z CC: ssl_ccert_single_ec
2020-01-05T05:28:08.1215631Z CC: ssl_ccert_single_rsa
2020-01-05T05:28:08.1215724Z CC: ssl_client
2020-01-05T05:28:08.1215777Z CC: ssl_client_default_rsapub
2020-01-05T05:28:08.1215875Z CC: ssl_client_full
2020-01-05T05:28:08.1216006Z CC: ssl_engine
2020-01-05T05:28:08.1216104Z CC: ssl_engine_default_aescbc
2020-01-05T05:28:08.1216161Z CC: ssl_engine_default_aesccm
2020-01-05T05:28:08.1216389Z CC: ssl_engine_default_aesgcm
2020-01-05T05:28:08.1216493Z CC: ssl_engine_default_chapol
2020-01-05T05:28:08.1216709Z CC: ssl_engine_default_descbc
2020-01-05T05:28:08.1217011Z CC: ssl_engine_default_ec
2020-01-05T05:28:08.1217073Z CC: ssl_engine_default_ecdsa
2020-01-05T05:28:08.1217181Z CC: ssl_engine_default_rsavrfy
2020-01-05T05:28:08.1217241Z CC: ssl_hashes
2020-01-05T05:28:08.1217346Z CC: ssl_hs_client
2020-01-05T05:28:08.1217405Z CC: ssl_hs_server
2020-01-05T05:28:08.1217509Z CC: ssl_io
2020-01-05T05:28:08.1217564Z CC: ssl_keyexport
2020-01-05T05:28:08.1217665Z CC: ssl_lru
2020-01-05T05:28:08.1217721Z CC: ssl_rec_cbc
2020-01-05T05:28:08.1217822Z CC: ssl_rec_ccm
2020-01-05T05:28:08.1217880Z CC: ssl_rec_chapol
2020-01-05T05:28:08.1217938Z CC: ssl_rec_gcm
2020-01-05T05:28:08.1218044Z CC: ssl_scert_single_ec
2020-01-05T05:28:08.1218122Z CC: ssl_scert_single_rsa
2020-01-05T05:28:08.1218230Z CC: ssl_server
2020-01-05T05:28:08.1218288Z CC: ssl_server_full_ec
2020-01-05T05:28:08.1218393Z CC: ssl_server_full_rsa
2020-01-05T05:28:08.1218453Z CC: ssl_server_mine2c
2020-01-05T05:28:08.1218560Z CC: ssl_server_mine2g
2020-01-05T05:28:08.1218619Z CC: ssl_server_minf2c
2020-01-05T05:28:08.1218722Z CC: ssl_server_minf2g
2020-01-05T05:28:08.1218781Z CC: ssl_server_minr2g
2020-01-05T05:28:08.1218882Z CC: ssl_server_minu2g
2020-01-05T05:28:08.1218940Z CC: ssl_server_minv2g
2020-01-05T05:28:08.1219039Z CC: aes_big_cbcdec
2020-01-05T05:28:08.1219097Z CC: aes_big_cbcenc
2020-01-05T05:28:08.1219154Z CC: aes_big_ctr
2020-01-05T05:28:08.1219257Z CC: aes_big_ctrcbc
2020-01-05T05:28:08.1219313Z CC: aes_big_dec
2020-01-05T05:28:08.1219414Z CC: aes_big_enc
2020-01-05T05:28:08.1219470Z CC: aes_common
2020-01-05T05:28:08.1219572Z CC: aes_ct
2020-01-05T05:28:08.1219626Z CC: aes_ct64
2020-01-05T05:28:08.1219731Z CC: aes_ct64_cbcdec
2020-01-05T05:28:08.1219887Z CC: aes_ct64_cbcenc
2020-01-05T05:28:08.1219994Z CC: aes_ct64_ctr
2020-01-05T05:28:08.1220053Z CC: aes_ct64_ctrcbc
2020-01-05T05:28:08.1220324Z CC: aes_ct64_dec
2020-01-05T05:28:08.1220380Z CC: aes_ct64_enc
2020-01-05T05:28:08.1220433Z CC: aes_ct_cbcdec
2020-01-05T05:28:08.1220532Z CC: aes_ct_cbcenc
2020-01-05T05:28:08.1220584Z CC: aes_ct_ctr
2020-01-05T05:28:08.1220680Z CC: aes_ct_ctrcbc
2020-01-05T05:28:08.1220734Z CC: aes_ct_dec
2020-01-05T05:28:08.1220829Z CC: aes_ct_enc
2020-01-05T05:28:08.1220881Z CC: aes_pwr8
2020-01-05T05:28:08.1220979Z CC: aes_pwr8_cbcdec
2020-01-05T05:28:08.1221033Z CC: aes_pwr8_cbcenc
2020-01-05T05:28:08.1221131Z CC: aes_pwr8_ctr
2020-01-05T05:28:08.1221184Z CC: aes_pwr8_ctrcbc
2020-01-05T05:28:08.1221280Z CC: aes_small_cbcdec
2020-01-05T05:28:08.1221337Z CC: aes_small_cbcenc
2020-01-05T05:28:08.1221431Z CC: aes_small_ctr
2020-01-05T05:28:08.1221485Z CC: aes_small_ctrcbc
2020-01-05T05:28:08.1221538Z CC: aes_small_dec
2020-01-05T05:28:08.1221646Z CC: aes_small_enc
2020-01-05T05:28:08.1221699Z CC: aes_x86ni
2020-01-05T05:28:08.1221795Z CC: aes_x86ni_cbcdec
2020-01-05T05:28:08.1221850Z CC: aes_x86ni_cbcenc
2020-01-05T05:28:08.1221948Z CC: aes_x86ni_ctr
2020-01-05T05:28:08.1222001Z CC: aes_x86ni_ctrcbc
2020-01-05T05:28:08.1222098Z CC: chacha20_ct
2020-01-05T05:28:08.1222150Z CC: chacha20_sse2
2020-01-05T05:28:08.1222244Z CC: des_ct
2020-01-05T05:28:08.1222295Z CC: des_ct_cbcdec
2020-01-05T05:28:08.1222393Z CC: des_ct_cbcenc
2020-01-05T05:28:08.1222446Z CC: des_support
2020-01-05T05:28:08.1222498Z CC: des_tab
2020-01-05T05:28:08.1222593Z CC: des_tab_cbcdec
2020-01-05T05:28:08.1222647Z CC: des_tab_cbcenc
2020-01-05T05:28:08.1222745Z CC: poly1305_ctmul
2020-01-05T05:28:08.1222824Z CC: poly1305_ctmul32
2020-01-05T05:28:08.1222931Z CC: poly1305_ctmulq
2020-01-05T05:28:08.1222986Z CC: poly1305_i15
2020-01-05T05:28:08.1223082Z CC: ccm
2020-01-05T05:28:08.1223131Z CC: eax
2020-01-05T05:28:08.1223224Z CC: gcm
2020-01-05T05:28:08.1223355Z CC: asn1enc
2020-01-05T05:28:08.1223453Z CC: encode_ec_pk8der
2020-01-05T05:28:08.1223507Z CC: encode_ec_rawder
2020-01-05T05:28:08.1223605Z CC: encode_rsa_pk8der
2020-01-05T05:28:08.1223660Z CC: encode_rsa_rawder
2020-01-05T05:28:08.1223714Z CC: skey_decoder
2020-01-05T05:28:08.1223809Z CC: x509_decoder
2020-01-05T05:28:08.1224210Z CC: x509_knownkey
2020-01-05T05:28:08.1224352Z CC: x509_minimal
2020-01-05T05:28:08.1224408Z CC: x509_minimal_full
2020-01-05T05:28:08.1224508Z CC: settings
2020-01-05T05:28:08.1224558Z CC: xmem
2020-01-05T05:28:08.1224653Z CC: vector
2020-01-05T05:28:08.1224704Z CC: names
2020-01-05T05:28:08.1224798Z CC: certs
2020-01-05T05:28:08.1224849Z CC: files
2020-01-05T05:28:08.1224939Z CC: stdlib_assertions.nim
2020-01-05T05:28:08.1224999Z CC: stdlib_dollars.nim
2020-01-05T05:28:08.1225054Z CC: stdlib_locks.nim
2020-01-05T05:28:08.1225155Z CC: stdlib_sharedlist.nim
2020-01-05T05:28:08.1225212Z CC: stdlib_widestrs.nim
2020-01-05T05:28:08.1225328Z CC: stdlib_io.nim
2020-01-05T05:28:08.1225384Z CC: stdlib_system.nim
2020-01-05T05:28:08.1225483Z CC: stdlib_parseutils.nim
2020-01-05T05:28:08.1225539Z CC: stdlib_math.nim
2020-01-05T05:28:08.1225636Z CC: stdlib_algorithm.nim
2020-01-05T05:28:08.1225691Z CC: stdlib_strutils.nim
2020-01-05T05:28:08.1225793Z CC: stdlib_streams.nim
2020-01-05T05:28:08.1225849Z CC: stdlib_dynlib.nim
2020-01-05T05:28:08.1225946Z CC: stdlib_winlean.nim
2020-01-05T05:28:08.1226003Z CC: stdlib_times.nim
2020-01-05T05:28:08.1226102Z CC: stdlib_hashes.nim
2020-01-05T05:28:08.1226158Z CC: stdlib_sets.nim
2020-01-05T05:28:08.1226384Z CC: stdlib_os.nim
2020-01-05T05:28:08.1226489Z CC: stdlib_terminal.nim
2020-01-05T05:28:08.1227777Z CC: stdlib_unittest.nim
2020-01-05T05:28:08.1228011Z CC: stdlib_tables.nim
2020-01-05T05:28:08.1228072Z CC: stdlib_heapqueue.nim
2020-01-05T05:28:08.1228178Z CC: stdlib_nativesockets.nim
2020-01-05T05:28:08.1228240Z CC: stdlib_monotimes.nim
2020-01-05T05:28:08.1228345Z CC: stdlib_net.nim
2020-01-05T05:28:08.1228549Z CC: stdlib_deques.nim
2020-01-05T05:28:08.1228658Z CC: ../chronos/timer.nim
2020-01-05T05:28:08.1228718Z CC: stdlib_cstrutils.nim
2020-01-05T05:28:08.1228823Z CC: ../chronos/srcloc.nim
2020-01-05T05:28:08.1228885Z CC: ../chronos/asyncloop.nim
2020-01-05T05:28:08.1228991Z CC: ../chronos/asyncsync.nim
2020-01-05T05:28:08.1229053Z CC: ../chronos/handles.nim
2020-01-05T05:28:08.1229115Z CC: ../chronos/transports/common.nim
2020-01-05T05:28:08.1229225Z CC: ../chronos/transports/datagram.nim
2020-01-05T05:28:08.1229288Z CC: ../chronos/transports/stream.nim
2020-01-05T05:28:08.1229398Z CC: ../chronos/transports/ipnet.nim
2020-01-05T05:28:08.1229460Z CC: ../chronos/transports/osnet.nim
2020-01-05T05:28:08.1229566Z CC: ../chronos/streams/asyncstream.nim
2020-01-05T05:28:08.1229631Z CC: ../chronos/streams/chunkstream.nim
2020-01-05T05:28:08.1229734Z CC: testmacro.nim
2020-01-05T05:28:08.1229792Z CC: testsync.nim
2020-01-05T05:28:08.1229895Z CC: testsoon.nim
2020-01-05T05:28:08.1229968Z CC: testtime.nim
2020-01-05T05:28:08.1230069Z CC: testfut.nim
2020-01-05T05:28:08.1230127Z CC: testsignal.nim
2020-01-05T05:28:08.1230229Z CC: testaddress.nim
2020-01-05T05:28:08.1230289Z CC: testdatagram.nim
2020-01-05T05:28:08.1230551Z CC: teststream.nim
2020-01-05T05:28:08.1230606Z CC: testserver.nim
2020-01-05T05:28:08.1230659Z CC: testbugs.nim
2020-01-05T05:28:08.1230755Z CC: testnet.nim
2020-01-05T05:28:08.1230820Z CC: C:/Users/VssAdministrator/.nimble/pkgs/bearssl-0.1.3/bearssl/decls.nim
2020-01-05T05:28:08.1230942Z CC: C:/Users/VssAdministrator/.nimble/pkgs/bearssl-0.1.3/bearssl/errors.nim
2020-01-05T05:28:08.1231009Z CC: ../chronos/streams/tlsstream.nim
2020-01-05T05:28:08.1231110Z CC: testasyncstream.nim
2020-01-05T05:28:08.1231165Z CC: testall.nim
2020-01-05T05:28:08.1231260Z Hint: [Link]
2020-01-05T05:28:08.1231333Z Hint: operation successful (150591 lines compiled; 39.130 sec total; 328.324MiB peakmem; Debug Build) [SuccessX]
2020-01-05T05:28:08.1231459Z Hint: d:\a\1\s\pkgstemp\chronos\tests\testall.exe [Exec]
2020-01-05T05:28:08.1231594Z
2020-01-05T05:28:08.1231696Z [Suite] Macro transformations test suite
2020-01-05T05:28:08.1231735Z
2020-01-05T05:28:08.1231790Z [Suite] Asynchronous sync primitives test suite
2020-01-05T05:28:08.1231872Z
2020-01-05T05:28:08.1231923Z [Suite] callSoon() tests suite
2020-01-05T05:28:08.1231960Z
2020-01-05T05:28:08.1232053Z [Suite] Asynchronous timers test suite
2020-01-05T05:28:08.1232090Z
2020-01-05T05:28:08.1232183Z [Suite] Future[T] behavior test suite
2020-01-05T05:28:08.1232220Z
2020-01-05T05:28:08.1232271Z [Suite] Signal handling test suite
2020-01-05T05:28:08.1232348Z
2020-01-05T05:28:08.1232399Z [Suite] TransportAddress test suite
2020-01-05T05:28:08.1232435Z
2020-01-05T05:28:08.1232529Z [Suite] Datagram Transport test suite
2020-01-05T05:28:08.1232596Z d:\a\1\s\pkgstemp\chronos\tests\testdatagram.nim(504) testdatagram
2020-01-05T05:28:08.1232716Z d:\a\1\s\pkgstemp\chronos\tests\testdatagram.nim(443) testConnReset
2020-01-05T05:28:08.1232810Z d:\a\1\s\pkgstemp\chronos\chronos\transports\datagram.nim(604) newDatagramTransport
2020-01-05T05:28:08.1232938Z d:\a\1\s\pkgstemp\chronos\chronos\transports\datagram.nim(326) newDatagramTransportCommon
2020-01-05T05:28:08.1233021Z d:\a\1\s\pkgstemp\chronos\chronos\transports\common.nim(482) raiseTransportOsError
2020-01-05T05:28:08.1233130Z [[reraised from:
2020-01-05T05:28:08.1233189Z d:\a\1\s\lib\pure\unittest.nim(642) testdatagram
2020-01-05T05:28:08.1233301Z d:\a\1\s\pkgstemp\chronos\chronos\asyncloop.nim(935) waitFor
2020-01-05T05:28:08.1233375Z d:\a\1\s\pkgstemp\chronos\chronos\asyncfutures2.nim(423) read
2020-01-05T05:28:08.1233493Z d:\a\1\s\pkgstemp\chronos\chronos\asyncfutures2.nim(407) internalCheckComplete
2020-01-05T05:28:08.1233557Z ]]
2020-01-05T05:28:08.1233628Z
2020-01-05T05:28:08.1233701Z Unhandled exception: (10013) An attempt was made to access a socket in a way forbidden by its access permissions.
2020-01-05T05:28:08.1233753Z
2020-01-05T05:28:08.1233930Z Async traceback:
2020-01-05T05:28:08.1233996Z d:\a\1\s\pkgstemp\chronos\tests\testdatagram.nim(504) testdatagram
2020-01-05T05:28:08.1234119Z d:\a\1\s\pkgstemp\chronos\tests\testdatagram.nim(443) testConnReset
2020-01-05T05:28:08.1234198Z d:\a\1\s\pkgstemp\chronos\chronos\transports\datagram.nim(604) newDatagramTransport
2020-01-05T05:28:08.1234323Z d:\a\1\s\pkgstemp\chronos\chronos\transports\datagram.nim(326) newDatagramTransportCommon
2020-01-05T05:28:08.1234405Z d:\a\1\s\pkgstemp\chronos\chronos\transports\common.nim(482) raiseTransportOsError
2020-01-05T05:28:08.1234536Z Exception message: (10013) An attempt was made to access a socket in a way forbidden by its access permissions.
2020-01-05T05:28:08.1234587Z
2020-01-05T05:28:08.1234679Z Exception type: [TransportOsError]
2020-01-05T05:28:08.1234739Z [FAILED] Datagram connection reset test
2020-01-05T05:28:08.1234776Z
2020-01-05T05:28:08.1234868Z [Suite] Stream Transport test suite
2020-01-05T05:28:08.1234919Z
2020-01-05T05:28:08.1235010Z [Suite] Server's test suite
2020-01-05T05:28:08.1235047Z
2020-01-05T05:28:08.1235098Z [Suite] Asynchronous issues test suite
2020-01-05T05:28:08.1235179Z
2020-01-05T05:28:08.1235231Z [Suite] Network utilities test suite
2020-01-05T05:28:08.1235353Z 1. {FF04DD57-04FC-11EA-8AD2-806E6F6E6963} [Software Loopback Interface 1]: flags = 385 mtu 4294967295 state StatusUp
2020-01-05T05:28:08.1235428Z IfSoftwareLoopback
2020-01-05T05:28:08.1235535Z inet6 ::1/128 netmask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff brd ::1
2020-01-05T05:28:08.1235611Z inet 127.0.0.1/8 netmask 255.0.0.0 brd 127.255.255.255
2020-01-05T05:28:08.1235739Z 9. {ECE99D10-82AF-4093-ACED-6488F5162C33} [Hyper-V Virtual Ethernet Adapter]: flags = 448 mtu 1500 state StatusUp
2020-01-05T05:28:08.1235812Z IfEthernetCsmacd 00:15:5D:2E:97:3E
2020-01-05T05:28:08.1235929Z inet6 fe80::398d:6799:2f17:11ee/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
2020-01-05T05:28:08.1237417Z inet 172.17.96.1/20 netmask 255.255.240.0 brd 172.17.111.255
2020-01-05T05:28:08.1237580Z 13. {FC088F7A-2E1B-41F0-808B-6C6258990F4E} [Microsoft Hyper-V Network Adapter]: flags = 453 mtu 1500 state StatusUp
2020-01-05T05:28:08.1237661Z IfEthernetCsmacd 00:0D:3A:64:9A:F8
2020-01-05T05:28:08.1237790Z inet6 fe80::641e:ab19:2b50:a487/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
2020-01-05T05:28:08.1237875Z inet 10.1.0.4/16 netmask 255.255.0.0 brd 10.1.255.255
2020-01-05T05:28:08.1237988Z 8.8.8.8 via gateway 10.1.0.1 src 10.1.0.4
2020-01-05T05:28:08.1238029Z
2020-01-05T05:28:08.1238084Z [Suite] AsyncStream test suite
2020-01-05T05:28:08.1238166Z
2020-01-05T05:28:08.1238221Z [Suite] ChunkedStream test suite
2020-01-05T05:28:08.1238260Z
2020-01-05T05:28:08.1238357Z [Suite] TLSStream test suite
2020-01-05T05:28:08.1238437Z Error: execution of an external program failed: 'd:\a\1\s\pkgstemp\chronos\tests\testall.exe '
2020-01-05T05:28:08.1238576Z stack trace: (most recent call last)
2020-01-05T05:28:08.1238653Z C:\Users\VSSADM~1\AppData\Local\Temp\nimblecache\nimscriptapi.nim(165, 16)
2020-01-05T05:28:08.1238776Z d:\a\1\s\pkgstemp\chronos\chronos_2392.nims(25, 8) testTask
2020-01-05T05:28:08.1238850Z d:\a\1\s\lib\system\nimscript.nim(252, 7) exec
2020-01-05T05:28:08.1238989Z d:\a\1\s\lib\system\nimscript.nim(252, 7) Error: unhandled exception: FAILED: nim c -r -d:useSysAssert -d:useGcAssert tests/testall [OSError]
2020-01-05T05:28:08.1239089Z Tip: 1 messages have been suppressed, use --verbose to show them.
2020-01-05T05:28:08.1239225Z Error: Exception raised during nimble script execution
2020-01-05T05:28:08.1239270Z
2020-01-05T05:42:48.3613671Z PASS: https://github.com/c-blake/cligen.git C ( 3.59970045 secs)
2020-01-05T05:42:48.3614541Z PASS: https://github.com/samuelroy/coco C (40.21943784 secs)
2020-01-05T05:42:48.3614678Z PASS: https://github.com/PMunch/combparser C ( 5.28385043 secs)
2020-01-05T05:42:48.3615041Z PASS: https://github.com/LemonBoy/compactdict C ( 5.85917568 secs)
2020-01-05T05:42:48.3615314Z PASS: https://github.com/alehander42/comprehension C ( 5.12235832 secs)
2020-01-05T05:42:48.3615386Z PASS: https://github.com/LemonBoy/criterion.nim C (30.63471937 secs)
2020-01-05T05:42:48.3615501Z PASS: https://github.com/FedericoCeratto/nim-dashing C ( 3.69061804 secs)
2020-01-05T05:42:48.3615572Z PASS: https://github.com/docopt/docopt.nim C (31.96648812 secs)
2020-01-05T05:42:48.3615681Z PASS: https://github.com/jackmott/easygl C (25.08782792 secs)
2020-01-05T05:42:48.3615751Z PASS: https://github.com/mattaylor/elvis C ( 9.71760035 secs)
2020-01-05T05:42:48.3615862Z PASS: https://github.com/fragcolor-xyz/fragments C ( 4.48106480 secs)
2020-01-05T05:42:48.3615931Z PASS: https://github.com/alehander42/gara C ( 5.78747010 secs)
2020-01-05T05:42:48.3616067Z PASS: https://github.com/citycide/glob C (15.17424870 secs)
2020-01-05T05:42:48.3616137Z PASS: https://github.com/dvolk/gnuplot.nim C ( 2.37900209 secs)
2020-01-05T05:42:48.3616248Z PASS: https://github.com/brentp/hts-nim C ( 3.63218880 secs)
2020-01-05T05:42:48.3616317Z PASS: https://github.com/johnnovak/illwill C (26.44360042 secs)
2020-01-05T05:42:48.3616426Z PASS: https://github.com/AndreiRegiani/INim C ( 5.41465950 secs)
2020-01-05T05:42:48.3616494Z PASS: https://github.com/narimiran/itertools C ( 4.41663480 secs)
2020-01-05T05:42:48.3616603Z PASS: https://github.com/def-/iterutils C ( 5.87759614 secs)
2020-01-05T05:42:48.3616671Z PASS: https://github.com/LemonBoy/jstin C ( 6.17078805 secs)
2020-01-05T05:42:48.3616782Z PASS: https://github.com/pragmagic/karax C (16.43957520 secs)
2020-01-05T05:42:48.3616971Z PASS: https://github.com/numforge/loopfusion C ( 4.18020654 secs)
2020-01-05T05:42:48.3617085Z PASS: https://github.com/jangko/msgpack4nim C (76.37032723 secs)
2020-01-05T05:42:48.3617153Z PASS: https://github.com/fowlmouth/nake/ C ( 4.16059089 secs)
2020-01-05T05:42:48.3617263Z PASS: https://github.com/unicredit/neo C (20.78133941 secs)
2020-01-05T05:42:48.3617331Z PASS: https://github.com/icyphox/nicy C ( 3.68755484 secs)
2020-01-05T05:42:48.3617441Z PASS: https://github.com/trustable-code/NiGui C ( 4.73047924 secs)
2020-01-05T05:42:48.3617549Z PASS: https://github.com/cheatfate/nimcrypto C (28.52949214 secs)
2020-01-05T05:42:48.3617619Z PASS: https://github.com/bluenote10/NimData C (32.58482814 secs)
2020-01-05T05:42:48.3617745Z PASS: https://github.com/def-/nimes C (22.20628333 secs)
2020-01-05T05:42:48.3617815Z PASS: https://github.com/vegansk/nimfp C (23.23603559 secs)
2020-01-05T05:42:48.3617924Z PASS: https://github.com/Vladar4/nimgame2/ C (15.41730261 secs)
2020-01-05T05:42:48.3617994Z PASS: https://github.com/genotrance/nimgen C (40.23392534 secs)
2020-01-05T05:42:48.3618102Z PASS: https://github.com/loloiccl/nimly C (11.91878581 secs)
2020-01-05T05:42:48.3618648Z PASS: https://github.com/yglukhov/nimpy C ( 4.81091809 secs)
2020-01-05T05:45:45.4737207Z PASS: https://github.com/GULPF/nimquery C (10.61488056 secs)
2020-01-05T05:45:45.4738039Z PASS: https://github.com/yglukhov/nimsl C (22.69996715 secs)
2020-01-05T05:45:45.4738195Z PASS: https://github.com/bluenote10/NimSvg C ( 5.74850321 secs)
2020-01-05T05:45:45.4738853Z PASS: https://github.com/yglukhov/nimx C (142.48365569 secs)
2020-01-05T05:45:45.4739009Z PASS: https://github.com/moigagoo/norm C (16.09630132 secs)
2020-01-05T05:45:45.4739261Z PASS: https://github.com/zevv/npeg C (50.48674464 secs)
2020-01-05T05:45:45.4739414Z PASS: https://github.com/Araq/ormin C (12.24987411 secs)
2020-01-05T05:45:45.4739492Z PASS: https://github.com/NimParsers/parsetoml.git C ( 6.42708969 secs)
2020-01-05T05:45:45.4739609Z PASS: https://github.com/andreaferretti/patty C (12.23007488 secs)
2020-01-05T05:45:45.4739685Z PASS: https://github.com/brentp/nim-plotly C (10.13092732 secs)
2020-01-05T05:45:45.4739802Z PASS: https://github.com/jiro4989/pnm C (10.85165811 secs)
2020-01-05T05:45:45.4739879Z PASS: https://github.com/guibar64/polypbren C (14.73940921 secs)
2020-01-05T05:45:45.4740018Z PASS: https://github.com/PMunch/protobuf-nim C (11.43407631 secs)
2020-01-05T05:45:45.4740780Z PASS: https://github.com/Nycto/RBTreeNim C ( 9.78852844 secs)
2020-01-05T05:45:45.4741424Z PASS: https://github.com/andreaferretti/react.nim C ( 3.24008250 secs)
2020-01-05T05:45:45.4741685Z PASS: https://github.com/nitely/nim-regex C ( 8.24815989 secs)
2020-01-05T05:45:45.4742009Z PASS: https://github.com/arnetheduck/nim-result C ( 2.75638747 secs)
2020-01-05T05:45:45.4742225Z PASS: https://github.com/andreaferretti/rosencrantz C ( 5.05113268 secs)
2020-01-05T05:45:45.4742378Z PASS: https://github.com/nim-lang/sdl1 C ( 2.58899832 secs)
2020-01-05T05:45:45.4742543Z PASS: https://github.com/Vladar4/sdl2_nim C ( 3.72210121 secs)
2020-01-05T05:45:45.4742620Z PASS: https://github.com/genotrance/snip C (15.74625492 secs)
2020-01-05T05:45:45.4742931Z PASS: https://github.com/status-im/nim-stint C ( 3.13303685 secs)
2020-01-05T05:45:45.4743011Z PASS: https://github.com/nitely/nim-strunicode C (16.54481077 secs)
2020-01-05T05:45:45.4744095Z PASS: https://github.com/ba0f3/telebot.nim C (17.76966047 secs)
2020-01-05T05:45:45.4744545Z PASS: https://github.com/euantorano/tempdir.nim C ( 2.26365924 secs)
2020-01-05T05:45:45.4744649Z PASS: https://[email protected]/krux02/tensordslnim.git C ( 3.75945210 secs)
2020-01-05T05:45:45.4744764Z PASS: https://github.com/GULPF/tiny_sqlite C ( 4.98274899 secs)
2020-01-05T05:45:45.4744839Z PASS: https://github.com/nitely/nim-unicodedb C (29.15898275 secs)
2020-01-05T05:45:45.4744986Z PASS: https://github.com/nitely/nim-unicodeplus C (12.74999309 secs)
2020-01-05T05:45:45.4745062Z PASS: https://github.com/technicallyagd/unpack C ( 5.96571064 secs)
2020-01-05T05:45:45.4745201Z PASS: https://github.com/zevv/with C ( 5.78931737 secs)
2020-01-05T05:45:45.4745277Z PASS: https://github.com/treeform/ws C ( 5.91076398 secs)
2020-01-05T05:45:45.4745391Z PASS: https://github.com/flyx/NimYAML C ( 3.00000429 secs)
2020-01-05T05:45:45.4745465Z PASS: https://github.com/zero-functional/zero-functional C (12.70665693 secs)
2020-01-05T05:45:45.4745567Z FAIL: PackageFileParsed C
2020-01-05T05:45:45.4745630Z Test "PackageFileParsed" in category "nimble-packages"
2020-01-05T05:45:45.4745727Z Failure: reBuildFailed
2020-01-05T05:45:45.4745761Z
2020-01-05T05:45:45.6866984Z FAILURE! total: 82 passed: 81 skipped: 0 failed: 1
2020-01-05T05:45:45.6908933Z Error: execution of an external program failed: 'd:\a\1\s\testament\testament.exe cat nimble-packages'
2020-01-05T05:45:45.7156174Z FAILURE
2020-01-05T05:45:45.7226858Z
2020-01-05T05:45:45.7319473Z ##[section]Finishing: Run CI
There are several reasons to do this:
times.Duration
and friends) to integrate better with other librariesSo it looks like you still can't use async
in combination with exception tracking.
Any proc
with {.async, raises:[Defect].}
will result in:
/home/deme/repos/nim-beacon-chain/vendor/nim-chronos/chronos/asyncmacro2.nim(63, 12) Error: can raise an unlisted exception: Exception
E.g. even:
proc test() {.async, raises: [Defect].} =
discard
This however doesn't:
proc test(): Future[void] {.raises: [Defect].} =
discard
Next to that, it also seems that future.complete()
can also raise Exception
.
multiple completions of the same future generally indicate issues, thus it seems the debug behavior is safer..
In order to comply with nimbus-docs-suite, the README must start with an Introduction and have a Contributing heading at the bottom, as per template in nimbus-launch.
the unit test suite is not written in an exception safe way - this is problematic because:
example:
nim-chronos/tests/teststream.nim
Line 74 in e3ced62
For the purposes of implementing a RESTful APIs for interacting with our beacon node, we need a production-ready HTTP/1.1 server that integrates with nim-chronos. It should focus on strong adherence to standards with great care towards security. Additional features such as HTTPS and WebSockets will be added after the initial release.
Currently, an async proc looks like so:
# Return int
proc a(): Future[int] {.async.}
# Return void
proc b(): Future[void] {.async.}
# Return void, take 2
proc c()] {.async.}
There is an asymmetry in void which is confusing because there are two ways to do void
return, one of which implicitly injects the future and the other that doesn't.
The second confusion comes from the similarity of async and non-async implemenations - ie it's possible to create a function proc d(): Future[int] = ...
without using the async transformation and still fit it within the sync/async framework.
As such, I'd suggest that the async macro be changed such that it always automatically injects the future:
proc a(): int {.async.} = ...
proc sameAsA(): Future[int] = ...
Regarding backwards compat, the macro can detect the future and give a deprecation warning for a transitionary period of time.
type
SeqHeader = object
length, reserved: int
proc isLiteral*(s: string): bool {.inline.} =
(cast[ptr SeqHeader](s.cstring).reserved and (1 shl (sizeof(int) * 8 - 2))) != 0
proc isLiteral*[T](s: seq[T]): bool {.inline.} =
(cast[ptr SeqHeader](s).reserved and (1 shl (sizeof(int) * 8 - 2))) != 0
How to deal with seq[T] casting to ptr SeqHeader with --gc:arc
import chronos
proc someFoo() {.async.} =
result = newFuture[int]("another one")
when isMainModule:
waitFor someFoo()
This example is able to get compiled.
FYI from this experiment: nim-lang/Nim#13348
this is 1 of the only 2 packages that fails on nim CI (the other one is https://github.com/trustable-code/NiGui)
see https://dev.azure.com/nim-lang/255dfe86-e590-40bb-a8a2-3c0295ebdeb1/_apis/build/builds/2412/logs/82
https://dev.azure.com/nim-lang/255dfe86-e590-40bb-a8a2-3c0295ebdeb1/_apis/build/builds/2412/logs/78
2020-02-07T03:21:47.6984412Z �[32mPASS: �[36mhttps://github.com/treeform/chroma C �[34m ( 4.54586840 secs)�[0m
2020-02-07T03:21:47.6984758Z �[32mPASS: �[36mhttps://github.com/status-im/nim-chronicles C �[34m (14.30997872 secs)�[0m
2020-02-07T03:21:47.6984982Z �[1m�[31mFAIL: �[36mhttps://github.com/status-im/nim-chronos C�[0m
2020-02-07T03:21:47.6985395Z �[1m�[36mTest "https://github.com/status-im/nim-chronos" in category "nimble-packages"�[0m
2020-02-07T03:21:47.6985569Z �[1m�[31mFailure: reBuildFailed�[0m
2020-02-07T03:21:47.6985643Z package test failed
2020-02-07T03:21:47.6985688Z $ nimble test
2020-02-07T03:21:47.6985808Z Executing task test in /home/vsts/work/1/s/pkgstemp/chronos/chronos.nimble
2020-02-07T03:21:47.6985873Z
2020-02-07T03:21:47.6986111Z nim c -r -d:useSysAssert -d:useGcAssert tests/testall
...
2020-02-07T03:21:47.6990901Z Hint: osnet [Processing]
2020-02-07T03:21:47.6990986Z /home/vsts/work/1/s/pkgstemp/chronos/chronos/transports/osnet.nim(636, 24) Warning: use `csize_t` instead; csize is deprecated [Deprecated]
2020-02-07T03:21:47.6991305Z /home/vsts/work/1/s/pkgstemp/chronos/chronos/transports/osnet.nim(636, 19) Error: type mismatch: got <csize> but expected 'csize_t = uint'
2020-02-07T03:21:47.6991397Z stack trace: (most recent call last)
2020-02-07T03:21:47.6991465Z /tmp/nimblecache/nimscriptapi.nim(165, 16)
2020-02-07T03:21:47.6991522Z /home/vsts/work/1/s/pkgstemp/chronos/chronos_18881.nims(25, 8) testTask
2020-02-07T03:21:47.6991600Z /home/vsts/work/1/s/lib/system/nimscript.nim(252, 7) exec
2020-02-07T03:21:47.6991886Z /home/vsts/work/1/s/lib/system/nimscript.nim(252, 7) Error: unhandled exception: FAILED: nim c -r -d:useSysAssert -d:useGcAssert tests/testall [OSError]
2020-02-07T03:21:47.6992136Z Tip: 1 messages have been suppressed, use --verbose to show them.
2020-02-07T03:21:47.6992201Z Error: Exception raised during nimble script execution
2020-02-07T03:21:47.6992237Z
2020-02-07T03:31:11.1880921Z �[32mPASS: �[36mhttps://github.com/c-blake/cligen.git C �[34m ( 2.71678019 secs)�[0m
...
2020-02-07T03:34:38.7368188Z FAILURE! total: 82 passed: 81 skipped: 0 failed: 1
and this: https://dev.azure.com/nim-lang/255dfe86-e590-40bb-a8a2-3c0295ebdeb1/_apis/build/builds/2412/logs/78
2020-02-07T03:21:33.3882250Z Unhandled exception: Timeout exceeded!
2020-02-07T03:21:33.3882310Z Async traceback:
2020-02-07T03:21:33.3882390Z /Users/runner/runners/2.164.7/work/1/s/lib/pure/unittest.nim(647) testdatagram
2020-02-07T03:21:33.3882480Z /Users/runner/runners/2.164.7/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(946) waitFor
2020-02-07T03:21:33.3882570Z /Users/runner/runners/2.164.7/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(278) poll
2020-02-07T03:21:33.3882660Z /Users/runner/runners/2.164.7/work/1/s/pkgstemp/chronos/chronos/asyncmacro2.nim(275) testBroadcast
2020-02-07T03:21:33.3882760Z /Users/runner/runners/2.164.7/work/1/s/pkgstemp/chronos/chronos/asyncfutures2.nim(407) internalCheckComplete
2020-02-07T03:21:33.3882850Z Exception message: Timeout exceeded!
2020-02-07T03:21:33.3883530Z Exception type: [AsyncTimeoutError]
2020-02-07T03:21:33.3883700Z [FAILED] Broadcast test
2020-02-07T03:21:33.3883820Z /Users/runner/runners/2.164.7/work/1/s/pkgstemp/chronos/tests/testdatagram.nim(509, 54): Check failed: getTracker("datagram.transport").isLeaked() == false
2020-02-07T03:21:33.3883910Z getTracker("datagram.transport").isLeaked() was true
2020-02-07T03:21:33.3883990Z false was false
2020-02-07T03:21:33.3884140Z [FAILED] Transports leak test```
import asyncdispatch2
const HELLO_PORT = 1900
const TEST_MSG = "testmsg"
const MSG_LEN = TEST_MSG.len()
var udp4DataAvailable: DatagramCallback = proc(transp: DatagramTransport, remote: TransportAddress): Future[void] {.async, gcsafe.} =
echo "Data from:", remote
proc main(): Future[void] {.async.} =
var myself = initTAddress("127.0.0.1:" & $HELLO_PORT)
var data: ref byte
data = new byte
var dsock4 = newDatagramTransport[byte](udp4DataAvailable, udata = data, local = myself)
await dsock4.sendTo(myself, TEST_MSG, MSG_LEN)
asyncCheck main()
while true:
poll()
# Fails with
# asyncdispatch2Bug.nim(19) asyncdispatch2Bug
# asyncmacro2.nim(306) main
# asyncmacro2.nim(36) main_continue
# asyncdispatch2Bug.nim(17) mainIter
# datagram.nim(622) sendTo
# system.nim(2807) sysFatal
# [[reraised from:
# asyncdispatch2Bug.nim(21) asyncdispatch2Bug
# asyncloop.nim(226) poll
# asyncfutures2.nim(370) cb
# ]]
# Error: unhandled exception: index out of bounds
# Async traceback:
# asyncdispatch2Bug.nim(19) asyncdispatch2Bug
# asyncmacro2.nim(306) main
# asyncmacro2.nim(36) main_continue
# asyncdispatch2Bug.nim(17) mainIter
# datagram.nim(622) sendTo
# system.nim(2807) sysFatal
# Exception message: index out of bounds
# Exception type: [IndexError]
If i sendTo
from the callback it works fine.
Do i maybe use it wrong?
Since Jacek is reviewing the AD2 APIs and suggesting changes, here is one small change I want to suggest.
The timer APIs are currently accepting a closure taking an opaque pointer type.
addTimer(node.beaconState.slotStart(slot)) do (p: pointer):
doAssert validator != nil
asyncCheck proposeBlock(node, validator, slot.uint64)
This is a common pattern used in C to simulate "closure-like" callbacks. With a native support for closures in the language, such an API is quite unnatural and less convenient. The opaque pointer can be removed without any loss of functionality.
For very low-level interop with C, Nim can provide additional helpers for wrapping a C function and pointer into a closure type and also for deconstructing the closure type to its respective pair of pointers.
nim-chronos/chronos/transports/stream.nim
Line 1001 in e3ced62
Side note to @dryajov : we don't check write
actual sent sizes, we return Future[void]
should prob return Future[size]
Originally posted by @sinkingsugar in #72 (comment)
proc works(): Future[int] {.async.} =
return 53
proc works2(): Future[int] {.async.} =
result = 53
proc broken(): Future[int] {.async.} =
53 # Error: expression '53' is of type 'int literal(53)' and has to be discarded
Based on Nim appveyor tests, this package fails on Windows.
I don't have Windows so I cannot reproduce, but I have been told that running nim c tests/teststream.nim
produces ..\chronos\transports\stream.nim(287, 27) Error: 'writeStreamLoop' is not GC-safe as it performs an indirect call here
/
This is likely connected to nim-lang/Nim@c86b1fb and could probably be fixed on your end by some extra {.gcsafe.}
at some places.
Details nim-lang/Nim#12530
Consider following example:
import asyncdispatch2
var transport: StreamTransport
proc looper() {.async.} =
while true:
var data = await transport.readLine()
if data.len == 0:
echo "No data, disconnected(?)"
echo "Got data", data
if isMainModule:
proc demo() {.async.} =
transport = await connect(resolveTAddress("127.0.0.1:5000")[0])
asyncCheck looper()
echo "post looper"
waitFor sleepAsync(1)
close(transport)
echo "Closed"
waitFor demo()
runForever()
If you will run it against any "echo" server running on localhost:5000 you should see:
Waiting for data
post looper
Got data
Waiting for data
Closed
I'm pretty sure that readLine should return empty read when socket is closed especially that https://github.com/status-im/nim-asyncdispatch2/blob/f4f98d617c067ed590d7cd2fd761134d81376a1b/asyncdispatch2/transports/stream.nim#L1069 says that it should read whatever have been left when EOF received.
I've disabled chronos on OSX from important_packages in nim-lang/Nim#13954 because CI for chronos fails on OSX:
https://dev.azure.com/nim-lang/255dfe86-e590-40bb-a8a2-3c0295ebdeb1/_apis/build/builds/4234/logs/76
2020-04-11T13:10:46.5530120Z �[1m�[31mFAIL: �[36mhttps://github.com/status-im/nim-chronos C�[0m
2020-04-11T13:10:46.5530940Z �[1m�[36mTest "https://github.com/status-im/nim-chronos" in category "nimble-packages"�[0m
2020-04-11T13:10:46.5531670Z �[1m�[31mFailure: reBuildFailed�[0m
2020-04-11T13:10:46.5531940Z package test failed
2020-04-11T13:10:46.5532150Z $ nimble test
2020-04-11T13:10:46.5532510Z Executing task test in /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos.nimble
2020-04-11T13:10:46.5532960Z
2020-04-11T13:10:46.5533560Z nim c -r -d:useSysAssert -d:useGcAssert tests/testall
...
2020-04-11T13:10:46.5643960Z CC: testserver.nim
2020-04-11T13:10:46.5644170Z CC: testbugs.nim
2020-04-11T13:10:46.5644370Z CC: testnet.nim
2020-04-11T13:10:46.5652800Z CC: ../../../../../../../../.nimble/pkgs/bearssl-0.1.5/bearssl/decls.nim
2020-04-11T13:10:46.5654090Z CC: ../../../../../../../../.nimble/pkgs/bearssl-0.1.5/bearssl/errors.nim
2020-04-11T13:10:46.5654510Z CC: ../chronos/streams/tlsstream.nim
2020-04-11T13:10:46.5654770Z CC: testasyncstream.nim
2020-04-11T13:10:46.5655000Z CC: testall.nim
2020-04-11T13:10:46.5655190Z Hint: [Link]
2020-04-11T13:10:46.5655750Z Hint: 165288 LOC; 12.580 sec; 337.258MiB peakmem; Debug build; proj: tests/testall; out: /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/tests/testall [SuccessX]
2020-04-11T13:10:46.5657140Z Hint: /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/tests/testall [Exec]
2020-04-11T13:10:46.5657490Z
2020-04-11T13:10:46.5657700Z [Suite] Macro transformations test suite
2020-04-11T13:10:46.5657900Z
2020-04-11T13:10:46.5658140Z [Suite] Asynchronous sync primitives test suite
2020-04-11T13:10:46.5658350Z
2020-04-11T13:10:46.5658550Z [Suite] callSoon() tests suite
2020-04-11T13:10:46.5658730Z
2020-04-11T13:10:46.5658940Z [Suite] Asynchronous timers test suite
2020-04-11T13:10:46.5659130Z
2020-04-11T13:10:46.5659340Z [Suite] Future[T] behavior test suite
2020-04-11T13:10:46.5659530Z
2020-04-11T13:10:46.5659740Z [Suite] Signal handling test suite
2020-04-11T13:10:46.5659920Z
2020-04-11T13:10:46.5660130Z [Suite] TransportAddress test suite
2020-04-11T13:10:46.5660310Z
2020-04-11T13:10:46.5660520Z [Suite] Datagram Transport test suite
2020-04-11T13:10:46.5660910Z /Users/runner/runners/2.165.2/work/1/s/lib/pure/unittest.nim(647) testdatagram
2020-04-11T13:10:46.5661400Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(946) waitFor
2020-04-11T13:10:46.5661930Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(278) poll
2020-04-11T13:10:46.5662450Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncmacro2.nim(273) testBroadcast
2020-04-11T13:10:46.5663040Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncfutures2.nim(407) internalCheckComplete
2020-04-11T13:10:46.5663440Z [[reraised from:
2020-04-11T13:10:46.5663770Z /Users/runner/runners/2.165.2/work/1/s/lib/pure/unittest.nim(647) testdatagram
2020-04-11T13:10:46.5664270Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(948) waitFor
2020-04-11T13:10:46.5665140Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncfutures2.nim(423) read
2020-04-11T13:10:46.5665740Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncfutures2.nim(407) internalCheckComplete
2020-04-11T13:10:46.5666110Z ]]
2020-04-11T13:10:46.5666230Z
2020-04-11T13:10:46.5666470Z Unhandled exception: Timeout exceeded!
2020-04-11T13:10:46.5666740Z Async traceback:
2020-04-11T13:10:46.5667130Z /Users/runner/runners/2.165.2/work/1/s/lib/pure/unittest.nim(647) testdatagram
2020-04-11T13:10:46.5667680Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(946) waitFor
2020-04-11T13:10:46.5668230Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncloop.nim(278) poll
2020-04-11T13:10:46.5668780Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncmacro2.nim(273) testBroadcast
2020-04-11T13:10:46.5669370Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos/asyncfutures2.nim(407) internalCheckComplete
2020-04-11T13:10:46.5669830Z Exception message: Timeout exceeded!
2020-04-11T13:10:46.5670130Z Exception type: [AsyncTimeoutError]
2020-04-11T13:10:46.5670400Z [FAILED] Broadcast test
2020-04-11T13:10:46.5670940Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/tests/testdatagram.nim(560, 54): Check failed: getTracker("datagram.transport").isLeaked() == false
2020-04-11T13:10:46.5671780Z getTracker("datagram.transport").isLeaked() was true
2020-04-11T13:10:46.5672080Z false was false
2020-04-11T13:10:46.5672330Z [FAILED] Transports leak test
2020-04-11T13:10:46.5672510Z
2020-04-11T13:10:46.5672710Z [Suite] Stream Transport test suite
2020-04-11T13:10:46.5672900Z
2020-04-11T13:10:46.5673490Z [Suite] Server's test suite
2020-04-11T13:10:46.5673680Z
2020-04-11T13:10:46.5673910Z [Suite] Asynchronous issues test suite
2020-04-11T13:10:46.5674100Z
2020-04-11T13:10:46.5674310Z [Suite] Network utilities test suite
2020-04-11T13:10:46.5674630Z 1. lo0: flags = 32841 mtu 16384 state StatusUp
2020-04-11T13:10:46.5674920Z IfSoftwareLoopback
2020-04-11T13:10:46.5675400Z inet 127.0.0.1/8 netmask 255.0.0.0 brd 127.255.255.255
2020-04-11T13:10:46.5675860Z inet6 ::1/128 netmask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff brd ::1
2020-04-11T13:10:46.5676390Z inet6 fe80::1/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
2020-04-11T13:10:46.5676850Z 2. gif0: flags = 32784 mtu 1280 state StatusDown
2020-04-11T13:10:46.5677130Z IfIeee80212
2020-04-11T13:10:46.5677400Z 3. stf0: flags = 0 mtu 1280 state StatusDown
2020-04-11T13:10:46.5677680Z IfHippiInterface
2020-04-11T13:10:46.5677960Z 4. en0: flags = 34915 mtu 1500 state StatusUp
2020-04-11T13:10:46.5678290Z IfEthernetCsmacd 00:50:56:88:2C:AC
2020-04-11T13:10:46.5678650Z inet 10.79.9.3/20 netmask 255.255.240.0 brd 10.79.15.255
2020-04-11T13:10:46.5679020Z 5. utun0: flags = 32849 mtu 1380 state StatusUp
2020-04-11T13:10:46.5679300Z IfOther
2020-04-11T13:10:46.5679700Z inet6 fe80::818d:25b8:fc83:cb94/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
2020-04-11T13:10:46.5680200Z 6. utun1: flags = 32849 mtu 2000 state StatusUp
2020-04-11T13:10:46.5680470Z IfOther
2020-04-11T13:10:46.5680880Z inet6 fe80::d23f:d69b:8452:8c2d/64 netmask ffff:ffff:ffff:ffff:: brd fe80::ffff:ffff:ffff:ffff
2020-04-11T13:10:46.5681350Z 8.8.8.8 via gateway 10.79.0.1 src 10.79.9.3
2020-04-11T13:10:46.5681560Z
2020-04-11T13:10:46.5681760Z [Suite] AsyncStream test suite
2020-04-11T13:10:46.5681940Z
2020-04-11T13:10:46.5682140Z [Suite] ChunkedStream test suite
2020-04-11T13:10:46.5682320Z
2020-04-11T13:10:46.5682510Z [Suite] TLSStream test suite
2020-04-11T13:10:46.5683430Z Error: execution of an external program failed: '/Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/tests/testall '
2020-04-11T13:10:46.5683930Z stack trace: (most recent call last)
2020-04-11T13:10:46.5684370Z /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/nimblecache/nimscriptapi.nim(165, 16)
2020-04-11T13:10:46.5684900Z /Users/runner/runners/2.165.2/work/1/s/pkgstemp/chronos/chronos_7298.nims(25, 8) testTask
2020-04-11T13:10:46.5685400Z /Users/runner/runners/2.165.2/work/1/s/lib/system/nimscript.nim(260, 7) exec
2020-04-11T13:10:46.5686520Z /Users/runner/runners/2.165.2/work/1/s/lib/system/nimscript.nim(260, 7) Error: unhandled exception: FAILED: nim c -r -d:useSysAssert -d:useGcAssert tests/testall [OSError]
2020-04-11T13:10:46.5687580Z Tip: 1 messages have been suppressed, use --verbose to show them.
2020-04-11T13:10:46.5688020Z Error: Exception raised during nimble script execution
2020-04-11T13:10:46.5688280Z
2020-04-11T13:15:18.6274920Z �[32mPASS: �[36mhttps://github.com/c-blake/cligen.git C �[34m ( 2.04 sec)�[0m
2020-04-11T13:15:18.6276190Z �[32mPASS: �[36mhttps://github.com/samuelroy/coco C �[34m (24.98 sec)�[0m
2020-04-11T13:15:18.6277160Z �[32mPASS: �[36mhttps://github.com/PMunch/combparser C �[34m ( 3.00 sec)�[0m
2020-04-11T13:15:18.6278090Z �[32mPASS: �[36mhttps://github.com/LemonBoy/compactdict C �[34m ( 3.55 sec)�[0m
2020-04-11T13:15:18.6279050Z �[32mPASS: �[36mhttps://github.com/alehander42/comprehension C �[34m ( 2.99 sec)�[0m
2020-04-11T13:15:18.6280490Z �[32mPASS: �[36mhttps://github.com/LemonBoy/criterion.nim C �[34m (35.07 sec)�[0m
2020-04-11T13:15:18.6281420Z �[32mPASS: �[36mhttps://github.com/FedericoCeratto/nim-dashing C �[34m ( 1.86 sec)�[0m
2020-04-11T13:15:18.6282350Z �[32mPASS: �[36mhttps://github.com/docopt/docopt.nim C �[34m (19.11 sec)�[0m
2020-04-11T13:15:18.6283330Z �[32mPASS: �[36mhttps://github.com/jackmott/easygl C �[34m (16.20 sec)�[0m
2020-04-11T13:15:18.6284310Z �[32mPASS: �[36mhttps://github.com/mattaylor/elvis C �[34m ( 3.79 sec)�[0m
2020-04-11T13:15:18.6285220Z �[32mPASS: �[36mhttps://github.com/fragcolor-xyz/fragments C �[34m ( 1.95 sec)�[0m
2020-04-11T13:15:18.6286270Z �[32mPASS: �[36mhttps://github.com/alehander42/gara C �[34m ( 3.46 sec)�[0m
2020-04-11T13:15:18.6287540Z �[32mPASS: �[36mhttps://github.com/Vindaar/ggplotnim C �[34m (52.02 sec)�[0m
2020-04-11T13:15:18.6288480Z �[32mPASS: �[36mhttps://github.com/citycide/glob C �[34m ( 7.31 sec)�[0m
2020-04-11T13:15:18.6289370Z �[32mPASS: �[36mhttps://github.com/dvolk/gnuplot.nim C �[34m ( 1.42 sec)�[0m
2020-04-11T13:15:18.6290280Z �[32mPASS: �[36mhttps://github.com/brentp/hts-nim C �[34m ( 1.59 sec)�[0m
2020-04-11T13:15:18.6291170Z �[32mPASS: �[36mhttps://github.com/johnnovak/illwill C �[34m (17.38 sec)�[0m
2020-04-11T13:15:18.6292080Z �[32mPASS: �[36mhttps://github.com/inim-repl/INim C �[34m ( 3.19 sec)�[0m
2020-04-11T13:15:18.6292980Z �[32mPASS: �[36mhttps://github.com/narimiran/itertools C �[34m ( 2.03 sec)�[0m
2020-04-11T13:15:18.6293870Z �[32mPASS: �[36mhttps://github.com/def-/iterutils C �[34m ( 3.01 sec)�[0m
2020-04-11T13:15:18.6294780Z �[32mPASS: �[36mhttps://github.com/LemonBoy/jstin C �[34m ( 3.51 sec)�[0m
2020-04-11T13:15:18.6295680Z �[32mPASS: �[36mhttps://github.com/pragmagic/karax C �[34m (11.89 sec)�[0m
2020-04-11T13:15:18.6296590Z �[32mPASS: �[36mhttps://github.com/numforge/loopfusion C �[34m ( 2.15 sec)�[0m
2020-04-11T13:15:18.6297480Z �[32mPASS: �[36mhttps://github.com/jangko/msgpack4nim C �[34m (32.63 sec)�[0m
2020-04-11T13:15:18.6298390Z �[32mPASS: �[36mhttps://github.com/fowlmouth/nake/ C �[34m ( 1.93 sec)�[0m
2020-04-11T13:15:18.6299270Z �[32mPASS: �[36mhttps://github.com/unicredit/neo C �[34m ( 9.38 sec)�[0m
2020-04-11T13:15:18.6300170Z �[32mPASS: �[36mhttps://github.com/icyphox/nicy C �[34m ( 1.70 sec)�[0m
2020-04-11T13:15:18.6300980Z �[1m�[31mFAIL: �[36mhttps://github.com/trustable-code/NiGui C�[0m
2020-04-11T13:15:18.6301920Z �[1m�[36mTest "https://github.com/trustable-code/NiGui" in category "nimble-packages"�[0m
2020-04-11T13:15:18.6302650Z �[1m�[31mFailure: reBuildFailed�[0m
2020-04-11T13:15:18.6302940Z package test failed
2020-04-11T13:15:18.6303630Z $ nim c -o:niguii -r src/nigui.nim
Chronos needs an API for launching sub-processes and interacting with their standard input and output through AsyncPipe
. Additional APIs may be added for controlling process groups and for automatically terminating sub-processes when their parent dies.
the chronos async loop should be a fairly simple matter: it's a loop that runs callbacks - yet when compiling a simple app like nim-beacon-chain there is 1.4MB of code generated for it - something is wrong.
1,4M @m..@svendor@snim-chronos@[email protected]
A first step towards better threading support would be to remove the global dispatcher - that will allow a more library-like use with fewer mutable globals and better control over which dispatcher is used when, less reliance on undefined init order and a bunch of other subtle improvements.
Practical downside is that a few other "constructor" api get an extra dispatcher argument.
The change can be introduced gradually by first removing internal usages of the dispatcher, then slowly deprecating the affected functions.
import chronos
type X = ref object
proc testit123(xxx: X) {.async.} =
addTimer(Moment.now()) do (p: pointer):
asyncSpawn testit123(xxx)
discard testit123(X())
while true:
poll()
we can see how there's only one instance of xxx
and how each testit123 completes and therefore should release its reference to xxx
- yet the count keeps growing:
[arnetheduck@tempus nim-beacon-chain]$ nim c -r -d:loggc "testit.nim" | grep Xxx
...
[GC] incRef: 0x7f15acdb4038 22 Xxx rc=38256; thread=0
[GC] incRef: 0x7f15acdb4038 22 Xxx rc=38257; thread=0
[GC] incRef: 0x7f15acdb4038 22 Xxx rc=38258; thread=0
...
this might very well be a transformation issue - the transformation creates a backreference to the "previous" closure environment so these might simply never get released.
Your goal will be to create a benchmark testing asyncdispatch2 against the Nim's existing asyncdispatch module and the best competing frameworks available in other programming languages. A suitable choice would be implementing one of the TechEmperor famous benchmarks:
https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext
In particular, the plaintext case was selected because it makes use of HTTP pipelining which pushes all the frameworks to their limit.
The expected delivery is working code for the test case with the new and the old asyncdispatch modules as well a set of helper scripts allowing us to re-run the tests later and compare the results against some of the best performing frameworks available for other languages.
Currently, it throws an error:
nim-beacon-chain/vendor/nim-chronos/chronos/asyncmacro2.nim(161, 12) Error: Cannot transform this node kind into an async proc. proc/method definition or lambda node expected.
Hi, I'm working on porting httpbeast
to windows and also porting httpbeast
to chronos
, so I need to register handles in PDispatcher
.
As shown below, I think PDispatcher.handles
should be exported.
nim-lang/Nim#15140
I have benchmarked httpbeast
based on asyncdispatch
and chronos
in windows(based on IOCP) with
600 threads, 1s ramp-up period, 1000 loop count using jmeter. Of course I have not modified httpbeast
to accommodate chronos
.
Test program:
https://gist.github.com/xflywind/9782cb906be3f83d3a3a3cc9c85debae
nim-chronos/chronos/transports/stream.nim
Line 1612 in 357baa5
the above technique creates an unexpected reference to a variable that's passed in by value - this goes against the value semantics normally expected in nim - to make this safe, a copy should be used instead:
var data = @[u8 0]
var fut = stream.write(data)
data[0] = 42'u8 # either 0 or 42 will be written here, depending on stream state
await fut
there exist optimizations to avoid the copy in most cases - for example, if the data can be written to the socket directly without going through the event loop. it's possible that macros can be further optimized to detect when the seq is uniquely referenced and make better code as well - likewise, temporaries can be eliminated with move support etc etc
the pointer
versions of the write
API could be fixed (and optimized) in a similar way, or simply removed. since the seq
version would make a copy anyway, it could be replaced with an openArray
variant instead.
the slowest pipeline in nim CI is now Windows_amd64_pkg, and the slowest test in Windows_amd64_pkg is https://github.com/status-im/nim-chronos;
https://github.com/status-im/ tests combine to 477s = 8mn, or 25% of total in PackageFileParsed;
2020-03-01T03:42:14.7562549Z PASS: https://github.com/status-im/nim-chronos C (266.27445602
2020-03-01T03:42:14.7559002Z PASS: https://github.com/status-im/nim-bncurve C (141.18012929
2020-03-01T03:42:14.7558235Z PASS: https://github.com/status-im/nim-blscurve C (48.72544289
2020-03-01T03:42:14.7561947Z PASS: https://github.com/status-im/nim-chronicles C (19.57475209
2020-03-01T03:51:16.0747805Z PASS: https://github.com/status-im/nim-stint C ( 3.05449986
how about introducing a switch to make some of these tests (in particular https://github.com/status-im/nim-chronos and https://github.com/status-im/nim-bncurve) faster and replacing important_packages.nim by:
pkg "chronos", "", true
=>
pkg "chronos", "nimble testCI", true # or testFast
with something like:
task testCI, "test for nim CI":
nim c -r -d:chronosFastCI` test.nim
where defined(chronosFastCI) can be used in the slowest tests to reduce number of iterations or similar logic
The handler (with getMessage()
) where this happens is: https://github.com/status-im/nim-eth-p2p/blob/master/eth_p2p/discovery.nim#L243
I think segfault will occur because of following flow:
EAGAIN
in this case) occurs on recvfrom
in readDatagramLoop
and setReadError
is ran.raise transp.getError()
is done in getMessage
or peekMessage
in the transport function
(see handler above).DatagramTransport
the segfault will occur at getMessage
.Why EAGAIN
happens, I don't know.
So far, I can only reproduce this (not 100% of the time) by running: https://github.com/status-im/nim-eth-p2p/blob/master/tests/tshh_connect.nim
This was tested only on a Linux x86_64 machine.
Implement scheme which will track create/release transports. In such way developer can find leaks in memory and OS resources (sockets or file descriptors).
Maintain 2 counters, number of created transports and number of closed transports and provide procedure which can return subtraction of this two counters. In such way developer can obtain information about present leaks our double close in transports.
If there no leaking transports number of created transports must be equal to number of closed transports.
Implemented in #33.
Maintain table which will hold all the created transports and information about it
Table elements will be added when the transport is created and deleted when the transport is closed.
Provide procedure which will dump all the information from table in convenient way.
When using getBestRoute
in a proc with {.raises: [Defect] .}
annotation, this fails on Windows but not on Linux and macOS, due to possible Exception
raised.
Ideally, it should be the same for all platforms and nothing should be raised.
I have modified std asynchttpserver replace asyncdispatch to chronos, I want test its performance with mofuparser
Tried
proc sendFileStreamHandler(api: DaemonAPI, stream: P2PStream) {.async.} =
{.gcsafe.}:
var name: string
var length: int
while true:
var line = await stream.transp.readLine()
if line == "":
continue
var parts = line.split(":")
name = parts[0]
length = parts[1].parseInt
var buffer = newString(length)
await stream.transp.readExactly(buffer[0].addr, length)
writeFile(name, buffer)
discard await stream.transp.write "received\r\n"
proc requestFileStreamHandler(api: DaemonAPI, stream: P2PStream) {.async.} =
{.gcsafe.}:
consoleString = peerDomainTable[$stream.peer] & strformat.`&` "\r\n"
console.add consoleString
var content = ""
while true:
if stop: break
var line = await stream.transp.readLine()
if len(line) == 0:
continue
if fileTable.hasKey line:
content = readFile(fileTable[line])
echo await stream.transp.write $content.len & "\r\n"
echo await stream.transp.write content
await data.api.addHandler(RequestProtocols, requestFileStreamHandler)
await data.api.addHandler(SendProtocols, sendFileStreamHandler)
When running NBC against Medalla I'm getting the following on or shortly after startup:
.../nim-beacon-chain/vendor/nim-testutils/testutils/moduletests.nim(21) beacon_node
.../nim-beacon-chain/beacon_chain/beacon_node.nim(1198) main
.../beacon_chain/beacon_node.nim(892) start
.../beacon_chain/beacon_node.nim(842) run
.../vendor/nim-chronos/chronos/asyncloop.nim(278) poll
.../vendor/nim-chronos/chronos/transports/stream.nim(1329) readStreamLoop
.../vendor/nimbus-build-system/vendor/Nim/lib/system/fatal.nim(49) sysFatal
Error: unhandled exception: index 4096 not in 0 .. 4095 [IndexError]
OS: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64
There no checks present in write()
procedures for errored transport.
https://github.com/status-im/nim-chronos/blob/master/chronos/transports/stream.nim#L1576
Please make release tags, otherwise it is more likely to break Nim CI which always requests latest chronos version)
Ref d595e0d
Thanks!
getDispatcher
does lazy initialization - this means it's not possible to use the chronos
API safely without introducing error handling in every call because it may raise an OSError (and thus has the raises OSError effect) - even calls that "logically" should not fail, such as setTimer
that merely adds a timer to the loop may fail on this initialization.
It would be good to be able to do all initialization during application startup such that it can happen in a "controlled" manner and that subsequent uses of the API are safe from errors of this kind.
Options discussed:
init
and raise Defect
from getDispatcher
Let's keep track of libraries being broken by the corresponding change.
nim-json-rpc:
/mnt/sda3/storage/CODE/status/nim-beacon-chain-clean/vendor/nim-json-rpc/json_rpc/servers/socketserver.nim(17, 72) template/generic instantiation of `async` from here
/mnt/sda3/storage/CODE/status/nim-beacon-chain-clean/vendor/nim-json-rpc/json_rpc/servers/socketserver.nim(31, 5) template/generic instantiation of `result` from here
/mnt/sda3/storage/CODE/status/nim-beacon-chain-clean/vendor/nim-chronos/chronos/asyncmacro2.nim(209, 18) Error: You should not reference the `result` variable inside a void async proc
News:
/mnt/sda3/storage/CODE/status/nim-beacon-chain-clean/vendor/news/src/news.nim(391, 59) template/generic instantiation of `async` from here
/mnt/sda3/storage/CODE/status/nim-beacon-chain-clean/vendor/news/src/news.nim(393, 5) template/generic instantiation of `result` from here
/mnt/sda3/storage/CODE/status/nim-beacon-chain-clean/vendor/nim-chronos/chronos/asyncmacro2.nim(209, 18) Error: You should not reference the `result` variable inside a void async proc
https://github.com/nim-lang/Nim/pull/17442/checks?check_run_id=2186758767
PASS: [3/42] chroma c ( 3.80 sec)
FAIL: chronicles c
Test "chronicles" in category "nimble-packages"
Failure: reBuildFailed
nim c -o:chr -r chronicles.nim
Hint: used config file '/home/runner/work/Nim/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/runner/work/Nim/Nim/config/config.nims' [Conf]
Hint: used config file '/home/runner/work/Nim/Nim/pkgstemp/chronicles/nim.cfg' [Conf]
......................................................
/home/runner/.nimble/pkgs/chronos-3.0.0/chronos/asyncmacro2.nim(185, 1) template/generic instantiation from here
/home/runner/.nimble/pkgs/chronos-3.0.0/chronos/asyncmacro2.nim(187, 55) Error: can raise an unlisted exception: ref ValueError
PASS: [5/42] cligen c ( 3.43 sec)
I'm having some issues with AsyncStream, I'm sending a big payload (1MB) to stress test some limits but it seems that to begin with asyncstream (well the transport behind it) write won't deal nicely with big payloads:
vacp2p/nim-libp2p#74 (comment)
How is fragmentation and such dealt? Are jumbo payloads supported at all?
I've made sure of my data integrity of 1MB until this proc btw:
nim-chronos/chronos/streams/asyncstream.nim
Line 631 in e3ced62
If we don't support oversized packets than every write should at least throw some exception I guess.
Btw it's not critical for my PR as we can put a hard limit in our wrapper stream probably.
Edit:
Btw I'm aware that this is likely related to the transport behind the stream, I just wonder what's our stance with fragmentation mostly, not really a critical issue probably.
In docu there is: nimble install asyncdispatch2
however the package is not available in Nimble (yet?)
Some of the errors should be marked as non-fatal, for example:
ECONNABORTED
should be handled in chronos
.EMFILE
, ENFILE
, ENOBUFS
, ENOMEM
could be treated as TransportTooManyError
(which is not fatal).EBADF
, EINVAL
, ENOTSOCK
, EOPNOTSUPP
, EPROTO
, EFAULT
(BSD MACOS) could be treated as fatal.WSAECONNABORTED
should be handled in chronos
. (treat it as ECONNABORTED on *nix).WSAEMFILE
, WSAENOBUFS
, WSAETOOMANYREFS
- TransportTooManyError
.Async stream ones are public, these are private/internal still.
nim-chronos/chronos/transports/stream.nim
Lines 67 to 69 in d8f8e3d
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.