diff options
Diffstat (limited to 'tests/niminaction/Chapter6/WikipediaStats')
7 files changed, 40 insertions, 16 deletions
diff --git a/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim b/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim index 478f533d9..913cd77db 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim @@ -1,3 +1,7 @@ +discard """ +action: compile +""" + # See this page for info about the format https://wikitech.wikimedia.org/wiki/Analytics/Data/Pagecounts-all-sites import tables, parseutils, strutils, threadpool @@ -63,9 +67,9 @@ proc readChunks(filename: string, chunksize = 1000000): Stats = # Find where the last line ends chunkLen.dec - responses.add(spawn parse(buffer[0 .. <chunkLen])) + responses.add(spawn parse(buffer[0 ..< chunkLen])) oldBufferLen = readSize - chunkLen - buffer[0 .. <oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] + buffer[0 ..< oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] for resp in responses: let statistic = ^resp @@ -75,5 +79,5 @@ proc readChunks(filename: string, chunksize = 1000000): Stats = file.close() -when isMainModule: +when true: echo readChunks(filename) diff --git a/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim b/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim index 8df3b6aeb..102313de9 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim @@ -1,3 +1,7 @@ +discard """ +action: compile +""" + # See this page for info about the format https://wikitech.wikimedia.org/wiki/Analytics/Data/Pagecounts-all-sites import tables, parseutils, strutils, threadpool, re @@ -47,9 +51,9 @@ proc readChunks(filename: string, chunksize = 1000000): Stats = # Find where the last line ends chunkLen.dec - responses.add(spawn parse(buffer[0 .. <chunkLen])) + responses.add(spawn parse(buffer[0 ..< chunkLen])) oldBufferLen = readSize - chunkLen - buffer[0 .. <oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] + buffer[0 ..< oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] echo("Spawns: ", responses.len) for resp in responses: @@ -60,5 +64,5 @@ proc readChunks(filename: string, chunksize = 1000000): Stats = file.close() -when isMainModule: +when true: echo readChunks(filename) diff --git a/tests/niminaction/Chapter6/WikipediaStats/naive.nim b/tests/niminaction/Chapter6/WikipediaStats/naive.nim index ed4fba8e2..687177f74 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/naive.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/naive.nim @@ -1,3 +1,7 @@ +discard """ +action: compile +""" + # See this page for info about the format https://wikitech.wikimedia.org/wiki/Analytics/Data/Pagecounts-all-sites import tables, parseutils, strutils @@ -25,5 +29,5 @@ proc parse(filename: string): tuple[projectName, pageTitle: string, file.close() -when isMainModule: +when true: echo parse(filename) diff --git a/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim b/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim index 7181145e9..379ec7364 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim @@ -1,3 +1,7 @@ +discard """ +action: compile +""" + import os, parseutils, threadpool, strutils type @@ -54,9 +58,9 @@ proc readPageCounts(filename: string, chunkSize = 1_000_000) = while chunkLen >= 0 and buffer[chunkLen - 1] notin NewLines: chunkLen.dec - responses.add(spawn parseChunk(buffer[0 .. <chunkLen])) + responses.add(spawn parseChunk(buffer[0 ..< chunkLen])) oldBufferLen = readSize - chunkLen - buffer[0 .. <oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] + buffer[0 ..< oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] var mostPopular = newStats() for resp in responses: @@ -66,7 +70,7 @@ proc readPageCounts(filename: string, chunkSize = 1_000_000) = echo("Most popular is: ", mostPopular) -when isMainModule: +when true: const file = "pagecounts-20160101-050000" let filename = getCurrentDir() / file - readPageCounts(filename) \ No newline at end of file + readPageCounts(filename) diff --git a/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim b/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim index c62b2f93e..f4b072204 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim @@ -1,13 +1,17 @@ +discard """ +action: compile +""" + import threadpool var counter = 0 proc increment(x: int) = - for i in 0 .. <x: + for i in 0 ..< x: let value = counter + 1 counter = value spawn increment(10_000) spawn increment(10_000) sync() -echo(counter) \ No newline at end of file +echo(counter) diff --git a/tests/niminaction/Chapter6/WikipediaStats/sequential_counts.nim b/tests/niminaction/Chapter6/WikipediaStats/sequential_counts.nim index 25ad7d5f4..f4bae3df5 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/sequential_counts.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/sequential_counts.nim @@ -1,3 +1,7 @@ +discard """ +action: compile +""" + import os, parseutils proc parse(line: string, domainCode, pageTitle: var string, @@ -28,7 +32,7 @@ proc readPageCounts(filename: string) = echo("Most popular is: ", mostPopular) -when isMainModule: +when true: const file = "pagecounts-20160101-050000" let filename = getCurrentDir() / file - readPageCounts(filename) \ No newline at end of file + readPageCounts(filename) diff --git a/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim b/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim index 502ea61a9..7bdde8397 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim @@ -10,7 +10,7 @@ initLock(counterLock) var counter {.guard: counterLock.} = 0 proc increment(x: int) = - for i in 0 .. <x: + for i in 0 ..< x: let value = counter + 1 counter = value |