faster CIs (#13803)
* ttables: smaller table, 5x speedup * thavlak: less iterations, less loops; 30% speedup * tasyncclosestall: shorter timeout; 35% speedup * gcleak4: less iterations, 2x speedup * ttimes: remove deprecated stuff * tdangerisrelease: remove cpp backend, 3x speedup * tfrexp1: smaller range, 2x speedup * trtree: fix warnings, less iterations, 6x speedup * tasyncawait_cyclebreaker: smaller swarm size; 2x speedup * trealloc: smaller number of iterations; 10x speedup * towned_binary_tree: less iterations, 4x speedup * tclosure: remove unused code, less iterations; 2x speedup * twaitany: less durations; 1.4x speedup * tasync_misc: less iterations, 2x speedup * t8535: smaller sleep, 1.5x speedup * tmanyjoin: smaller sleep, 2x speedup * t12221: shorter sleeps, removed two slower tests; 1.6x speedup * tfuturestream: smaller sleep; 1.5x speedup * growobjcrash: less iterations; 2x speedup * ttryrecv: smaller sleep; 1.5x speedup * treusetvar: less threads; 2x speedup * delete tthreadanalysis2, basically a duplicate of tthreadanalysis * t7758: less iterations, 1.5x speedup * tasyncawait: smaller swarm, less messages; 1.5x speedup * tjsandnativeasync: smaller sleep, 1.5x speedup * tpendingcheck: smaller sleep, 1.5x speedup * remove rodfiles test category * move tseq from its own category to 'collections' category * remove unneeded tests and helpers from 'assert' category * stdlib: merge tbitops2 into tbitops * remove 'trepr2' from 'stdlib' cat * merge 'tstreams' into one file * remove 'tinefficient_const_table' from 'ccbugs' cat * merge 'tcollections_to_string' into 'tcollections' * tblocking_channel: smaller sleep, small speedup * tconvexhull: less iterartions; 1.2x speedup * merge 'tdeepcopy2' into 'tdeepcopy' * merge 'tdisjoint_slice2' into 'tdisjoint_slice1' * tmissing_deepcopy: smaller sequence * tsendtwice: smaller arrays; 5x speedup * remove 'tindexerrorformatbounds' * disable multimethod tests * remove 'gc:none' and 'refc' without 'd:useRealtimeGC' from gc tests * koch.nim: bootstrap just with '-d:release', no need for 'csource' * add github workflow for documentation * testament: no need for 8 sub-second decimals
This commit is contained in:
parent
2a278f6eba
commit
8088633250
72 changed files with 532 additions and 1082 deletions
|
|
@ -1,206 +0,0 @@
|
|||
discard """
|
||||
output: '''
|
||||
Hithere, what's your name?Hathere, what's your name?
|
||||
fA13msg1falsefB14msg2truefC15msg3false
|
||||
Zip: [{"Field0": 1, "Field1": 2}, {"Field0": 3, "Field1": 4}, {"Field0": 5, "Field1": 6}]
|
||||
Filter Iterator: 3
|
||||
Filter Iterator: 5
|
||||
Filter Iterator: 7
|
||||
Filter: [3, 5, 7]
|
||||
FilterIt: [1, 3, 7]
|
||||
Concat: [1, 3, 5, 7, 2, 4, 6]
|
||||
Deduplicate: [1, 2, 3, 4, 5, 7]
|
||||
@[()]
|
||||
@[1, 42, 3]
|
||||
@[1, 42, 3]
|
||||
2345623456
|
||||
'''
|
||||
"""
|
||||
|
||||
block tseq2:
|
||||
proc `*`(a, b: seq[int]): seq[int] =
|
||||
# allocate a new sequence:
|
||||
newSeq(result, len(a))
|
||||
# multiply two int sequences:
|
||||
for i in 0..len(a)-1: result[i] = a[i] * b[i]
|
||||
|
||||
assert(@[1, 2, 3] * @[1, 2, 3] == @[1, 4, 9])
|
||||
|
||||
|
||||
|
||||
block tseqcon:
|
||||
const nestedFixed = true
|
||||
|
||||
type
|
||||
TRec {.final.} = object
|
||||
x, y: int
|
||||
s: string
|
||||
seq: seq[string]
|
||||
TRecSeq = seq[TRec]
|
||||
|
||||
proc test() =
|
||||
var s, b: seq[string]
|
||||
s = @[]
|
||||
add(s, "Hi")
|
||||
add(s, "there, ")
|
||||
add(s, "what's your name?")
|
||||
|
||||
b = s # deep copying here!
|
||||
b[0][1] = 'a'
|
||||
|
||||
for i in 0 .. len(s)-1:
|
||||
write(stdout, s[i])
|
||||
for i in 0 .. len(b)-1:
|
||||
write(stdout, b[i])
|
||||
|
||||
when nestedFixed:
|
||||
proc nested() =
|
||||
var
|
||||
s: seq[seq[string]]
|
||||
for i in 0..10_000: # test if the garbage collector
|
||||
# now works with sequences
|
||||
s = @[
|
||||
@["A", "B", "C", "D"],
|
||||
@["E", "F", "G", "H"],
|
||||
@["I", "J", "K", "L"],
|
||||
@["M", "N", "O", "P"]]
|
||||
|
||||
test()
|
||||
when nestedFixed:
|
||||
nested()
|
||||
echo ""
|
||||
|
||||
|
||||
|
||||
import os
|
||||
block tseqcon2:
|
||||
proc rec_dir(dir: string): seq[string] =
|
||||
result = @[]
|
||||
for kind, path in walk_dir(dir):
|
||||
if kind == pcDir:
|
||||
add(result, rec_dir(path))
|
||||
else:
|
||||
add(result, path)
|
||||
|
||||
|
||||
|
||||
block tseqtuple:
|
||||
type
|
||||
TMsg = tuple[
|
||||
file: string,
|
||||
line: int,
|
||||
msg: string,
|
||||
err: bool]
|
||||
|
||||
var s: seq[TMsg] = @[]
|
||||
|
||||
s.add(("fA", 13, "msg1", false))
|
||||
s.add(("fB", 14, "msg2", true))
|
||||
s.add(("fC", 15, "msg3", false))
|
||||
|
||||
for file, line, msg, err in items(s):
|
||||
stdout.write(file)
|
||||
stdout.write($line)
|
||||
stdout.write(msg)
|
||||
stdout.write($err)
|
||||
echo ""
|
||||
|
||||
|
||||
import sequtils, marshal
|
||||
block tsequtils:
|
||||
proc testFindWhere(item : int) : bool =
|
||||
if item != 1: return true
|
||||
|
||||
var seq1: seq[int] = @[]
|
||||
|
||||
seq1.add(1)
|
||||
seq1.add(3)
|
||||
seq1.add(5)
|
||||
seq1.add(7)
|
||||
|
||||
var seq2: seq[int] = @[2, 4, 6]
|
||||
var final = zip(seq1, seq2)
|
||||
|
||||
echo "Zip: ", $$(final)
|
||||
|
||||
#Test findWhere as a iterator
|
||||
|
||||
for itms in filter(seq1, testFindWhere):
|
||||
echo "Filter Iterator: ", $$(itms)
|
||||
|
||||
|
||||
#Test findWhere as a proc
|
||||
|
||||
var fullseq: seq[int] = filter(seq1, testFindWhere)
|
||||
|
||||
echo "Filter: ", $$(fullseq)
|
||||
|
||||
#Test findIt as a template
|
||||
|
||||
var finditval: seq[int] = filterIt(seq1, it!=5)
|
||||
|
||||
echo "FilterIt: ", $$(finditval)
|
||||
|
||||
var concatseq = concat(seq1,seq2)
|
||||
echo "Concat: ", $$(concatseq)
|
||||
|
||||
var seq3 = @[1,2,3,4,5,5,5,7]
|
||||
var dedupseq = deduplicate(seq3)
|
||||
echo "Deduplicate: ", $$(dedupseq)
|
||||
# bug #4973
|
||||
type
|
||||
SomeObj = object
|
||||
OtherObj = object
|
||||
field: SomeObj
|
||||
|
||||
let aSeq = @[OtherObj(field: SomeObj())]
|
||||
let someObjSeq = aSeq.mapIt(it.field)
|
||||
echo someObjSeq
|
||||
|
||||
|
||||
|
||||
block tshallowseq:
|
||||
proc xxx() =
|
||||
var x: seq[int] = @[1, 2, 3]
|
||||
var y: seq[int]
|
||||
system.shallowCopy(y, x)
|
||||
y[1] = 42
|
||||
echo y
|
||||
echo x
|
||||
xxx()
|
||||
|
||||
|
||||
block tshallowemptyseq:
|
||||
proc test() =
|
||||
var nilSeq: seq[int] = @[]
|
||||
var emptySeq: seq[int] = newSeq[int]()
|
||||
block:
|
||||
var t = @[1,2,3]
|
||||
shallow(nilSeq)
|
||||
t = nilSeq
|
||||
doAssert t == @[]
|
||||
block:
|
||||
var t = @[1,2,3]
|
||||
shallow(emptySeq)
|
||||
t = emptySeq
|
||||
doAssert t == @[]
|
||||
block:
|
||||
var t = @[1,2,3]
|
||||
shallowCopy(t, nilSeq)
|
||||
doAssert t == @[]
|
||||
block:
|
||||
var t = @[1,2,3]
|
||||
shallowCopy(t, emptySeq)
|
||||
doAssert t == @[]
|
||||
test()
|
||||
|
||||
|
||||
import strutils
|
||||
block ttoseq:
|
||||
for x in toSeq(countup(2, 6)):
|
||||
stdout.write(x)
|
||||
for x in items(toSeq(countup(2, 6))):
|
||||
stdout.write(x)
|
||||
var y: type("a b c".split)
|
||||
y = "xzy"
|
||||
stdout.write("\n")
|
||||
Loading…
Add table
Add a link
Reference in a new issue