pkgsrc/lang/nim/PLIST
ryoon 95946d2533 nim: Update to 1.6.0
Changelog:
Nim version 1.6 is now officially released!

A year in the making, 1.6 is the latest stable release and by far the largest
yet. We're proud of what we --- the core team and dedicated volunteers --- have
accomplished with this milestone:

  * 1667 PRs merged (1760 commits)
  * 893 issues closed
  * 15 new stdlib modules
  * new features in more than 40 stdlib modules, including major improvements
    to 10 commonly used modules
  * documentation and minor improvements to 170 modules, including 312 new
    runnable examples
  * 280 new nimble packages

Nim made its first entry in TIOBE index in 2017 at position 129, last year it
entered the top-100, and for 2 months the top-50 (link). We hope this release
will reinforce this trend, building on Nim's core strengths: a practical,
compiled systems programming language offering C++-like performance and
portability, Python-like syntax, Lisp-like flexibility, strong C, C++, JS,
Python interop, and best-in-class metaprogramming.

This release includes improvements in the following areas:

  * new language features (iterable[T], user-defined literals, private imports,
    strict effects, dot-like operators, block arguments with optional
    parameters)
  * new compiler features (nim --eval:cmd, custom nimscript extensions,
    customizable compiler messages)
  * major improvements to --gc:arc and --gc:orc
  * correctness and performance of integer and float parsing and rendering in
    all backends
  * significant improvements in error messages, showing useful context
  * documentation generation logic and documentation, in particular
    runnableExamples now works in more contexts
  * JS, VM and nimscript backend are more consistent with the C backend,
    allowing more modules to work with those backends, including the imports
    from std/prelude; the test suite now standardizes on testing stdlib modules
    on each major backend (C, JS, VM)
  * support for Apple silicon/M1, 32-bit RISC-V, armv8l, CROSSOS, improved
    support for NodeJS backend
  * major improvements to the following modules: system, math, random, json,
    jsonutils, os, typetraits, wrapnils, lists, hashes including performance
    improvements
  * deprecated a number of error prone or redundant features

Why use Nim?

  * One language to rule them all: from shell scripting to web frontend and
    backend, scientific computing, deep learning, blockchain client, gamedev,
    embedded, see also some companies using Nim.
  * Concise, readable and convenient: echo "hello world" is a 1-liner.
  * Small binaries: echo "hello world" generates a 73K binary (or 5K with
    further options), optimized for embedded devices (Go: 2MB, Rust: 377K, C++:
    56K) [1].
  * Fast compile times: a full compiler rebuild takes ~12s (Rust: 15min, gcc:
    30min+, clang: 1hr+, Go: 90s) [2].
  * Native performance: see Web Frameworks Benchmark, ray tracing, primes.
  * No need for makefiles, cmake, configure or other build scripts, thanks to
    compile-time function evaluation (CTFE) and dependency tracking [3].
  * Target any platform with a C compiler: Android and iOS, embedded systems,
    micro-controllers, WASM, Nintendo Switch, Game Boy Advance.
  * Zero-overhead interop lets you reuse code in C, C++ (including templates,
    C++ STL), JS, Objective-C, Python (via nimpy).
  * Built-in documentation generator that understands Nim code and runnable
    examples that stay in sync.

Last but not least, macros let you manipulate/generate code at compile time
instead of relying on code generators, enabling writing DSLs and language
extensions in user code. Typical examples include implementing Python-like
f-strings, optional chaining, command line generators, React-like Single Page
Apps, protobuf serialization and binding generators.

Installing Nim 1.6

We recommend everyone to upgrade to 1.6:

New users

Check out if your package manager already ships version 1.6 or install it as
described here.

Note: earlier this year researchers spotted malware written in Nim programming
language which supposedly led to antivirus vendors falsely tagging all software
written in Nim as a potential threat, including the Nim compiler, nimble (Nim'
s package manager) and so on (core Nim tooling is written entirely in Nim).
This has been an ongoing issue ever since - if you have any issues related to
this, please report the Nim compiler and associated tooling as false detection
to the respective antivirus vendors.

Existing users

If you have installed a previous version of Nim using choosenim, getting Nim
1.6 is as easy as:

choosenim update self
choosenim update stable

If you don't have choosenim, you can follow the same install link as above.

Building from source

