* #13806 - first call sysctl with a null buffer to get the length, then alloc buffer and call again
* Use csize_t rather than csize
* Suggestions from @Clyybber
Co-authored-by: Euan Torano <euan.torano@bluesky-wireless.co.uk>
* workflows/ci_docs: publish documentation to Github Pages
This should be a complete replacement for our current Travis CI setup.
* workflows/ci_docs: run docgen upon modification to the css on push
So that any changes regarding the stylesheets would be reflected on the
published docs.
* workflows/ci_docs: build the compiler in release mode
* workflows/ci_docs: set branch name for the generated docs
This makes the "Source" links work correctly.
* workflows/ci_docs: run docgen on windows and osx too
Only deploy the Linux-generated version.
* workflows/ci_docs: cache csources compiler
This should cut the time spent building csources, which is about 1-2mins
depending on OS.
* stacktraces can now show custom runtime msgs
* improve tests/stdlib/tstackframes.nim
* fix test for --gc:arc
* test --stacktraceMsgs:on and --stacktraceMsgs:off
* --stacktracemsgs:off by default
* osproc: move fork-based code path under the when conditional
* osproc: avoid using the environ global on Haiku
* osenv: import environ from stdlib.h on Haiku
Haiku's environ is declared in `<stdlib.h>` by default, differing from
POSIX and/or Linux. Import it from there to avoid collision with anyone
importing `<stdlib.h>` from Nim.
* koch boot --gc:arc now passes the nim stage
... but generates invalid C code
* Move it closer to where its used
* Try something else
* Poor mans var
* Use UncheckedArray instead
These constants were defined as `cint`. They can be huge on certain
systems, such as Haiku, and trigger out-of-bounds errors in
asyncdispatch.
Ref #13764.
* Fix typeSym.getImpl for ref types
* Fix a codegen issue affecting the test suite of nim-beacon-chain
* Fix tests/stdlib/tjsonmacro
To understand the fix better it may help to take a look
at the history of the replaced code.
The nil check that is removed in this commit was introduced
in another fix that failed to identify the root cause of the
issue - namely that we allow an object type to exist for which
no ast is present:
https://github.com/nim-lang/Nim/pull/9601/files
The original intention of the code is more obvious here:
https://github.com/nim-lang/Nim/pull/9538/files
and improve wording in other ways
Showing that `nil` can be assigned helps to warn readers that variables can be `nil` even after being assigned a value.
* new syntax for lvalue references: `var b {.byaddr.} = expr`
* on type mismatch, `???(0, 0)` not shown anymore
* * compiler now lowers `var a: {.foo.}: MyType = expr` to foo(a, MyType, expr)
* new pragmas.byaddr defined in pure library code exploiting this lowering
* skip `template foo() {.pragma.}`
* make i2d_X509 and d2i_X509 always available
i2d_X509 and d2i_X509 have been available in all versions of OpenSSL, so
make them available even if nimDisableCertificateValidation is set.
* introduce getPeerCertificates, fixes#13299
getPeerCertificates retrieves the verified certificate chain of the peer
we are connected to through an SSL-wrapped Socket/AsyncSocket. This
introduces the new type Certificate which stores a DER-encoded X509 certificate.