95946d2533
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
507 lines
14 KiB
Text
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
|