git clone https://github.com/nim-lang/Nim
cd Nim
sh build_all.sh

The last command can be re-run after pulling new commits. Note that the
csources repo used was changed to csources_v1, the new setup is designed to be
forward and backward compatible.

Building from a CI setup

We now have bash APIs to (re-)build Nim from source which hide implementation
details, for example: . ci/funs.sh && nimBuildCsourcesIfNeeded. This can be
useful for CI when alternatives (using nightly builds or a Docker image) are
not suitable; in fact all the existing CI pipelines have been refactored to use
this, see #17815.

Contributors to Nim 1.6

Many thanks to our recurring and new contributors. Nim is a community driven
collaborative effort that welcomes all contributions, big or small.

Backward compatibility and preview flags

Starting with this release, we've introduced preview flags of the form
-d:nimPreviewX (e.g. -d:nimPreviewFloatRoundtrip), which allow users to opt-in
to new stdlib/compiler behavior that will likely become the default in the next
or a future release. These staging flags aim to minimize backward compatibility
issues.

We also introduced opt-out flags of the form -d:nimLegacyX, e.g.
-d:nimLegacyCopyFile, for cases where the default was changed to the new
behavior. For a transition period, these flags can be used to get the old
behavior.

Here's the list of these flags introduced in this release, refer to the text
below for explanations:

  * -d:nimLegacyCopyFile
  * -d:nimLegacyJsRound
  * -d:nimLegacyMacrosCollapseSymChoice
  * -d:nimLegacyParseQueryStrict
  * -d:nimLegacyRandomInitRand
  * -d:nimLegacyReprWithNewline
  * -d:nimLegacySigpipeHandler
  * -d:nimLegacyTypeMismatch
  * -d:nimPreviewDotLikeOps
  * -d:nimPreviewFloatRoundtrip
  * -d:nimPreviewHashRef
  * -d:nimPreviewJsonutilsHoleyEnum

Major new features

With so many new features, pinpointing the most salient ones is a subjective
exercise, but here are a select few:

iterable[T]

The iterable[T] type class was added to match called iterators, which solves a
number of long-standing issues related to iterators. Example:

iterator iota(n: int): int =
  for i in 0..<n: yield i

# previously, you'd need `untyped`, which caused other problems such as lack
# of type inference, overloading issues, and MCS.
template sumOld(a: untyped): untyped = # no type inference possible
  var result: typeof(block:(for ai in a: ai))
  for ai in a: result += ai
  result

assert sumOld(iota(3)) == 0 + 1 + 2

# now, you can write:
template sum[T](a: iterable[T]): T =
  # `template sum(a: iterable): auto =` would also be possible
  var result: T
  for ai in a: result += ai
  result

assert sum(iota(3)) == 0 + 1 + 2 # or `iota(3).sum`

In particular iterable arguments can now be used with the method call syntax.
For example:

import std/[sequtils, os]
echo walkFiles("*").toSeq # now works

See PR #17196 for additional details.

Strict effects

The effect system was refined and there is a new .effectsOf annotation that
does explicitly what was previously done implicitly. See the manual for more
details. To write code that is portable with older Nim versions, use this
idiom:

when defined(nimHasEffectsOf):
  {.experimental: "strictEffects".}
else:
  {.pragma: effectsOf.}

proc mysort(s: seq; cmp: proc(a, b: T): int) {.effectsOf: cmp.}

To enable the new effect system, compile with --experimental:strictEffects. See
also #18777 and RFC #408.

Private imports and private field access

A new import syntax import foo {.all.} now allows importing all symbols (public
or private) from foo. This can be useful for testing purposes or for more
flexibility in project organization.

Example:

from system {.all.} as system2 import nil
echo system2.ThisIsSystem # ThisIsSystem is private in `system`
import os {.all.} # weirdTarget is private in `os`
echo weirdTarget # or `os.weirdTarget`

Added a new module std/importutils, and an API privateAccess, which allows
access to private fields for an object type in the current scope.

Example:

import times
from std/importutils import privateAccess
block:
  let t = now()
  # echo t.monthdayZero # Error: undeclared field: 'monthdayZero' for type times.DateTime
  privateAccess(typeof(t)) # enables private access in this scope
  echo t.monthdayZero # ok

See PR #17706 for additional details.

nim --eval:cmd

