| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* {.deprecated: [existsFile: fileExists].}
* s/existsFile/fileExists/ except under deps
* workaround pending #14819
* fix test
|
|
|
|
|
|
|
|
|
| |
instead of 34m (#14851)
* CI openbsd: 2x batching via NIM_TESTAMENT_BATCH
* auto-generate .builds/openbsd_x.yml to avoid code duplication
* 3x batching
|
|
|
|
|
| |
* add riscv as riscv64
* add all platforms supported by FreeBSD
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* koch: add --localdocs to allow building only local docs
This flag also make koch doc use the passed arguments when building
the offline docs.
This is useful when generating nightlies as we would want to use
--doccmd:skip and also skipping a pass of docgen speed things up
drastically (for non-native targets).
This flag superseded the undocumented --docslocal.
* kochdocs: filter google analytics code from the arg list instead
This commit introduce a small PEG expression to filter out the google
analytics code before building local docs when --localdocs is not
specified. This lets us keep any arguments unrelated to google analytics
when building local docs, useful for use with --doccmd:skip
|
| |
|
| |
|
|
|
|
|
|
|
| |
* update to the latest Jester
* remove deprecated procs from some stdlib modules
* 'criterion' is not maintained anymore and relies on obsolete stuff
|
| |
|
|
|
|
|
| |
Added log folding for:
- Github Actions
- Azure Pipelines
|
|
|
|
|
| |
* add arm support to openbsd
* use clang on openbsd
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the `net` module use the blanket "ALL" as the default cipher
list. This list may contain security ciphers that are weak and/or outdated
according to the current standard.
This commit introduces a new module `ssl_config` that contains the
latest OpenSSL configurations as recommended by Mozilla OpSec, and
make the `net` module use the cipher list targeting `intermediate`
compatibility level as the default.
|
|
|
| |
* fix a bug that prevented nim doc compiler/nim on windows
|
|
|
|
|
|
|
|
|
|
|
| |
various other fixes (#14501)
* update doc CI filter to include the files mostly likely to require doc rebuild
* remove code duplication in ./config/nimdoc.cfg; show link to compiler docs, various fixes
* walkDirRecFilter, factor nativeToUnixPath workaround
* glob for getRst2html
* docslocal: 40s to build all docs
* revert code dedup in github actions which did not work alas...
* fixups
|
|
|
| |
* enable compiler docs (with its own index)
|
|
|
| |
This reverts commit b749d58ea1d77aab0ab758a17140ebc57e32f8c8.
|
| |
|
|
|
|
|
|
|
|
|
| |
fixes with nim doc (#14324)
* refs #6583 fix nim doc output
* changelog
* change default for outDir when unspecified
* cleanups
* --project implies --index
|
|
|
|
|
|
|
| |
This pragma did nothing.
Ref:
- https://github.com/nim-lang/Nim/issues/2172#issuecomment-383276469
- https://github.com/nim-lang/Nim/issues/12975
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add posix_memalign()
* Add linux-specific open() flags
O_TMPFILE: since Linux 3.11
O_PATH: since Linux 2.6.39
O_NOATIME: since Linux 2.6.8
O_DIRECT: since Linux 2.4.10
* Fix Stat type
* Fix POSIX AF_INET* const generation
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Path with spaces should be added as is, quoting them makes utilities
treat the quotes as part of the path. This makes `nim` unable to be used
from the command line even if it appears to be added to user's Path
environment variable.
Even more confusing, Windows 10's PATH editor shows the path without any
quotes, you only see them when you use "Edit text". Took me a good 15
minutes to figure out why couldn't I run `nim` despite it being in Path.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* io: make file descriptors non-inheritable by default
This prevents file descriptors/handles leakage to child processes
that might cause issues like running out of file descriptors, or potential
security issues like leaking a file descriptor to a restricted file.
While this breaks backward compatibility, I'm rather certain that not
many programs (if any) actually make use of this implementation detail.
A new API `setInheritable` is provided for the few that actually want to
use this functionality.
* io: disable inheritance at file creation time for supported platforms
Some platforms provide extension to fopen-family of functions to allow
for disabling descriptor inheritance atomically during File creation.
This guards against possible leaks when a child process is spawned
before we managed to disable the file descriptor inheritance
(ie. in a multi-threaded program).
* net, nativesockets: make sockets non inheritable by default
With this commit, sockets will no longer leak to child processes when
you don't want it to. Should solves a lot of "address in use" that might
occur when your server has just restarted.
All APIs that create sockets in these modules now expose a `inheritable`
flag that allow users to toggle inheritance for the resulting sockets.
An implementation of `setInheritance()` is also provided for SocketHandle.
While atomically disabling inheritance at creation time is supported on
Windows, it's only implemented by native winsock2, which is too much for
now. This support can be implemented in a future patch.
* posix: add F_DUPFD_CLOEXEC
This command duplicates file descriptor with close-on-exec flag set.
Defined in POSIX.1-2008.
* ioselectors_kqueue: don't leak file descriptors
File descriptors internally used by ioselectors on BSD/OSX are now
shielded from leakage.
* posix: add O_CLOEXEC
This flag allows file descriptors to be open() with close-on-exec flag
set atomically.
This flag is specified in POSIX.1-2008
* tfdleak: test for selectors leakage
Also simplified the test by using handle-type agnostic APIs to test for
validity.
* ioselectors_epoll: mark all fd created close-on-exec
File descriptors from ioselectors should no longer leaks on Linux.
* tfdleak: don't check for selector leakage on Windows
The getFd proc for ioselectors_select returns a hardcoded -1
* io: add NoInheritFlag at compile time
* io: add support for ioctl-based close-on-exec
This allows for the flag to be set/unset in one syscall. While the
performance gains might be negliable, we have one less failure point
to deal with.
* tfdleak: add a test for setInheritable
* stdlib: add nimInheritHandles to restore old behaviors
* memfiles: make file handle not inheritable by default for posix
* io: setInheritable now operates on OS file handle
On Windows, the native handle is the only thing that's inheritable, thus
we can assume that users of this function will already have the handle
available to them. This also allows users to pass down file descriptors
from memfiles on Windows with ease, should that be desired.
With this, nativesockets.setInheritable can be made much simpler.
* changelog: clarify
* nativesockets: document setInheritable return value
* posix_utils: atomically disable fd inheritance for mkstemp
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* posix: add full Haiku support
This commit provides a posix_haiku derived from posix_other, with types
following Haiku's definition. This fixes cases where the compiler
generates type check for the wrong types (ie. checks where generated for
an int-derived type but it's actually implemented as an uint instead).
* tools/kochdocs: welcome posix_haiku to the blacklist
|
|
|
|
|
|
|
| |
(eg tinyc) from koch / library code (#13850)
* remove tinyc
* installDeps
* update tinyc paths
|
|
|
|
|
| |
* Add arm and arm64 for FreeBSD
* Add arm64 with aarch64 and reorder to avoid conflict with arm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* code cleanups and feature additions
* added basic test and koch/CI integration
* make it build on Unix
* DrNim: now buildable on Unix, only takes 10 minutes, enjoy
* added basic documentation for DrNim which can also be seen as the RFC we're following
* drnim: change the build setup so that drnim.exe ends up in bin/
* makes simple floating point ranges work
* added basic float range check
* drnim: teach Z3 about Nim's range types plus code refactoring
* drnim: make unsigned numbers work
* added and fixed index checking under setLen
* first implementation of .ensures, .invariant and .assume (.requires still missing and so is proc type compatibility checking
* drnim: .requires checking implemented
* drnim: implemented .ensures properly
* more impressive test involving min()
* drnim: check for proc type compatibility and base method compatibility wrt .requires and .ensures
* testament: support for 'pattern <directory>
* koch: uses new <directory> feature of testament
* drnim: added tiny musings about 'old'
* Make testament work with old SSL versions
* koch: add support for 'koch drnim -d:release'
* drnim: preparations for the param.old notation
|
| |
|
|
|
|
|
|
|
|
| |
other fixes (#13550)
* fix #13218: avoid some irrelevant warnings for nim doc,rst2html
* suppress warnRedefinitionOfLabel for nim doc
* lots of fixes for UnusedImport warnings
|
|
|
|
|
| |
* `koch boot --hint:cc:off` now works
* `koch --nim:pathto/nim boot` now works; code cleanup
|
|
|
|
| |
Before the files that should have been ignored weren't ignored
because of different dir separator ('\' vs '/') on Windows.
|
| |
|
| |
|
|
|
|
|
|
| |
* only enable linenoise for -d:nimUseLinenoise
* fixup
|
| |
|
|
|
|
|
|
| |
* fix nightlies linenoise regression
* fix other installers
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* fix deprecation; fix indentation
* git clone: use -q
* fix Warning: pragma before generic parameter list is deprecated; fix typo
* bugfix: sysTypeFromName("float64") was never cached
|
|
|
|
|
|
|
|
|
|
| |
* fix #13150 `nim doc --project` works with duplicate names and with imports below main project file
* add to help; fixup after #13212 isRelativeTo got merged
* fix test tests/compilerapi/tcompilerapi.nim
* remove nimblePkg field; compute on the fly instead
* kochdocs: compiler docs now under compiler/
* --docRoot now has smart default: best among @pkg, @path
|
|
|
|
|
| |
In case nim executable is located in PATH containing spaces.
fixes #13311
|
|
|
|
|
|
|
| |
bugfixes (#13221)
* kochdocs: use a glob instead of hardcoded list; generate docs for compiler/; bugfixes
* fixup after #13212 isRelativeTo got merged
|
|
|
|
|
|
|
|
|
| |
(#13023)
* maybe: allows optional chaining
* fix tools/kochdocs.nim
* improve semantics to distinguish valid from invalid values
* for now, wrapnil, isValid, unwrap are not exported
|
| |
|
| |
|