diff options
Diffstat (limited to 'lib/pure')
-rw-r--r--[-rwxr-xr-x] | lib/pure/algorithm.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/base64.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/browsers.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/cgi.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/collections/intsets.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/collections/lists.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/collections/queues.nim | 0 | ||||
-rw-r--r-- | lib/pure/collections/sequtils.nim | 220 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/collections/sets.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/collections/tables.nim | 21 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/colors.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/complex.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/cookies.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/dynlib.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/encodings.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/gentabs.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/hashes.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/htmlgen.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/htmlparser.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/httpclient.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/httpserver.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/json.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/lexbase.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/marshal.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/math.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/md5.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/os.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/osproc.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parsecfg.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parsecsv.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parseopt.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parsesql.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parseurl.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parseutils.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/parsexml.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/pegs.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/redis.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/romans.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/ropes.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/scgi.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/smtp.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/sockets.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/streams.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/strtabs.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/strutils.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/terminal.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/times.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/unidecode/unidecode.dat | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/unidecode/unidecode.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/xmldom.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/xmldomparser.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/xmlparser.nim | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | lib/pure/xmltree.nim | 0 |
53 files changed, 176 insertions, 65 deletions
diff --git a/lib/pure/algorithm.nim b/lib/pure/algorithm.nim index 8b44e69d9..8b44e69d9 100755..100644 --- a/lib/pure/algorithm.nim +++ b/lib/pure/algorithm.nim diff --git a/lib/pure/base64.nim b/lib/pure/base64.nim index 8c4883c11..8c4883c11 100755..100644 --- a/lib/pure/base64.nim +++ b/lib/pure/base64.nim diff --git a/lib/pure/browsers.nim b/lib/pure/browsers.nim index a12f0f7f3..a12f0f7f3 100755..100644 --- a/lib/pure/browsers.nim +++ b/lib/pure/browsers.nim diff --git a/lib/pure/cgi.nim b/lib/pure/cgi.nim index c499abdc0..c499abdc0 100755..100644 --- a/lib/pure/cgi.nim +++ b/lib/pure/cgi.nim diff --git a/lib/pure/collections/intsets.nim b/lib/pure/collections/intsets.nim index 2a8d7eec2..2a8d7eec2 100755..100644 --- a/lib/pure/collections/intsets.nim +++ b/lib/pure/collections/intsets.nim diff --git a/lib/pure/collections/lists.nim b/lib/pure/collections/lists.nim index ad8eca6a9..ad8eca6a9 100755..100644 --- a/lib/pure/collections/lists.nim +++ b/lib/pure/collections/lists.nim diff --git a/lib/pure/collections/queues.nim b/lib/pure/collections/queues.nim index 5481272f0..5481272f0 100755..100644 --- a/lib/pure/collections/queues.nim +++ b/lib/pure/collections/queues.nim diff --git a/lib/pure/collections/sequtils.nim b/lib/pure/collections/sequtils.nim index 298e7f27e..c2d638a8c 100644 --- a/lib/pure/collections/sequtils.nim +++ b/lib/pure/collections/sequtils.nim @@ -117,7 +117,7 @@ proc filter*[T](seq1: seq[T], pred: proc(item: T): bool {.closure.}): seq[T] = ## assert f2 == @["yellow"] accumulateResult(filter(seq1, pred)) -template filterIt*(seq1, pred: expr): expr {.immediate, dirty.} = +template filterIt*(seq1, pred: expr): expr {.immediate.} = ## Returns a new sequence with all the items that fulfilled the predicate. ## ## Unlike the `proc` version, the predicate needs to be an expression using @@ -128,9 +128,12 @@ template filterIt*(seq1, pred: expr): expr {.immediate, dirty.} = ## let ## temperatures = @[-272.15, -2.0, 24.5, 44.31, 99.9, -113.44] ## acceptable = filterIt(temperatures, it < 50 and it > -10) + ## notAcceptable = filterIt(temperatures, it > 50 or it < -10) ## assert acceptable == @[-2.0, 24.5, 44.31] + ## assert notAcceptable == @[-272.15, 99.9, -113.44] var result {.gensym.}: type(seq1) = @[] - for it in items(seq1): + for internalit in items(seq1): + let it {.inject.} = internalit if pred: result.add(it) result @@ -151,64 +154,163 @@ template toSeq*(iter: expr): expr {.immediate.} = for x in iter: add(result, x) result +template foldl*(sequence, operation: expr): expr = + ## Template to fold a sequence from left to right, returning the accumulation. + ## + ## The sequence is required to have at least a single element. Debug versions + ## of your program will assert in this situation but release versions will + ## happily go ahead. If the sequence has a single element it will be returned + ## without applying ``operation``. + ## + ## The ``operation`` parameter should be an expression which uses the + ## variables ``a`` and ``b`` for each step of the fold. Since this is a left + ## fold, for non associative binary operations like substraction think that + ## the sequence of numbers 1, 2 and 3 will be parenthesized as (((1) - 2) - + ## 3). Example: + ## + ## .. code-block:: nimrod + ## let + ## numbers = @[5, 9, 11] + ## addition = foldl(numbers, a + b) + ## substraction = foldl(numbers, a - b) + ## multiplication = foldl(numbers, a * b) + ## words = @["nim", "rod", "is", "cool"] + ## concatenation = foldl(words, a & b) + ## assert addition == 25, "Addition is (((5)+9)+11)" + ## assert substraction == -15, "Substraction is (((5)-9)-11)" + ## assert multiplication == 495, "Multiplication is (((5)*9)*11)" + ## assert concatenation == "nimrodiscool" + assert sequence.len > 0, "Can't fold empty sequences" + var result {.gensym.}: type(sequence[0]) + result = sequence[0] + for i in countup(1, sequence.len - 1): + let + a {.inject.} = result + b {.inject.} = sequence[i] + result = operation + result + +template foldr*(sequence, operation: expr): expr = + ## Template to fold a sequence from right to left, returning the accumulation. + ## + ## The sequence is required to have at least a single element. Debug versions + ## of your program will assert in this situation but release versions will + ## happily go ahead. If the sequence has a single element it will be returned + ## without applying ``operation``. + ## + ## The ``operation`` parameter should be an expression which uses the + ## variables ``a`` and ``b`` for each step of the fold. Since this is a right + ## fold, for non associative binary operations like substraction think that + ## the sequence of numbers 1, 2 and 3 will be parenthesized as (1 - (2 - + ## (3))). Example: + ## + ## .. code-block:: nimrod + ## let + ## numbers = @[5, 9, 11] + ## addition = foldr(numbers, a + b) + ## substraction = foldr(numbers, a - b) + ## multiplication = foldr(numbers, a * b) + ## words = @["nim", "rod", "is", "cool"] + ## concatenation = foldr(words, a & b) + ## assert addition == 25, "Addition is (5+(9+(11)))" + ## assert substraction == 7, "Substraction is (5-(9-(11)))" + ## assert multiplication == 495, "Multiplication is (5*(9*(11)))" + ## assert concatenation == "nimrodiscool" + assert sequence.len > 0, "Can't fold empty sequences" + var result {.gensym.}: type(sequence[0]) + result = sequence[sequence.len - 1] + for i in countdown(sequence.len - 2, 0): + let + a {.inject.} = sequence[i] + b {.inject.} = result + result = operation + result + when isMainModule: import strutils - proc toStr(x: int): string {.procvar.} = $x - # concat test - let - s1 = @[1, 2, 3] - s2 = @[4, 5] - s3 = @[6, 7] - total = concat(s1, s2, s3) - assert total == @[1, 2, 3, 4, 5, 6, 7] - - # duplicates test - let - dup1 = @[1, 1, 3, 4, 2, 2, 8, 1, 4] - dup2 = @["a", "a", "c", "d", "d"] - unique1 = distnct(dup1) - unique2 = distnct(dup2) - assert unique1 == @[1, 3, 4, 2, 8] - assert unique2 == @["a", "c", "d"] - - # zip test - let - short = @[1, 2, 3] - long = @[6, 5, 4, 3, 2, 1] - words = @["one", "two", "three"] - zip1 = zip(short, long) - zip2 = zip(short, words) - assert zip1 == @[(1, 6), (2, 5), (3, 4)] - assert zip2 == @[(1, "one"), (2, "two"), (3, "three")] - assert zip1[2].b == 4 - assert zip2[2].b == "three" - - # filter proc test - let - colors = @["red", "yellow", "black"] - f1 = filter(colors, proc(x: string): bool = x.len < 6) - f2 = filter(colors) do (x: string) -> bool : x.len > 5 - assert f1 == @["red", "black"] - assert f2 == @["yellow"] - - # filter iterator test - let numbers = @[1, 4, 5, 8, 9, 7, 4] - for n in filter(numbers, proc (x: int): bool = x mod 2 == 0): - echo($n) - # echoes 4, 8, 4 in separate lines - - # filterIt test - let - temperatures = @[-272.15, -2.0, 24.5, 44.31, 99.9, -113.44] - acceptable = filterIt(temperatures, it < 50 and it > -10) - assert acceptable == @[-2.0, 24.5, 44.31] - - # toSeq test - let - numeric = @[1, 2, 3, 4, 5, 6, 7, 8, 9] - odd_numbers = toSeq(filter(numeric) do (x: int) -> bool: - if x mod 2 == 1: - result = true) - assert odd_numbers == @[1, 3, 5, 7, 9] + block: # concat test + let + s1 = @[1, 2, 3] + s2 = @[4, 5] + s3 = @[6, 7] + total = concat(s1, s2, s3) + assert total == @[1, 2, 3, 4, 5, 6, 7] + + block: # duplicates test + let + dup1 = @[1, 1, 3, 4, 2, 2, 8, 1, 4] + dup2 = @["a", "a", "c", "d", "d"] + unique1 = distnct(dup1) + unique2 = distnct(dup2) + assert unique1 == @[1, 3, 4, 2, 8] + assert unique2 == @["a", "c", "d"] + + block: # zip test + let + short = @[1, 2, 3] + long = @[6, 5, 4, 3, 2, 1] + words = @["one", "two", "three"] + zip1 = zip(short, long) + zip2 = zip(short, words) + assert zip1 == @[(1, 6), (2, 5), (3, 4)] + assert zip2 == @[(1, "one"), (2, "two"), (3, "three")] + assert zip1[2].b == 4 + assert zip2[2].b == "three" + + block: # filter proc test + let + colors = @["red", "yellow", "black"] + f1 = filter(colors, proc(x: string): bool = x.len < 6) + f2 = filter(colors) do (x: string) -> bool : x.len > 5 + assert f1 == @["red", "black"] + assert f2 == @["yellow"] + + block: # filter iterator test + let numbers = @[1, 4, 5, 8, 9, 7, 4] + for n in filter(numbers, proc (x: int): bool = x mod 2 == 0): + echo($n) + # echoes 4, 8, 4 in separate lines + + block: # filterIt test + let + temperatures = @[-272.15, -2.0, 24.5, 44.31, 99.9, -113.44] + acceptable = filterIt(temperatures, it < 50 and it > -10) + notAcceptable = filterIt(temperatures, it > 50 or it < -10) + assert acceptable == @[-2.0, 24.5, 44.31] + assert notAcceptable == @[-272.15, 99.9, -113.44] + + block: # toSeq test + let + numeric = @[1, 2, 3, 4, 5, 6, 7, 8, 9] + odd_numbers = toSeq(filter(numeric) do (x: int) -> bool: + if x mod 2 == 1: + result = true) + assert odd_numbers == @[1, 3, 5, 7, 9] + + block: # foldl tests + let + numbers = @[5, 9, 11] + addition = foldl(numbers, a + b) + substraction = foldl(numbers, a - b) + multiplication = foldl(numbers, a * b) + words = @["nim", "rod", "is", "cool"] + concatenation = foldl(words, a & b) + assert addition == 25, "Addition is (((5)+9)+11)" + assert substraction == -15, "Substraction is (((5)-9)-11)" + assert multiplication == 495, "Multiplication is (((5)*9)*11)" + assert concatenation == "nimrodiscool" + + block: # foldr tests + let + numbers = @[5, 9, 11] + addition = foldr(numbers, a + b) + substraction = foldr(numbers, a - b) + multiplication = foldr(numbers, a * b) + words = @["nim", "rod", "is", "cool"] + concatenation = foldr(words, a & b) + assert addition == 25, "Addition is (5+(9+(11)))" + assert substraction == 7, "Substraction is (5-(9-(11)))" + assert multiplication == 495, "Multiplication is (5*(9*(11)))" + assert concatenation == "nimrodiscool" echo "Finished doc tests" diff --git a/lib/pure/collections/sets.nim b/lib/pure/collections/sets.nim index 42b77d427..42b77d427 100755..100644 --- a/lib/pure/collections/sets.nim +++ b/lib/pure/collections/sets.nim diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index 4290af08a..02d099c1f 100755..100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -159,8 +159,11 @@ proc del*[A, B](t: var TTable[A, B], key: A) = dec(t.counter) proc initTable*[A, B](initialSize=64): TTable[A, B] = - ## creates a new hash table that is empty. `initialSize` needs to be - ## a power of two. + ## creates a new hash table that is empty. + ## + ## `initialSize` needs to be a power of two. If you need to accept runtime + ## values for this you could use the ``nextPowerOfTwo`` proc from the + ## `math <math.html>`_ module. assert isPowerOfTwo(initialSize) result.counter = 0 newSeq(result.data, initialSize) @@ -290,8 +293,11 @@ proc add*[A, B](t: var TOrderedTable[A, B], key: A, val: B) = AddImpl() proc initOrderedTable*[A, B](initialSize=64): TOrderedTable[A, B] = - ## creates a new ordered hash table that is empty. `initialSize` needs to be - ## a power of two. + ## creates a new ordered hash table that is empty. + ## + ## `initialSize` needs to be a power of two. If you need to accept runtime + ## values for this you could use the ``nextPowerOfTwo`` proc from the + ## `math <math.html>`_ module. assert isPowerOfTwo(initialSize) result.counter = 0 result.first = -1 @@ -437,8 +443,11 @@ proc `[]=`*[A](t: var TCountTable[A], key: A, val: int) = PutImpl() proc initCountTable*[A](initialSize=64): TCountTable[A] = - ## creates a new count table that is empty. `initialSize` needs to be - ## a power of two. + ## creates a new count table that is empty. + ## + ## `initialSize` needs to be a power of two. If you need to accept runtime + ## values for this you could use the ``nextPowerOfTwo`` proc from the + ## `math <math.html>`_ module. assert isPowerOfTwo(initialSize) result.counter = 0 newSeq(result.data, initialSize) diff --git a/lib/pure/colors.nim b/lib/pure/colors.nim index 9f824e5de..9f824e5de 100755..100644 --- a/lib/pure/colors.nim +++ b/lib/pure/colors.nim diff --git a/lib/pure/complex.nim b/lib/pure/complex.nim index df08ace72..df08ace72 100755..100644 --- a/lib/pure/complex.nim +++ b/lib/pure/complex.nim diff --git a/lib/pure/cookies.nim b/lib/pure/cookies.nim index d1cf36a87..d1cf36a87 100755..100644 --- a/lib/pure/cookies.nim +++ b/lib/pure/cookies.nim diff --git a/lib/pure/dynlib.nim b/lib/pure/dynlib.nim index a64b7f138..a64b7f138 100755..100644 --- a/lib/pure/dynlib.nim +++ b/lib/pure/dynlib.nim diff --git a/lib/pure/encodings.nim b/lib/pure/encodings.nim index ce4238409..ce4238409 100755..100644 --- a/lib/pure/encodings.nim +++ b/lib/pure/encodings.nim diff --git a/lib/pure/gentabs.nim b/lib/pure/gentabs.nim index 617473c14..617473c14 100755..100644 --- a/lib/pure/gentabs.nim +++ b/lib/pure/gentabs.nim diff --git a/lib/pure/hashes.nim b/lib/pure/hashes.nim index cf0777ff7..cf0777ff7 100755..100644 --- a/lib/pure/hashes.nim +++ b/lib/pure/hashes.nim diff --git a/lib/pure/htmlgen.nim b/lib/pure/htmlgen.nim index 75af2c892..75af2c892 100755..100644 --- a/lib/pure/htmlgen.nim +++ b/lib/pure/htmlgen.nim diff --git a/lib/pure/htmlparser.nim b/lib/pure/htmlparser.nim index ad952fc41..ad952fc41 100755..100644 --- a/lib/pure/htmlparser.nim +++ b/lib/pure/htmlparser.nim diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim index cc0129b45..cc0129b45 100755..100644 --- a/lib/pure/httpclient.nim +++ b/lib/pure/httpclient.nim diff --git a/lib/pure/httpserver.nim b/lib/pure/httpserver.nim index ce816b7d4..ce816b7d4 100755..100644 --- a/lib/pure/httpserver.nim +++ b/lib/pure/httpserver.nim diff --git a/lib/pure/json.nim b/lib/pure/json.nim index d2516adfb..d2516adfb 100755..100644 --- a/lib/pure/json.nim +++ b/lib/pure/json.nim diff --git a/lib/pure/lexbase.nim b/lib/pure/lexbase.nim index 2756290d8..2756290d8 100755..100644 --- a/lib/pure/lexbase.nim +++ b/lib/pure/lexbase.nim diff --git a/lib/pure/marshal.nim b/lib/pure/marshal.nim index f52b554cc..f52b554cc 100755..100644 --- a/lib/pure/marshal.nim +++ b/lib/pure/marshal.nim diff --git a/lib/pure/math.nim b/lib/pure/math.nim index d65330c4a..d65330c4a 100755..100644 --- a/lib/pure/math.nim +++ b/lib/pure/math.nim diff --git a/lib/pure/md5.nim b/lib/pure/md5.nim index e75f80b4c..e75f80b4c 100755..100644 --- a/lib/pure/md5.nim +++ b/lib/pure/md5.nim diff --git a/lib/pure/os.nim b/lib/pure/os.nim index 408fbd9d4..408fbd9d4 100755..100644 --- a/lib/pure/os.nim +++ b/lib/pure/os.nim diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim index e627e73c8..e627e73c8 100755..100644 --- a/lib/pure/osproc.nim +++ b/lib/pure/osproc.nim diff --git a/lib/pure/parsecfg.nim b/lib/pure/parsecfg.nim index 6a0f2ed49..6a0f2ed49 100755..100644 --- a/lib/pure/parsecfg.nim +++ b/lib/pure/parsecfg.nim diff --git a/lib/pure/parsecsv.nim b/lib/pure/parsecsv.nim index 5970f2090..5970f2090 100755..100644 --- a/lib/pure/parsecsv.nim +++ b/lib/pure/parsecsv.nim diff --git a/lib/pure/parseopt.nim b/lib/pure/parseopt.nim index 6d9d16bc9..6d9d16bc9 100755..100644 --- a/lib/pure/parseopt.nim +++ b/lib/pure/parseopt.nim diff --git a/lib/pure/parsesql.nim b/lib/pure/parsesql.nim index 31951e966..31951e966 100755..100644 --- a/lib/pure/parsesql.nim +++ b/lib/pure/parsesql.nim diff --git a/lib/pure/parseurl.nim b/lib/pure/parseurl.nim index 937f26f6f..937f26f6f 100755..100644 --- a/lib/pure/parseurl.nim +++ b/lib/pure/parseurl.nim diff --git a/lib/pure/parseutils.nim b/lib/pure/parseutils.nim index 989d45f47..989d45f47 100755..100644 --- a/lib/pure/parseutils.nim +++ b/lib/pure/parseutils.nim diff --git a/lib/pure/parsexml.nim b/lib/pure/parsexml.nim index c49986087..c49986087 100755..100644 --- a/lib/pure/parsexml.nim +++ b/lib/pure/parsexml.nim diff --git a/lib/pure/pegs.nim b/lib/pure/pegs.nim index 4e31ffc0c..4e31ffc0c 100755..100644 --- a/lib/pure/pegs.nim +++ b/lib/pure/pegs.nim diff --git a/lib/pure/redis.nim b/lib/pure/redis.nim index bb6ea6768..bb6ea6768 100755..100644 --- a/lib/pure/redis.nim +++ b/lib/pure/redis.nim diff --git a/lib/pure/romans.nim b/lib/pure/romans.nim index dee3226d8..dee3226d8 100755..100644 --- a/lib/pure/romans.nim +++ b/lib/pure/romans.nim diff --git a/lib/pure/ropes.nim b/lib/pure/ropes.nim index 4a6c3f530..4a6c3f530 100755..100644 --- a/lib/pure/ropes.nim +++ b/lib/pure/ropes.nim diff --git a/lib/pure/scgi.nim b/lib/pure/scgi.nim index 0f3b44e00..0f3b44e00 100755..100644 --- a/lib/pure/scgi.nim +++ b/lib/pure/scgi.nim diff --git a/lib/pure/smtp.nim b/lib/pure/smtp.nim index abf268942..abf268942 100755..100644 --- a/lib/pure/smtp.nim +++ b/lib/pure/smtp.nim diff --git a/lib/pure/sockets.nim b/lib/pure/sockets.nim index e70fbd09a..e70fbd09a 100755..100644 --- a/lib/pure/sockets.nim +++ b/lib/pure/sockets.nim diff --git a/lib/pure/streams.nim b/lib/pure/streams.nim index 581db3163..581db3163 100755..100644 --- a/lib/pure/streams.nim +++ b/lib/pure/streams.nim diff --git a/lib/pure/strtabs.nim b/lib/pure/strtabs.nim index 77b463fc0..77b463fc0 100755..100644 --- a/lib/pure/strtabs.nim +++ b/lib/pure/strtabs.nim diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index b5f5a41eb..b5f5a41eb 100755..100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim diff --git a/lib/pure/terminal.nim b/lib/pure/terminal.nim index 3be6088ed..3be6088ed 100755..100644 --- a/lib/pure/terminal.nim +++ b/lib/pure/terminal.nim diff --git a/lib/pure/times.nim b/lib/pure/times.nim index b86c72ed3..b86c72ed3 100755..100644 --- a/lib/pure/times.nim +++ b/lib/pure/times.nim diff --git a/lib/pure/unidecode/unidecode.dat b/lib/pure/unidecode/unidecode.dat index 9dff0a4a9..9dff0a4a9 100755..100644 --- a/lib/pure/unidecode/unidecode.dat +++ b/lib/pure/unidecode/unidecode.dat diff --git a/lib/pure/unidecode/unidecode.nim b/lib/pure/unidecode/unidecode.nim index 1d36d11b5..1d36d11b5 100755..100644 --- a/lib/pure/unidecode/unidecode.nim +++ b/lib/pure/unidecode/unidecode.nim diff --git a/lib/pure/xmldom.nim b/lib/pure/xmldom.nim index 47e94243e..47e94243e 100755..100644 --- a/lib/pure/xmldom.nim +++ b/lib/pure/xmldom.nim diff --git a/lib/pure/xmldomparser.nim b/lib/pure/xmldomparser.nim index fda46bac0..fda46bac0 100755..100644 --- a/lib/pure/xmldomparser.nim +++ b/lib/pure/xmldomparser.nim diff --git a/lib/pure/xmlparser.nim b/lib/pure/xmlparser.nim index 8c5c5f5ab..8c5c5f5ab 100755..100644 --- a/lib/pure/xmlparser.nim +++ b/lib/pure/xmlparser.nim diff --git a/lib/pure/xmltree.nim b/lib/pure/xmltree.nim index 1a1467e8f..1a1467e8f 100755..100644 --- a/lib/pure/xmltree.nim +++ b/lib/pure/xmltree.nim |