Added nim --eval:cmd to evaluate a command directly, e.g.: nim --eval:"echo 1".
It defaults to e (nimscript) but can also work with other commands, e.g.:

find . | nim r --eval:'import strutils; for a in stdin.lines: echo a.toUpper'

# use as a calculator:
nim --eval:'echo 3.1 / (1.2+7)'
# explore a module's APIs, including private symbols:
nim --eval:'import os {.all.}; echo weirdTarget'
# use a custom backend:
nim r -b:js --eval:"import std/jsbigints; echo 2'big ** 64'big"

See PR #15687 for more details.

Round-trip float to string

system.addFloat and system.$ now can produce string representations of floating
point numbers that are minimal in size and possess round-trip and correct
rounding guarantees (via the Dragonbox algorithm). This currently has to be
enabled via -d:nimPreviewFloatRoundtrip. It is expected that this behavior
becomes the new default in upcoming versions, as with other nimPreviewX define
flags.

Example:

from math import round
let a = round(9.779999999999999, 2)
assert a == 9.78
echo a # with `-d:nimPreviewFloatRoundtrip`: 9.78, like in python3 (instead of  9.779999999999999)

New std/jsbigints module

Provides arbitrary precision integers for the JS target. See PR #16409.
Example:

import std/jsbigints
assert 2'big ** 65'big == 36893488147419103232'big
echo 0xdeadbeef'big shl 4'big # 59774856944n

New std/sysrand module

Cryptographically secure pseudorandom number generator, allows generating
random numbers from a secure source provided by the operating system. Example:

import std/sysrand
assert urandom(1234) != urandom(1234) # unlikely to fail in practice

See PR #16459.

New module: std/tempfiles

Allows creating temporary files and directories, see PR #17361 and followups.

import std/tempfiles
let tmpPath = genTempPath("prefix", "suffix.log", "/tmp/")
# tmpPath looks like: /tmp/prefixpmW1P2KLsuffix.log

let dir = createTempDir("tmpprefix_", "_end")
# created dir looks like: getTempDir() / "tmpprefix_YEl9VuVj_end"

let (cfile, path) = createTempFile("tmpprefix_", "_end.tmp")
# path looks like: getTempDir() / "tmpprefix_FDCIRZA0_end.tmp"
cfile.write "foo"
cfile.setFilePos 0
assert readAll(cfile) == "foo"
close cfile
assert readFile(path) == "foo"

User-defined literals

