summary refs log tree commit diff stats
path: root/lib/pure
Commit message (Collapse)AuthorAgeFilesLines
* `addQuitProc` now works with closures, and c, js(node/browser) backend; fix ↵Timothee Cour2020-06-161-28/+0
| | | | | | | | | | | | | | | some bugs in testament (#14342) * make addQuitProc great again * fix bugs in testament * fix test * change 2016 => 2020 * addQuitProc => addExitProc + locks * move to std/exitprocs
* fix #14179, fix #14142, make CI 1.4x faster (2x faster locally) (#14658)Timothee Cour2020-06-161-69/+62
| | | | | | | | | | | | | | | * fix #14142: no more clash with: import os + use of existsDir/dirExists/existsFile/fileExists/findExe in config.nims * remove a comment * Revert "fixes the regression #12860 caused; hotfix" This reverts commit 3d2459bdc0b6d6236a2cd9209ed81c965ee411a5. * Revert "Undefine `paramCount` & `paramStr` in nimscript.nim for *.nims (#12860)" This reverts commit d38853c504d89d6e361f064a17391afaf42d74b8. * noNimScript => noWeirdTarget + noNimJs
* normalizeExe (#14668)Timothee Cour2020-06-151-2/+14
|
* Added --benchmarkVM to times.cpuTime() documentation (#14663)Ico Doornekamp2020-06-151-0/+2
|
* httpcore: Add http code 308 Permanent Redirect (#14639)djazz2020-06-122-1/+3
| | | | | * httpcore: Add http code 308 * httpclient: Add 308 to redirection proc * fix typo
* Add `proc find` to `heapqueue` (#14628)c-blake2020-06-101-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Unwind just the "pseudorandom probing" (whole hash-code-keyed variable stride double hashing) part of recent sets & tables changes (which has still been causing bugs over a month later (e.g., two days ago https://github.com/nim-lang/Nim/issues/13794) as well as still having several "figure this out" implementation question comments in them (see just diffs of this PR). This topic has been discussed in many places: https://github.com/nim-lang/Nim/issues/13393 https://github.com/nim-lang/Nim/pull/13418 https://github.com/nim-lang/Nim/pull/13440 https://github.com/nim-lang/Nim/issues/13794 Alternative/non-mandatory stronger integer hashes (or vice-versa opt-in identity hashes) are a better solution that is more general (no illusion of one hard-coded sequence solving all problems) while retaining the virtues of linear probing such as cache obliviousness and age-less tables under delete-heavy workloads (still untested after a month of this change). The only real solution for truly adversarial keys is a hash keyed off of data unobservable to attackers. That all fits better with a few families of user-pluggable/define-switchable hashes which can be provided in a separate PR more about `hashes.nim`. This PR carefully preserves the better (but still hard coded!) probing of the `intsets` and other recent fixes like `move` annotations, hash order invariant tests, `intsets.missingOrExcl` fixing, and the move of `rightSize` into `hashcommon.nim`. * Fix `data.len` -> `dataLen` problem. * Add neglected API call `find` to heapqueue. * Add a changelog.md entry, `since` annotation and rename parameter to be `heap` like all the other procs for consistency. * Add missing import.
* parseutils: integerOutOfRangeDefect => integerOutOfRangeError (#14627)Timothee Cour2020-06-091-7/+7
|
* `toJson`, `jsonTo`, json (de)serialization for custom types; remove ↵Timothee Cour2020-06-082-31/+31
| | | | | | | | | | | | | | | | | | | | | dependency on strtabs thanks to a hooking mechanism (#14563) * json custom serialization; application for strtabs * serialize using nesting * make toJson more feature complete * add since * Revert "Improve JSON serialisation of strtabs (#14549)" This reverts commit 7cb4ef26addb3bb5ce2405d8396df6fd41664dae. * better approach via mixin * toJson, jsonTo * fix test * address comments * move to jsonutils * doc * cleanups * also test for js * also test for vm
* Fix sugar.dump: It doesn't work correctly with compile time expression (#14580)Tomohiro2020-06-081-1/+1
|
* net: also set TLSv1.3 cipher suitesLeorize2020-06-061-0/+7
|
* net: revert compatibility changes for WindowsLeorize2020-06-061-5/+2
| | | | | This reverts commit d53a6355f3ad4401731142d8fc66b95ecfdfb321 and 688b1f250ed058ecc49737dc75fd089206fa25b9.
* net: use CiphersOld list for WindowsLeorize2020-06-061-1/+4
| | | | | | | The default DLLs shipped are too old, switch to CiphersOld list to ensure compatibility. This commit should be reverted before any future release.
* net: don't call set_ecdh_auto for super old OpenSSLLeorize2020-06-061-1/+1
| | | | | And the fun thing is that currently we use a super old OpenSSL on Windows.
* net: enable automatic EC curve selection for OpenSSL 1.0.2Leorize2020-06-061-0/+7
| | | | | This setting is required for servers running OpenSSL < 1.1.0 to support EC-based secure ciphers that is now part of the default cipher list.
* asyncnet: clear SSL error queue before performing I/OLeorize2020-06-061-0/+1
| | | | Follow up of 476be6cc278d58232e2c6cd3515eb24eca7e2d38
* net: use a secure cipher list by defaultLeorize2020-06-062-1/+53
| | | | | | | | | | | 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.
* asyncnet, net: clear openssl error queue before performing I/OLeorize2020-06-062-0/+8
| | | | | | | | | | | | Per SSL_get_error(3): The current thread's error queue must be empty before the TLS/SSL I/O operation is attempted, or SSL_get_error() will not work reliably. There has been records of not clearing the error queue causing weird SSL errors when there shouldn't be any, see: https://github.com/openssl/openssl/issues/11889
* openssl: fix erroneous function signaturesLeorize2020-06-061-2/+0
| | | | Now matches the declaration in openssl/err.h
* net: don't clear error queue unless shutdown() will be performedLeorize2020-06-061-1/+1
|
* Revert "net: don't clear all errors on close"Leorize2020-06-061-0/+1
| | | | | | | You're supposed to clear the error queue before any I/O operations. Per SSL_get_error(3) man page. This reverts commit ee3ed37300743addb1344e39bc46d3cd2b89a718.
* net: don't clear all errors on closeLeorize2020-06-061-1/+0
| | | | | | | Closing a socket clears the error queue of the entire thread, which seems to be a bit too invasive. Also I don't find any reason in the PR that added this.
* asyncnet, net: call SSL_shutdown only when connection establishedLeorize2020-06-062-10/+21
| | | | | | This commit prevents "SSL_shutdown while in init" errors from happening. See https://github.com/openssl/openssl/issues/710#issuecomment-253897666
* Fix asynchttpserver newline breaking content-length (#14565) [backport]Zed2020-06-061-2/+3
|
* remove isMainModule from json,os,sequtils (#14572)Timothee Cour2020-06-063-757/+2
| | | | | * move json.isMainModule => tjson * move isMainModule => tos,tsequtils
* Improve JSON serialisation of strtabs (#14549)PMunch2020-06-052-7/+30
| | | | This creates a more compact serialisation of strtabs that is more in line with the normal tables.
* Disable unused warnings for error await template too (#14531)Danil Yarantsev2020-06-011-1/+1
|
* Disable unused warnings for await in async macro (#14517)Danil Yarantsev2020-05-311-2/+2
| | | | | * Disable unused warnings for await in async macro * Remove used for the error template
* Change `UnpackError` with `UnpackDefect` (#14457)Ivan Bobev2020-05-272-9/+10
| | | | | | | | | | | | | | | | | | * Change `UnpackError` with `UnpackDefect` The deprecation warning for `UnpackError` exception raised by some `inline` procedures in the Nim standard library propagates to the user code. If the user code has a requirement for building without warnings this is a problem for the successful execution of the tests. In order to resolve this, all occurrences of `UnpackError` in the Nim code base are changed to `UnpackDefect`. Only the type alias is retained to not break other people's user code since `UnpackError` is exported type. * Remove the catching of `UnpackDefect` Defect exceptions should not be cached, because they indicate problem in the API usage. The code in `nimblesocket.nim` is rewritten to first check whether there is a value set into the `knownDomain` variable from the `Option` type before usage.
* make get for options use lent T (#14442)cooldome2020-05-251-2/+2
| | | Co-authored-by: cooldome <ariabushenko@bk.ru>
* Fix #14057 - moveFile should overwrite on Windows (#14433)genotrance2020-05-231-2/+2
|
* The whole options module should be inline (#14417) [backport:1.2]Mamy Ratsimbazafy2020-05-211-15/+14
| | | | | | | * The whole options module should be inline * Use inline per proc and tag `lent` where appropriate * Remove lent annotation (failing at compiletime)
* fix #14404 foldr had the classic multiple evaluation bug (#14413)Timothee Cour2020-05-211-7/+7
|
* asyncdispatch, asyncnet: add inheritance control (#14362)alaviss2020-05-202-25/+90
| | | | | * asyncdispatch, asyncnet: add inheritance control * asyncnet, asyncdispatch: cleanup
* Fix #14394 (#14395)Clyybber2020-05-181-1/+1
|
* Emscripten: disable epoll (#14361)Dominik Picheta2020-05-161-2/+2
| | | Epoll is not supported by epoll.
* Remove the uses of {.procvar.} pragma (#14359)Kaushal Modi2020-05-155-49/+48
| | | | | | | This pragma did nothing. Ref: - https://github.com/nim-lang/Nim/issues/2172#issuecomment-383276469 - https://github.com/nim-lang/Nim/issues/12975
* fixes #14331Araq2020-05-131-0/+28
|
* `osproc.execCmdEx` now takes an optional `input` for stdin, `env`, ↵Timothee Cour2020-05-131-12/+31
| | | | | | | workingDir (#14211) * `osproc.execCmdEx` now takes an optional `input` for stdin * execCmdEx now also takes an optional ``workingDir` and `env`
* properly fixes #13758 so that `import std/macros` stays legal (#14291)Timothee Cour2020-05-121-2/+1
| | | | | * properly fix https://github.com/nim-lang/Nim/issues/12389 * use --lib:lib in koch.nim.cfg instead * third time is the charm
* Fix #14289 (#14304) [backport]slangmgh2020-05-111-1/+2
|
* fixes #13946 (#14302)Andreas Rumpf2020-05-112-11/+5
|
* fix a critical bug in windows.osproc leading to resource leaks and blocking ↵Timothee Cour2020-05-111-1/+5
| | | | IO [backport] (#14296)
* nativesockets: add missing inheritable pass-throughLeorize2020-05-071-1/+1
|
* net: remove more erroneous set constructions (#14252) [backport]alaviss2020-05-071-3/+8
| | | Refs #13764
* Fix runnable examples for bitops (#14247)awr12020-05-061-3/+3
|
* Added bitslice operations for bitops (#14016)awr12020-05-061-21/+206
| | | | | | | | | | | | | | | | | | | | * added bit operations based on bit slices, clarified documentation, made non-mutating versions of mask ops * Added since annotations, some runnable examples * Added mask()/masked() functions, changed internal workings of mask ops to use new bit* funcs * Changelog updated for new bitops improvements * Reorganization, added runnable examples * Documentation adjustments * Add incltrl for since annotation * Fix masked() impl * Fix mask() return type * Don't call toUnsigned on already unsigned types * Remove improper `var T` for flipMasked() * Fix return types for flipMasked() * Slight syntactic cleanup for *masked ops * Added tests for bitslice operations, new mask() operation, non-mutating mask ops * Fix setmasked() var T issue * More comprehensive tests * Fix runnable example for bitsliced() * Fix runnable example for mask()
* Make the fields of `times.DateTime` private (#14197)Oscar Nihlgård2020-05-061-76/+180
| | | | | * Make the fields of `times.DateTime` private * PR fixes
* Clarify JS cstring len (#14184)hlaaftana2020-05-051-2/+2
|
* Fixes net.recvFrom to work correctly with IPv6 (#14131)rockcavera2020-05-041-10/+22
| | | | | | | * added high level sendTo and recvFrom to std/asyncnet; tests were also added. * add .since annotation, a changelog entry and fixed to standard library style guide. * fixes net.recvFrom to work correctly with IPv6 * raise if domain is not AF_INET or AF_INET6 * renamed template to adaptRecvFromToDomain()
* sequtils refactoring: prefer typeof over type (#14212)Andreas Rumpf2020-05-041-15/+15
|