summary refs log tree commit diff stats
path: root/lib/pure
Commit message (Collapse)AuthorAgeFilesLines
...
* refactor os imports into corresponding small modules (#20720)ringabout2022-11-015-5/+7
|
* Improve dollar (#20672)Juan Carlos2022-10-311-30/+49
| | | | | | | | | | | | | | | | | | | | | | | * Improve dollar for uri * Refactor * . * . * verde * optimize * https://github.com/nim-lang/Nim/pull/20672#issuecomment-1295440246 [skip ci] * https://github.com/nim-lang/Nim/pull/20670#issuecomment-1295937393 * ci * Update lib/pure/uri.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Improve getDataUri (#20670)Juan Carlos2022-10-311-4/+12
| | | | | | | * Improve getDataUri * Restart ci * https://github.com/nim-lang/Nim/pull/20670#issuecomment-1295937393
* Genode: add scheduleCallbacks to asyncdispatch (#20708)ehmry2022-10-311-3/+29
| | | | | | | | | * Genode: add native signal handler * Genode: add scheduleCallbacks to asyncdispatch This resolves some awkwardness where an RPC server may or may not use callSoon while dispatching RPC but without scheduling timers or I/O.
* allow deferred close of nil stream (#20706)n5m2022-10-311-4/+14
| | | | | * allow deferred close of nil stream * improve example
* removes channels_builtin when enabling `nimPreviewSlimSystem` (#20713)ringabout2022-10-312-2/+0
|
* put std/threads under the umbrella of nimPreviewSlimSystem (#20711)ringabout2022-10-312-2/+2
| | | | | | | | | | | * put `std/threads` under the umbrella of `nimPreviewSlimSystem` * add changelog * fixes tests * fixes tests again * fixes tests
* move threads out of system (#20674)ringabout2022-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * move syslocks first * progress * clean up * go on * clean up * clean up * add imports syslocks * remove documentation * public deallocOsPages * fixes genode * fixes more * fixes boehmGC * cover more cases * fixes cyclic deps * fixes genode * cleanup * unpublic fields * cleanup * clean up
* fix #16264 low(Time) OverflowDefect (#20552)Bung2022-10-291-1/+1
| | | fix #16264 regression(0.18.0 => devel): import times; echo low(Time) gives OverflowDefect
* Fix #20628 for Windows (#20667)Andrey Makarov2022-10-281-6/+9
| | | | | | | * Fix #20628 for Windows * Move isRegular - !isSpecial and onlyRegular - skipSpecial * Forgot to change it in 1 more place
* openssl 3 support no longer opt in + some 1.0 support (#20668)metagn2022-10-271-2/+15
| | | | | | | | | | | | | | | * Revert "Add OpenSSL 3 support (#19814)" This reverts commit 2dcfd732609a2cfa805e5a94cc105399a2f18632. * openssl 3 support no longer opt in + some 1.0 support * hopefully fix * maybe fix * final attempt * actual fix hopefully
* Added openarray[char] overloads to std/unicode (#20648)Jason Beetham2022-10-271-46/+417
| | | | | | | | | | | | | | | | | * Added openarray[char] overloads to std/unicode Call substr instead of index slice inside unicode Added substr overload for openarray for parity with string functionality Made style checker happies and fixed overloads for substr * Added update to changelog [skip ci] * Inline unicode string operations * Moved substr overload to unicode Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* clean up `std/os` related modules (#20651)ringabout2022-10-251-65/+0
| | | | | | | | | * clean up `std/os` related modules * use `cmpPaths` * reset * cleanup
* Change both code snippets to use the same test URL (#20647)Saint2022-10-251-1/+1
|
* Implement Unix file regularity check (#20448) (#20628)Andrey Makarov2022-10-251-4/+7
| | | | | * Implement Unix file regularity check * update std/dirs also
* Added 'openArray[char]' overloads to 'std/parseutils' (#20527)Jason Beetham2022-10-241-93/+443
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added 'openarray[char]' overloads to 'std/parseutils' * Removed redundant `start` and `last` params from slice using procs * Fixed type for parseIdent overload * fixed one by off with 'substr' * removed missed start parameters for procedures * Added 'openarray[char]' overloads to 'std/parseutils' * Removed redundant `start` and `last` params from slice using procs * Fixed type for parseIdent overload * fixed one by off with 'substr' * removed missed start parameters for procedures * Fixed VM op to work with new 'opcSlice' * Corrected captureBetween's logic to work with openarray * js sys's parsefloat logic now uses openarray Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
* fixes the typical (not a == b) bug in the documentation (#20643)ringabout2022-10-241-2/+2
| | | | | * fixes the typical (not a == b) bug; uses runnableExamples * cannot add runnableExamples
* Add `safe` parameter to `base64.encodeMime` (#20559)Amjad Ben Hedhili2022-10-211-3/+11
| | | | | | | | | | | | | | | | | | * Improve `encodeMime` signature * `string` to `openArray[char or byte]` * `safe` parameter * Fix * Revert "Fix" This reverts commit a394c505c2ab751621c24fd29b17e97c01251c1f. * Remove encodeMime's openArray overload * Document the `safe` parameter * Add changelog entry
* move procs in os to `appdirs` (#20605)ringabout2022-10-201-141/+3
| | | | | * move procs in os to `appdirs` * Update lib/std/private/osappdirs.nim
* [std/os] split and re-export (#20593)ringabout2022-10-201-2044/+17
| | | | | | | * [std/os] split and export * move to private modules * fixes docs and tests Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
* refactor envvars, oserrors; register vmops (#20592)ringabout2022-10-183-339/+5
| | | | | * refactor envvars, oserrors; register vmops * remove type definitions
* [`std/os` clean up] import and export `osseps` (#20580)ringabout2022-10-173-113/+3
| | | import and export osseps
* fixes #19162; enable `strictEffects` for v2 (#19380)ringabout2022-10-151-1/+1
| | | | | | | | | | | | | | | | | | | * enable stricteffects * add gcsafe * fix tests * use func * fixes pegs tests * explicitly mark repr related procs with noSideEffect * add nimLegacyEffects * change URL * fixes docopt * add `raises: []` to repr * fixes weave * fixes nimyaml * fixes glob * fixes parsetoml * Apply suggestions from code review * Update testament/important_packages.nim * add legacy:laxEffects
* follow up #19714; add `memmem` optimizations for `find` on Linux, Macos and ↵ringabout2022-10-131-1/+26
| | | | | | | | | | | | | | | BSDs (#20556) * fixes tests * add memmem optimization for find * fixes * ty[o * fixes `"abc".find("") == 0 doesn't work on macOS Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
* Markdown code blocks migration part 7 (#20547)Andrey Makarov2022-10-127-90/+95
|
* oids sticks to 24 length strings; fixes breaking changes (#20546)ringabout2022-10-121-7/+7
| | | oids sticks 24 length strings
* 'lock levels' are deprecated, now a noop (#20539)ringabout2022-10-113-6/+6
| | | | | * 'lock levels' are deprecated, now a noop * fixes tests
* Remove unused `base64.encode` overload (#20369)Amjad Ben Hedhili2022-10-091-27/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove unused `base64.encode` overload * [skip ci] Remove commented code * [skip ci] var -> let * [skip ci] Remove mentions of the string overload * Remove `SomeInteger` overload * Fix CI * Fix CI * Deprecate `SomeInteger` overload * [skip ci] Add changelog entry * Revert "Remove `SomeInteger` overload" This reverts commit 79a2963a2154377ee44e9ad5532409baaf5575a6. * Revert "[skip ci] Add changelog entry" This reverts commit 186f17eb3919a593e2a3928e3ac3b462a8323fc1. * Revert "Revert "Remove `SomeInteger` overload"" This reverts commit 8005318ee4fbf8cef726b1af2015e76aaf1e700a. * Update lib/pure/base64.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* parseutils: skipWhile: fix parameter name in doc comment (#20523)ee72022-10-091-1/+1
|
* FTP client is now able to connect to server over TLS by set `useTls =… ↵Huy Doan2022-10-091-10/+75
| | | | | | | | | | | | | | | | | (#17219) * FTP client is now able to connect to server over TLS by set `useTls = true` in newAsyncFtpClient proc * Update asyncftpclient.nim * fix CI * shouldn't use {.error.} * Update lib/pure/asyncftpclient.nim Co-authored-by: flywind <xzsflywind@gmail.com> Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com> Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
* out parameters: enforce that 'out' is only used as a parameter (#20510)Andreas Rumpf2022-10-072-2/+3
| | | | | | | * out parameters: enforce that 'out' is only used as a parameter * make tables.nim use 'out' parameters * better backwards compat
* Markdown indented code blocks (#20473)Andrey Makarov2022-10-056-19/+20
| | | | | | | | | | | | | | | | | | | | | | | * Implement Markdown indented code blocks Additional indentation of 4 spaces makes a block an "indented code block" (monospaced text without syntax highlighting). Also `::` RST syntax for code blocks is disabled. So instead of ```rst see:: Some code ``` the code block should be written as ```markdown see: Some code ``` * Migrate RST literal blocks :: to Markdown's ones
* strutils, rstgen: avoid deprecated `strutils.delete` (#20488)ee72022-10-051-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The strutils `delete` func with signature func delete*(s: var string, first, last: int) was deprecated in adba5eb45e0a, in favor of one with signature func delete*(s: var string, slice: Slice[int]) However, a few procedures still used the deprecated form. This commit updates them, resolving these deprecation warnings: rstgen.nim(766, 12) Warning: use `delete(s, first..last)`; delete is deprecated [Deprecated] strutils.nim(1651, 19) Warning: use `delete(s, first..last)`; delete is deprecated [Deprecated] strutils.nim(1679, 7) Warning: use `delete(s, first..last)`; delete is deprecated [Deprecated] strutils.nim(2472, 7) Warning: use `delete(s, first..last)`; delete is deprecated [Deprecated] Before this commit: - `trimZeros` called `s.delete(i+1, i)` for an input that lacks a trailing zero (like "1.23"). - `removePrefix*(s: var string, prefix: string)` called `s.delete(0, -1)` when the prefix was the empty string. which did not modify `s`, nor raise an error. But the newer slice `delete` raises an `IndexDefect` when the start of the slice is greater than the end, so we avoid calling the new `delete` for such a case. Recall that exceptions inheriting from `system.Defect` are not tracked with the `.raises: []` exception tracking mechanism [1], so this commit does not break existing code like: proc foo {.raises: [].} = var s = "abc1.20" s.removePrefix("abc") s.trimZeros() doAssert s == "1.2" The `strutils.delete` deprecation was motivated by a problem with `system.delete` [2][3]: `system.delete` had surprising behavior when the index passed to it was out of bounds (it would delete the last entry then). Compile with `-d:nimStrictDelete` so that an index error is produced instead. Be aware however that your code might depend on this quirky behavior so a review process is required on your part before you can use `-d:nimStrictDelete`. To make this review easier, use the `-d:nimAuditDelete` switch, which pretends that `system.delete` is deprecated so that it is easier to see where it was used in your code. `-d:nimStrictDelete` will become the default in upcoming versions. A similar deprecation happened with `sequtils.delete` [4], but that deprecated form is already not used in this repo. [1] https://github.com/nim-lang/Nim/blob/2dec69fe5aa6/doc/manual.md#exception-tracking [2] https://github.com/nim-lang/Nim/blob/2dec69fe5aa6/changelogs/changelog_1_6_0.md#system [3] https://github.com/nim-lang/Nim/commit/92cb76571432 [4] https://github.com/nim-lang/Nim/commit/1d6863a7899f
* Add proxy basic auth documentation (#20498)TerrorTrace2022-10-051-0/+8
|
* move widestrs out of system (#20462)metagn2022-10-017-0/+15
| | | | | * move widestrs out of system * fix osproc
* new move analyser2 (#20471)Andreas Rumpf2022-10-011-2/+1
| | | | | | | | * produce better code for closure environment creation * new 'first write' analysis; * scope based move analyser * code cleanup Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* Undeprecate isvalidfilename (#19643)Juan Carlos2022-09-291-7/+12
| | | | | | | | | | * Remove deprecated isvalidfilename * https://github.com/nim-lang/Nim/pull/19643#issuecomment-1235102314 * https://github.com/nim-lang/Nim/pull/19643#issuecomment-1235102314 * https://github.com/nim-lang/Nim/pull/19643#issuecomment-1235102314 * Add unittests * Add more Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* fix #19500; remove find optimization [backport: 1.6] (#19714)ringabout2022-09-281-20/+1
| | | | | | | | | | | | | | | | * remove find optimization close #19500 * save find to std * add simple tests * Apply suggestions from code review Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> Co-authored-by: sandytypical <43030857+xflywind@users.noreply.github.com> Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* moderate system cleanup & refactor (#20355)metagn2022-09-285-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * system refactor, move out 600 lines * compilation, slice, backwardsindex, misc_num moved out of system * some procs/types moved into arithmetics, basic_types * system no longer depends on syncio * some procs moved around to fit with their surroundings * make exceptions an import, old ops to misc_num * move instantiationInfo back * move back nim version, fix windows echo * include compilation * better docs for imported modules, fix unsigned ops also remove ze, ze64, toU8, toU16, toU32 with nimPreviewSlimSystem * fix terminal * workaround IC test & weird csize bug, changelog * move NimMajor etc back to compilation, rebase for CI * try ic fix * form single `indices`, slim out TaintedString, try fix IC * fix CI, update changelog, addQuitProc * fix CI * try fix CI * actually fix CI finally hopefully * Update lib/system/compilation.nim Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com> * update kochdocs * hopefully fix csize uses for slimsystem * fix tquit Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* Refactor initOptParser (#19656)Nan Xiao2022-09-271-22/+5
| | | Co-authored-by: flywind <xzsflywind@gmail.com>
* make more standard libraries work with `nimPreviewSlimSystem` (#20343)ringabout2022-09-2727-1/+77
| | | | | | | | | | | | | | | | | | | | | | | * make more standard libraries work with `nimPreviewSlimSystem` * typo * part two * Delete specutils.nim * fixes more tests * more fixes * fixes tests * fixes three more tests * add formatfloat import * fix * last
* fix #18128 rfind on empty needle returns rightmost index (#20430)n5m2022-09-261-1/+2
| | | rfind on empty needle returns haystack len
* Optimize `base64.encodeMime` (#20409)Amjad Ben Hedhili2022-09-251-6/+20
| | | | | | | | | * Optimize `base64.encodeMime` * 5x faster for common scenarios, 13x faster if `lineLen` <= encoded string's length or `newLine` is empty. * Changed `lineLen`'s type to `Positive` to disallow `0`. * Fix
* fixes #20285; prevent oid time overflow at year 2038 (#20338)ringabout2022-09-221-25/+14
| | | | | | | | | | | | | | | * Revert "fixes #20285; prevent oid time overflow at year 2038" This reverts commit dfcdb6ec2ab6a5fa53b6a99294a84fd122be8f8d. * increase time to 64 bits and clean up * add testcase * inline consts * add a changelog * fixes #20285; prevent oid time overflow at year 2038
* contentLength default to -1 if not present (#19835)Bung2022-09-211-2/+2
| | | | | * contentLength default to -1 if not present * `httpclient.contentLength` changelog
* Recommend `mapIt` in some cases (#20347)Amjad Ben Hedhili2022-09-191-6/+4
| | | | | * Recommend `mapIt` in some cases * Remove runnableExample
* fixes #19104; peg Incorrect captures [backport:1.6] (#20352)ringabout2022-09-151-1/+4
| | | | | | | * fixes #19104; peg Incorrect captures [backport:1.6] * add tests Co-authored-by: khchen <khchen@gmail.com>
* partial revert and redesign of #19814, changelog (#20341)metagn2022-09-141-0/+6
| | | | | | | | | | | | | | | * conservative partial revert of #19814 * fix * revert tssl * revert azure CI change * keep azure, revert version range * fully revert CI, add changelog * useOpenssl3 as separate define, .3 is a version
* Revert "add `fromChar`" (#20336)ringabout2022-09-121-9/+0
| | | | | Revert "add `fromChar` (#20332)" This reverts commit 846cc746a2350ad3f845a4eb0ce97b864891cd35.
* Fix cannot create Windows directory in root (#20311)havardjohn2022-09-111-19/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix cannot create Windows directory in root Fixes #20306, a regression bug with `createDir` caused by `23e0160af283bb0bb573a86145e6c1c792780d49`. The issue is that, if the path consists only of a drive and a single directory (e.g. "Y:\nimcache2" in the original issue), then no directories will be created. This works fine if there are multiple directories (e.g. "Y:\nimcache2\test"). In the case of "Y:\nimcache2", `omitNext` in `createDir` is `false` on the last condition in `createDir`. This means that the "nimcache2" directory will not be created, and no exception will be raised. Fixed by refactoring to use `parentDirs` iterator instead of iterating over the string characters. Motivation is reduced code complexity. Will not test the specific "C:\test" `createDir` case, since there is no standard Windows drive with write permissions in the root. Creating a custom drive-mapping to Windows Temp is a non-option. That could mess up some users running the test. Added `parentDirs` tests since they are lacking on for POSIX paths. * Fix `createDir("")` causing error The change to `createDir` caused `createDir("")` to raise an error, where it previously didn't. Fixed so `createDir("")` does not fail, and added test case.