Custom numeric literals (e.g. -128'bignum) are now supported. Additionally, the
unary minus in -1 is now part of the integer literal, i.e. it is now parsed as
a single token. This implies that edge cases like -128'i8 finally work
correctly. Example:

func `'big`*(num: cstring): JsBigInt {.importjs: "BigInt(#)".}
assert 0xffffffffffffffff'big == (1'big shl 64'big) - 1'big

Dot-like operators

With -d:nimPreviewDotLikeOps, dot-like operators (operators starting with .,
but not with ..) now have the same precedence as ., so that a.?b.c is now
parsed as (a.?b).c instead of a.?(b.c). A warning is generated when a dot-like
operator is used without -d:nimPreviewDotLikeOps.

An important use case is to enable dynamic fields without affecting the
built-in . operator, e.g. for std/jsffi, std/json, pkg/nimpy. Example:

import std/json
template `.?`(a: JsonNode, b: untyped{ident}): JsonNode =
  a[astToStr(b)]
let j = %*{"a1": {"a2": 10}}
assert j.?a1.?a2.getInt == 10

Block arguments now support optional parameters

This solves a major pain point for routines accepting block parameters, see PR
#18631 for details:

template fn(a = 1, b = 2, body) = discard
fn(1, 2): # already works
  bar
fn(a = 1): # now works
  bar

Likewise with multiple block arguments via do:

template fn(a = 1, b = 2, body1, body2) = discard
fn(a = 1): # now works
  bar1
do:
  bar2

Other features

For full changelog, see here.

Footnotes

Tested on a 2.3 GHz 8-Core Intel Core i9, 2019 macOS 11.5 with 64GB RAM.

  * [1] command used: nim c -d:danger. The binary size can be further reduced
    to 49K with stripping (--passL:-s) and link-time optimization
    (--passC:-flto). Statically linking against musl brings it under 5K - see
    here for more details.
  * [2] commands used:
      + for Nim: nim c --forceBuild compiler/nim
      + for Rust: ./x.py build, details
      + for GCC: see 1 2
      + for Clang: details
      + for Go: ./make.bash
  * [3] a separate nimscript file can be used if needed to execute code at
    compile time before compiling the main program but it's in the same
    language
2021-11-21 16:40:02 +00:00

507 lines
14 KiB
Text

@comment $NetBSD: PLIST,v 1.14 2021/11/21 16:40:02 ryoon Exp $
bin/nim
bin/nim-gdb
bin/nim-gdb.bash
bin/nim_dbg
bin/nimble
bin/nimgrep
bin/nimpretty
bin/nimsuggest
bin/testament
nim/bin/nim
nim/compiler.nimble
nim/compiler/aliases.nim
nim/compiler/ast.nim
nim/compiler/astalgo.nim
nim/compiler/astmsgs.nim
nim/compiler/bitsets.nim
nim/compiler/btrees.nim
nim/compiler/ccgcalls.nim
nim/compiler/ccgexprs.nim
nim/compiler/ccgliterals.nim
nim/compiler/ccgmerge_unused.nim
nim/compiler/ccgreset.nim
nim/compiler/ccgstmts.nim
nim/compiler/ccgthreadvars.nim
nim/compiler/ccgtrav.nim
nim/compiler/ccgtypes.nim
nim/compiler/ccgutils.nim
nim/compiler/cgen.nim
nim/compiler/cgendata.nim
nim/compiler/cgmeth.nim
nim/compiler/closureiters.nim
nim/compiler/cmdlinehelper.nim
nim/compiler/commands.nim
nim/compiler/concepts.nim
nim/compiler/condsyms.nim
nim/compiler/debuginfo.nim
nim/compiler/debugutils.nim
nim/compiler/depends.nim
nim/compiler/dfa.nim
nim/compiler/docgen.nim
nim/compiler/docgen2.nim
nim/compiler/enumtostr.nim
nim/compiler/errorhandling.nim
nim/compiler/evalffi.nim
nim/compiler/evaltempl.nim
nim/compiler/extccomp.nim
nim/compiler/filter_tmpl.nim
nim/compiler/filters.nim
nim/compiler/gorgeimpl.nim
nim/compiler/guards.nim
nim/compiler/hlo.nim
nim/compiler/ic/bitabs.nim
nim/compiler/ic/cbackend.nim
nim/compiler/ic/dce.nim
nim/compiler/ic/design.rst
nim/compiler/ic/ic.nim
nim/compiler/ic/integrity.nim
nim/compiler/ic/navigator.nim
nim/compiler/ic/packed_ast.nim
nim/compiler/ic/replayer.nim
nim/compiler/ic/rodfiles.nim
nim/compiler/idents.nim
nim/compiler/importer.nim
nim/compiler/index.nim
nim/compiler/injectdestructors.nim
nim/compiler/installer.ini
nim/compiler/int128.nim
nim/compiler/isolation_check.nim
nim/compiler/jsgen.nim
nim/compiler/jstypes.nim
nim/compiler/lambdalifting.nim
nim/compiler/layouter.nim
nim/compiler/lexer.nim
nim/compiler/liftdestructors.nim
nim/compiler/liftlocals.nim
nim/compiler/lineinfos.nim
nim/compiler/linter.nim
nim/compiler/llstream.nim
nim/compiler/lookups.nim
nim/compiler/lowerings.nim
nim/compiler/macrocacheimpl.nim
nim/compiler/magicsys.nim
nim/compiler/main.nim
nim/compiler/mapping.txt
nim/compiler/modulegraphs.nim
nim/compiler/modulepaths.nim
nim/compiler/modules.nim
nim/compiler/msgs.nim
nim/compiler/ndi.nim
nim/compiler/nilcheck.nim
nim/compiler/nim.cfg
nim/compiler/nim.nim
nim/compiler/nimblecmd.nim
nim/compiler/nimconf.nim
nim/compiler/nimeval.nim
nim/compiler/nimfix/nimfix.nim
nim/compiler/nimfix/nimfix.nim.cfg
nim/compiler/nimfix/prettybase.nim
nim/compiler/nimlexbase.nim
nim/compiler/nimpaths.nim
nim/compiler/nimsets.nim
nim/compiler/nodejs.nim
nim/compiler/nversion.nim
nim/compiler/optimizer.nim
nim/compiler/options.nim
nim/compiler/packagehandling.nim
nim/compiler/parampatterns.nim
nim/compiler/parser.nim
nim/compiler/passaux.nim
nim/compiler/passes.nim
nim/compiler/pathutils.nim
nim/compiler/patterns.nim
nim/compiler/platform.nim
nim/compiler/plugins/active.nim
nim/compiler/plugins/itersgen.nim
nim/compiler/plugins/locals.nim
nim/compiler/pluginsupport.nim
nim/compiler/pragmas.nim
nim/compiler/prefixmatches.nim
nim/compiler/procfind.nim
nim/compiler/readme.md
nim/compiler/renderer.nim
nim/compiler/renderverbatim.nim
nim/compiler/reorder.nim
nim/compiler/rodutils.nim
nim/compiler/ropes.nim
nim/compiler/saturate.nim
nim/compiler/scriptconfig.nim
nim/compiler/sem.nim
nim/compiler/semcall.nim
nim/compiler/semdata.nim
nim/compiler/semexprs.nim
nim/compiler/semfields.nim
nim/compiler/semfold.nim
nim/compiler/semgnrc.nim
nim/compiler/seminst.nim
nim/compiler/semmacrosanity.nim
nim/compiler/semmagic.nim
nim/compiler/semobjconstr.nim
nim/compiler/semparallel.nim
nim/compiler/sempass2.nim
nim/compiler/semstmts.nim
nim/compiler/semtempl.nim
nim/compiler/semtypes.nim
nim/compiler/semtypinst.nim
nim/compiler/sighashes.nim
nim/compiler/sigmatch.nim
nim/compiler/sinkparameter_inference.nim
nim/compiler/sizealignoffsetimpl.nim
nim/compiler/sourcemap.nim
nim/compiler/spawn.nim
nim/compiler/strutils2.nim
nim/compiler/suggest.nim
nim/compiler/syntaxes.nim
nim/compiler/tccgen.nim
nim/compiler/transf.nim
nim/compiler/trees.nim
nim/compiler/treetab.nim
nim/compiler/typeallowed.nim
nim/compiler/types.nim
nim/compiler/typesrenderer.nim
nim/compiler/varpartitions.nim
nim/compiler/vm.nim
nim/compiler/vmconv.nim
nim/compiler/vmdef.nim
nim/compiler/vmdeps.nim
nim/compiler/vmgen.nim
nim/compiler/vmhooks.nim
nim/compiler/vmmarshal.nim
nim/compiler/vmops.nim
nim/compiler/vmprofiler.nim
nim/compiler/wordrecg.nim
nim/config/config.nims
nim/config/nim.cfg
nim/config/nimdoc.cfg
nim/config/nimdoc.tex.cfg
nim/config/rename.rules.cfg
nim/doc/advopt.txt
nim/doc/basicopt.txt
nim/doc/nimdoc.css
nim/lib/arch/x86/amd64.S
nim/lib/arch/x86/i386.S
nim/lib/core/hotcodereloading.nim
nim/lib/core/locks.nim
nim/lib/core/macrocache.nim
nim/lib/core/macros.nim
nim/lib/core/rlocks.nim
nim/lib/core/typeinfo.nim
nim/lib/cycle.h
nim/lib/deprecated/pure/LockFreeHash.nim
nim/lib/deprecated/pure/events.nim
nim/lib/deprecated/pure/ospaths.nim
nim/lib/deprecated/pure/parseopt2.nim
nim/lib/deprecated/pure/securehash.nim
nim/lib/deprecated/pure/sharedstrings.nim
nim/lib/deps.txt
nim/lib/experimental/diff.nim
nim/lib/genode/alloc.nim
nim/lib/genode/env.nim
nim/lib/genode_cpp/syslocks.h
nim/lib/genode_cpp/threads.h
nim/lib/impure/db_mysql.nim
nim/lib/impure/db_odbc.nim
nim/lib/impure/db_postgres.nim
nim/lib/impure/db_sqlite.nim
nim/lib/impure/nre.nim
nim/lib/impure/nre/private/util.nim
nim/lib/impure/rdstdin.nim
nim/lib/impure/re.nim
nim/lib/js/asyncjs.nim
nim/lib/js/dom.nim
nim/lib/js/dom_extensions.nim
nim/lib/js/jsconsole.nim
nim/lib/js/jscore.nim
nim/lib/js/jsffi.nim
nim/lib/js/jsre.nim
nim/lib/nimbase.h
nim/lib/nimhcr.nim
nim/lib/nimhcr.nim.cfg
nim/lib/nimrtl.nim
nim/lib/nimrtl.nim.cfg
nim/lib/packages/docutils/docutils.nimble.old
nim/lib/packages/docutils/highlite.nim
nim/lib/packages/docutils/rst.nim
nim/lib/packages/docutils/rstast.nim
nim/lib/packages/docutils/rstgen.nim
nim/lib/posix/epoll.nim
nim/lib/posix/inotify.nim
nim/lib/posix/kqueue.nim
nim/lib/posix/linux.nim
nim/lib/posix/posix.nim
nim/lib/posix/posix_freertos_consts.nim
nim/lib/posix/posix_haiku.nim
nim/lib/posix/posix_linux_amd64.nim
nim/lib/posix/posix_linux_amd64_consts.nim
nim/lib/posix/posix_macos_amd64.nim
nim/lib/posix/posix_nintendoswitch.nim
nim/lib/posix/posix_nintendoswitch_consts.nim
nim/lib/posix/posix_openbsd_amd64.nim
nim/lib/posix/posix_other.nim
nim/lib/posix/posix_other_consts.nim
nim/lib/posix/posix_utils.nim
nim/lib/posix/termios.nim
nim/lib/pure/algorithm.nim
nim/lib/pure/async.nim
nim/lib/pure/asyncdispatch.nim
nim/lib/pure/asyncdispatch.nim.cfg
nim/lib/pure/asyncfile.nim
nim/lib/pure/asyncftpclient.nim
nim/lib/pure/asyncfutures.nim
nim/lib/pure/asynchttpserver.nim
nim/lib/pure/asyncmacro.nim
nim/lib/pure/asyncnet.nim
nim/lib/pure/asyncstreams.nim
nim/lib/pure/base64.nim
nim/lib/pure/bitops.nim
nim/lib/pure/browsers.nim
nim/lib/pure/cgi.nim
nim/lib/pure/collections/chains.nim
nim/lib/pure/collections/critbits.nim
nim/lib/pure/collections/deques.nim
nim/lib/pure/collections/hashcommon.nim
nim/lib/pure/collections/heapqueue.nim
nim/lib/pure/collections/intsets.nim
nim/lib/pure/collections/lists.nim
nim/lib/pure/collections/rtarrays.nim
nim/lib/pure/collections/sequtils.nim
nim/lib/pure/collections/setimpl.nim
nim/lib/pure/collections/sets.nim
nim/lib/pure/collections/sharedlist.nim
nim/lib/pure/collections/sharedtables.nim
nim/lib/pure/collections/tableimpl.nim
nim/lib/pure/collections/tables.nim
nim/lib/pure/colors.nim
nim/lib/pure/complex.nim
nim/lib/pure/concurrency/atomics.nim
nim/lib/pure/concurrency/cpuinfo.nim
nim/lib/pure/concurrency/cpuload.nim
nim/lib/pure/concurrency/threadpool.nim
nim/lib/pure/concurrency/threadpool.nim.cfg
nim/lib/pure/cookies.nim
nim/lib/pure/coro.nim
nim/lib/pure/coro.nimcfg
nim/lib/pure/cstrutils.nim
nim/lib/pure/db_common.nim
nim/lib/pure/distros.nim
nim/lib/pure/dynlib.nim
nim/lib/pure/encodings.nim
nim/lib/pure/endians.nim
nim/lib/pure/fenv.nim
nim/lib/pure/future.nim
nim/lib/pure/hashes.nim
nim/lib/pure/htmlgen.nim
nim/lib/pure/htmlparser.nim
nim/lib/pure/httpclient.nim
nim/lib/pure/httpcore.nim
nim/lib/pure/includes/osenv.nim
nim/lib/pure/includes/oserr.nim
nim/lib/pure/includes/osseps.nim
nim/lib/pure/includes/unicode_ranges.nim
nim/lib/pure/ioselects/ioselectors_epoll.nim
nim/lib/pure/ioselects/ioselectors_kqueue.nim
nim/lib/pure/ioselects/ioselectors_poll.nim
nim/lib/pure/ioselects/ioselectors_select.nim
nim/lib/pure/json.nim
nim/lib/pure/lenientops.nim
nim/lib/pure/lexbase.nim
nim/lib/pure/logging.nim
nim/lib/pure/marshal.nim
nim/lib/pure/math.nim
nim/lib/pure/md5.nim
nim/lib/pure/memfiles.nim
nim/lib/pure/mersenne.nim
nim/lib/pure/mimetypes.nim
nim/lib/pure/nativesockets.nim
nim/lib/pure/net.nim
nim/lib/pure/nimprof.nim
nim/lib/pure/nimprof.nim.cfg
nim/lib/pure/nimtracker.nim
nim/lib/pure/oids.nim
nim/lib/pure/options.nim
nim/lib/pure/os.nim
nim/lib/pure/osproc.nim
nim/lib/pure/oswalkdir.nim
nim/lib/pure/parsecfg.nim
nim/lib/pure/parsecsv.nim
nim/lib/pure/parsejson.nim
nim/lib/pure/parseopt.nim
nim/lib/pure/parsesql.nim
nim/lib/pure/parseutils.nim
nim/lib/pure/parsexml.nim
nim/lib/pure/pathnorm.nim
nim/lib/pure/pegs.nim
nim/lib/pure/prelude.nim
nim/lib/pure/punycode.nim
nim/lib/pure/random.nim
nim/lib/pure/rationals.nim
nim/lib/pure/reservedmem.nim
nim/lib/pure/ropes.nim
nim/lib/pure/segfaults.nim
nim/lib/pure/selectors.nim
nim/lib/pure/smtp.nim
nim/lib/pure/smtp.nim.cfg
nim/lib/pure/ssl_certs.nim
nim/lib/pure/ssl_config.nim
nim/lib/pure/stats.nim
nim/lib/pure/streams.nim
nim/lib/pure/streamwrapper.nim
nim/lib/pure/strformat.nim
nim/lib/pure/strmisc.nim
nim/lib/pure/strscans.nim
nim/lib/pure/strtabs.nim
nim/lib/pure/strutils.nim
nim/lib/pure/sugar.nim
nim/lib/pure/terminal.nim
nim/lib/pure/times.nim
nim/lib/pure/typetraits.nim
nim/lib/pure/unicode.nim
nim/lib/pure/unidecode/gen.py
nim/lib/pure/unidecode/unidecode.dat
nim/lib/pure/unidecode/unidecode.nim
nim/lib/pure/unittest.nim
nim/lib/pure/uri.nim
nim/lib/pure/volatile.nim
nim/lib/pure/xmlparser.nim
nim/lib/pure/xmltree.nim
nim/lib/std/compilesettings.nim
nim/lib/std/decls.nim
nim/lib/std/editdistance.nim
nim/lib/std/effecttraits.nim
nim/lib/std/enumerate.nim
nim/lib/std/enumutils.nim
nim/lib/std/exitprocs.nim
nim/lib/std/genasts.nim
nim/lib/std/importutils.nim
nim/lib/std/isolation.nim
nim/lib/std/jsbigints.nim
nim/lib/std/jsfetch.nim
nim/lib/std/jsformdata.nim
nim/lib/std/jsheaders.nim
nim/lib/std/jsonutils.nim
nim/lib/std/logic.nim
nim/lib/std/monotimes.nim
nim/lib/std/packedsets.nim
nim/lib/std/private/asciitables.nim
nim/lib/std/private/bitops_utils.nim
nim/lib/std/private/dbutils.nim
nim/lib/std/private/decode_helpers.nim
nim/lib/std/private/digitsutils.nim
nim/lib/std/private/gitutils.nim
nim/lib/std/private/globs.nim
nim/lib/std/private/jsutils.nim
nim/lib/std/private/miscdollars.nim
nim/lib/std/private/since.nim
nim/lib/std/private/strimpl.nim
nim/lib/std/private/underscored_calls.nim
nim/lib/std/private/win_setenv.nim
nim/lib/std/setutils.nim
nim/lib/std/sha1.nim
nim/lib/std/socketstreams.nim
nim/lib/std/stackframes.nim
nim/lib/std/strbasics.nim
nim/lib/std/sums.nim
nim/lib/std/sysrand.nim
nim/lib/std/tasks.nim
nim/lib/std/tempfiles.nim
nim/lib/std/time_t.nim
nim/lib/std/varints.nim
nim/lib/std/vmutils.nim
nim/lib/std/with.nim
nim/lib/std/wordwrap.nim
nim/lib/std/wrapnils.nim
nim/lib/stdlib.nimble
nim/lib/system.nim
nim/lib/system/alloc.nim
nim/lib/system/ansi_c.nim
nim/lib/system/arc.nim
nim/lib/system/arithm.nim
nim/lib/system/arithmetics.nim
nim/lib/system/assertions.nim
nim/lib/system/assign.nim
nim/lib/system/atomics.nim
nim/lib/system/avltree.nim
nim/lib/system/basic_types.nim
nim/lib/system/bitmasks.nim
nim/lib/system/cellseqs_v1.nim
nim/lib/system/cellseqs_v2.nim
nim/lib/system/cellsets.nim
nim/lib/system/cgprocs.nim
nim/lib/system/channels_builtin.nim
nim/lib/system/chcks.nim
nim/lib/system/comparisons.nim
nim/lib/system/coro_detection.nim
nim/lib/system/countbits_impl.nim
nim/lib/system/cyclebreaker.nim
nim/lib/system/deepcopy.nim
nim/lib/system/dollars.nim
nim/lib/system/dragonbox.nim
nim/lib/system/dyncalls.nim
nim/lib/system/embedded.nim
nim/lib/system/exceptions.nim
nim/lib/system/excpt.nim
nim/lib/system/fatal.nim
nim/lib/system/formatfloat.nim
nim/lib/system/gc.nim
nim/lib/system/gc2.nim
nim/lib/system/gc_common.nim
nim/lib/system/gc_hooks.nim
nim/lib/system/gc_interface.nim
nim/lib/system/gc_ms.nim
nim/lib/system/gc_regions.nim
nim/lib/system/hti.nim
nim/lib/system/inclrtl.nim
nim/lib/system/indexerrors.nim
nim/lib/system/integerops.nim
nim/lib/system/io.nim
nim/lib/system/iterators.nim
nim/lib/system/iterators_1.nim
nim/lib/system/jssys.nim
nim/lib/system/memalloc.nim
nim/lib/system/memory.nim
nim/lib/system/memtracker.nim
nim/lib/system/mm/boehm.nim
nim/lib/system/mm/go.nim
nim/lib/system/mm/malloc.nim
nim/lib/system/mm/none.nim
nim/lib/system/mmdisp.nim
nim/lib/system/nimscript.nim
nim/lib/system/orc.nim
nim/lib/system/osalloc.nim
nim/lib/system/platforms.nim
nim/lib/system/profiler.nim
nim/lib/system/repr.nim
nim/lib/system/repr_impl.nim
nim/lib/system/repr_v2.nim
nim/lib/system/reprjs.nim
nim/lib/system/schubfach.nim
nim/lib/system/seqs_v2.nim
nim/lib/system/seqs_v2_reimpl.nim
nim/lib/system/setops.nim
nim/lib/system/sets.nim
nim/lib/system/stacktraces.nim
nim/lib/system/strmantle.nim
nim/lib/system/strs_v2.nim
nim/lib/system/syslocks.nim
nim/lib/system/sysspawn.nim
nim/lib/system/sysstr.nim
nim/lib/system/threadlocalstorage.nim
nim/lib/system/threads.nim
nim/lib/system/timers.nim
nim/lib/system/widestrs.nim
nim/lib/system_overview.rst
nim/lib/windows/registry.nim
nim/lib/windows/winlean.nim
nim/lib/wrappers/linenoise/LICENSE.txt
nim/lib/wrappers/linenoise/README.markdown
nim/lib/wrappers/linenoise/linenoise.c
nim/lib/wrappers/linenoise/linenoise.h
nim/lib/wrappers/linenoise/linenoise.nim
nim/lib/wrappers/mysql.nim
nim/lib/wrappers/odbcsql.nim
nim/lib/wrappers/openssl.nim
nim/lib/wrappers/pcre.nim
nim/lib/wrappers/postgres.nim
nim/lib/wrappers/sqlite3.nim
nim/lib/wrappers/tinyc.nim