summary refs log tree commit diff stats
path: root/compiler/closureiters.nim
Commit message (Expand)AuthorAgeFilesLines
* Fixed compilation of void closureiters with try stmt (#20138) [backport]Yuriy Glukhov2022-08-031-4/+7
* Fix nested finally handling in closureiters [backport] (#19933)Tanguy2022-07-111-6/+25
* move assertions out of system (#19599)flywind2022-03-231-0/+3
* fixes #19575 (#19596) [backport]Andreas Rumpf2022-03-091-2/+4
* real bugfix for #17170 (#18171)Andreas Rumpf2021-06-041-4/+6
* Fixes #17849 (#18055) [backport:1.2]Yuriy Glukhov2021-05-301-0/+6
* fixes #11225; generic sandwich problems; [backport:1.2] (#17255)Andreas Rumpf2021-03-091-1/+1
* fixes #17170 (#17171)Andreas Rumpf2021-02-241-1/+2
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-6/+6
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-15/+20
* closureiters: fixes #15243 (#15454) [backport:1.2]Andreas Rumpf2020-10-021-3/+102
* Big compiler Cleanup (#14777)Clyybber2020-08-281-3/+0
* Fix #14396 (#14793)Clyybber2020-07-041-1/+1
* fixes #14279 (#14618)Andreas Rumpf2020-06-091-2/+6
* arc optimizations (#13325)Andreas Rumpf2020-03-181-2/+2
* make case-object transitions explicit, make unknownLineInfo a const, replace ...Jasper Jenkins2020-01-171-1/+1
* fixes #12956 (#13020)Andreas Rumpf2020-01-031-1/+2
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-32/+32
* Fixed yield in nkCheckedFieldExpr (#12429) [backport]Yuriy Glukhov2019-10-151-2/+3
* Fix spellings (#12277) [backport]Federico Ceratto2019-09-271-2/+2
* closureiters.nim: finish the bugfixAndreas Rumpf2019-09-101-1/+1
* Fixed yield in nnkChckRange (#12160)Yuriy Glukhov2019-09-101-2/+2
* Reset closure iter exception before rethrowingYuriy Glukhov2019-08-161-6/+5
* int128 on firstOrd, lastOrd and lengthOrd (#11701)Arne Döring2019-08-071-6/+6
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-2/+2
* [refactoring] closureiters.nim: style changeAraq2019-06-201-132/+130
* more destructor based changes (#10885)Andreas Rumpf2019-03-231-2/+2
* Fixes 9716 [backport] (#9790)Yuriy Glukhov2018-11-241-8/+9
* Fixed yield in nkObjConstr. Fixes #9694 [backport] (#9744)Yuriy Glukhov2018-11-181-9/+15
* Field checks for everybody (#8957)LemonBoy2018-10-091-5/+5
* Fixes #8243 (#8904)Yuriy Glukhov2018-09-071-0/+19
* Fixes #8851 (#8859)Yuriy Glukhov2018-09-041-3/+3
* Make sure addGotoOut always inserts its node (#8843)LemonBoy2018-09-031-1/+1
* Fixed #8399 (#8401)Yuriy Glukhov2018-07-221-1/+1
* fixex merge conflictsAraq2018-06-081-26/+26
* Fixes #7985Yuriy Glukhov2018-06-071-9/+8
* Fixed yield in nkBlockExprYuriy Glukhov2018-06-071-2/+14
* Fixed yield in dotExpr and nkOfBranch lowering. Closes #7969.Yuriy Glukhov2018-06-061-2/+15
* CosmeticsYuriy Glukhov2018-06-051-18/+13
* Merge branch 'devel' into yield-in-tryYuriy Glukhov2018-05-151-72/+78
* Review comments addressed. More thorough line info tracking.Yuriy Glukhov2018-05-101-65/+65
* Fixed line infoYuriy Glukhov2018-05-091-0/+1
* CosmeticsYuriy Glukhov2018-05-091-162/+75
* Small fix and cosmeticsYuriy Glukhov2018-05-091-6/+1
* Corrected nkExceptBranch transformationYuriy Glukhov2018-05-091-13/+24
* More elaborate nkStmtListExpr loweringYuriy Glukhov2018-05-091-32/+372
* CleanupYuriy Glukhov2018-05-091-49/+31
* Yield in tryYuriy Glukhov2018-05-091-89/+497
* Minor dry upYuriy Glukhov2018-05-091-5/+3
* CosmeticsYuriy Glukhov2018-05-091-23/+24
n class="w"> testResultRow["expected"].str gotten = htmlQuote testResultRow["given"].str timestamp = "unknown" var panelCtxClass, textCtxClass, bgCtxClass, resultSign, resultDescription: string case result of "reSuccess": if onlyFailing: return panelCtxClass = "success" textCtxClass = "success" bgCtxClass = "success" resultSign = "ok" resultDescription = "PASS" of "reIgnored": if onlyFailing: return panelCtxClass = "info" textCtxClass = "info" bgCtxClass = "info" resultSign = "question" resultDescription = "SKIP" else: panelCtxClass = "danger" textCtxClass = "danger" bgCtxClass = "danger" resultSign = "exclamation" resultDescription = "FAIL" outfile.generateHtmlTestresultPanelBegin( trId, name, target, category, action, resultDescription, timestamp, result, resultSign, panelCtxClass, textCtxClass, bgCtxClass ) if expected.isNilOrWhitespace() and gotten.isNilOrWhitespace(): outfile.generateHtmlTestresultOutputNone() else: outfile.generateHtmlTestresultOutputDetails( expected.strip().htmlQuote, gotten.strip().htmlQuote ) outfile.generateHtmlTestresultPanelEnd() type AllTests = object data: JSonNode totalCount, successCount, ignoredCount, failedCount: int successPercentage, ignoredPercentage, failedPercentage: BiggestFloat proc allTestResults(): AllTests = result.data = newJArray() for file in os.walkFiles("testresults/*.json"): let data = parseFile(file) if data.kind != JArray: echo "[ERROR] ignoring json file that is not an array: ", file else: for elem in data: result.data.add elem let state = elem["result"].str if state.contains("reSuccess"): inc result.successCount elif state.contains("reIgnored"): inc result.ignoredCount result.totalCount = result.data.len result.successPercentage = 100 * (result.successCount.toBiggestFloat() / result.totalCount.toBiggestFloat()) result.ignoredPercentage = 100 * (result.ignoredCount.toBiggestFloat() / result.totalCount.toBiggestFloat()) result.failedCount = result.totalCount - result.successCount - result.ignoredCount result.failedPercentage = 100 * (result.failedCount.toBiggestFloat() / result.totalCount.toBiggestFloat()) proc generateTestResultsPanelGroupPartial(outfile: File, allResults: JsonNode, onlyFailing = false) = for testresultRow in allResults: generateTestResultPanelPartial(outfile, testresultRow, onlyFailing) proc generateTestRunTabContentPartial(outfile: File, allResults: AllTests, testRunRow: JsonNode, onlyFailing = false, firstRow = false) = let # The first tab gets the bootstrap classes for a selected and displaying tab content firstTabActiveClass = if firstRow: " in active" else: "" commitId = htmlQuote testRunRow["commit"].str hash = htmlQuote(testRunRow["commit"].str) branch = htmlQuote(testRunRow["branch"].str) machineId = htmlQuote testRunRow["machine"].str machineName = htmlQuote(testRunRow["machine"].str) os = htmlQuote("unknown_os") cpu = htmlQuote("unknown_cpu") outfile.generateHtmlTabPageBegin( firstTabActiveClass, commitId, machineId, branch, hash, machineName, os, cpu, allResults.totalCount, allResults.successCount, formatBiggestFloat(allResults.successPercentage, ffDecimal, 2) & "%", allResults.ignoredCount, formatBiggestFloat(allResults.ignoredPercentage, ffDecimal, 2) & "%", allResults.failedCount, formatBiggestFloat(allResults.failedPercentage, ffDecimal, 2) & "%" ) generateTestResultsPanelGroupPartial(outfile, allResults.data, onlyFailing) outfile.generateHtmlTabPageEnd() proc generateTestRunsHtmlPartial(outfile: File, allResults: AllTests, onlyFailing = false) = # Iterating the results twice, get entire result set in one go outfile.generateHtmlTabListBegin() if allResults.data.len > 0: generateTestRunTabListItemPartial(outfile, allResults.data[0], true) outfile.generateHtmlTabListEnd() outfile.generateHtmlTabContentsBegin() var firstRow = true for testRunRow in allResults.data: generateTestRunTabContentPartial(outfile, allResults, testRunRow, onlyFailing, firstRow) if firstRow: firstRow = false outfile.generateHtmlTabContentsEnd() proc generateHtml*(filename: string, onlyFailing: bool) = var outfile = open(filename, fmWrite) outfile.generateHtmlBegin() generateTestRunsHtmlPartial(outfile, allTestResults(), onlyFailing) outfile.generateHtmlEnd() outfile.flushFile() close(outfile)