summary refs log tree commit diff stats
path: root/lib/std
Commit message (Collapse)AuthorAgeFilesLines
* explicitly import using `std/` in `tempfiles.nim` (#22851)Vindaar2023-10-201-1/+1
| | | | | At least on modern Nim `tempfiles` is not usable if the user has https://github.com/oprypin/nim-random installed, because the compiler picks the nimble path over the stdlib path (apparently).
* fixes #22844; uses arrays to store holeyenums for iterations; much more ↵ringabout2023-10-201-1/+1
| | | | | efficient than sets and reasonable for holeyenums (#22845) fixes #22844
* NIR: Nim intermediate representation (#22777)Andreas Rumpf2023-10-111-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Theoretical Benefits / Plans: - Typed assembler-like language. - Allows for a CPS transformation. - Can replace the existing C backend by a new C backend. - Can replace the VM. - Can do more effective "not nil" checking and static array bounds checking. - Can be used instead of the DFA. - Easily translatable to LLVM. - Reasonably easy to produce native code from. - Tiny memory consumption. No pointers, no cry. **In very early stages of development.** Todo: - [x] Map Nim types to IR types. - [ ] Map Nim AST to IR instructions: - [x] Map bitsets to bitops. - [ ] Implement string cases. - [ ] Implement range and index checks. - [x] Implement `default(T)` builtin. - [x] Implement multi string concat. - [ ] Write some analysis passes. - [ ] Write a backend. - [x] Integrate into the compilation pipeline.
* document `atomicInc` and `atomicDec` (#22789)ringabout2023-10-041-0/+2
|
* copyFile with POSIX_FADV_SEQUENTIAL (#22776)Juan Carlos2023-10-011-0/+8
| | | | | | | | | | | - Continuation of https://github.com/nim-lang/Nim/pull/22769 - See https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_fadvise.html - The code was already there in `std/posix` since years ago. 3 line diff. --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* copyFile with bufferSize instead of hardcoded value (#22769)Juan Carlos2023-09-301-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `copyFile` allows to specify `bufferSize` instead of hardcoded wrong value. Tiny diff. # Performance - 1200% Performance improvement. # Check it yourself Execute: ```bash for i in $(seq 0 10); do bs=$((1024*2**$i)) printf "%7s Kb\t" $bs timeout --foreground -sINT 2 dd bs=$bs if=/dev/zero of=/dev/null 2>&1 | sed -n 's/.* \([0-9.,]* [GM]B\/s\)/\1/p' done ``` (This script can be ported to PowerShell for Windows I guess, it works in Windows MinGW Bash anyways). # Stats - Hardcoded `8192` or `8000` Kb bufferSize gives `5` GB/s. - Setting `262144` Kb bufferSize gives `65` GB/s (script suggestion). --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* make parseEnum skip type aliases for enum type sym (#22727)metagn2023-09-191-1/+2
| | | fixes #22726
* Update osfiles.nim, make `moveFile` consider permission on *nix (#22719)litlighilit2023-09-181-1/+1
| | | see https://github.com/nim-lang/Nim/issues/22674
* fixes incorrect cint overflow in system (#22718)ringabout2023-09-181-1/+1
| | | fixes #22700
* allow tuples and procs in 'toTask' + minor things (#22530)Andreas Rumpf2023-08-221-1/+1
|
* Add staticFileExists and staticDirExists (#22278)Tomohiro2023-08-181-0/+13
|
* fixes syncio document (#22498)Nan Xiao2023-08-171-2/+2
|
* Markdown code blocks migration part 8 (#22478)Andrey Makarov2023-08-155-52/+57
|
* fixes CI (#22471)ringabout2023-08-142-3/+3
| | | | | Revert "fixes bareExcept warnings; catch specific exceptions (#21119)" This reverts commit 9207d77848d6f5db3635ae64f3cd4972cdbe3296.
* fixes syncio document (#22467)Nan Xiao2023-08-141-2/+2
|
* fixes bareExcept warnings; catch specific exceptions (#21119)ringabout2023-08-132-3/+3
| | | | | * fixes bareExcept warnings; catch specific exceptions * Update lib/pure/coro.nim
* replace `doAssert false` with `raiseAssert` in lib, which works better with ↵ringabout2023-08-118-14/+14
| | | | strictdefs (#22458)
* clean up `gc:arc` or `gc:orc` in docs and in error messages (#22408)ringabout2023-08-081-2/+2
| | | | | * clean up gc:arc/orc in docs * in error messages
* use strictdefs for compiler (#22365)ringabout2023-08-061-0/+1
| | | | | | | | | | | | | | | * wip; use strictdefs for compiler * checkpoint * complete the chores * more fixes * first phase cleanup * Update compiler/bitsets.nim * cleanup
* Prevent early destruction of gFuns, fixes AddressSanitizer: ↵norrath-hero-cn2023-08-051-1/+1
| | | | | heap-use-after-free (#22386) Prevent destruction of gFuns before callClosures
* Revert adding generic `V: Ordinal` parameter to `succ`, `pred`, `inc`, `dec` ↵konsumlamm2023-08-063-11/+11
| | | | | | | (#22328) * Use `int` in `digitsutils`, `dragonbox`, `schubfach` * Fix error message
* Fix searchExtPos so that it returns -1 when the path is not a file ext (#22245)Tomohiro2023-08-041-4/+17
| | | | | | | * Fix searchExtPos so that it returns -1 when the path is not a file ext * fix comparision expression * Remove splitDrive from searchExtPos
* Remove declared and not used variable in packedsets.bitincl (#22334)Eric N. Vander Weele2023-07-271-1/+0
| | | | When compiling code that uses PackedSet with warnings enabled, `var ret` in `bitincl` emits a "XDeclaredButNotUsed" warning.
* fixes #22163; use `{.push warning[BareExcept]:off.}` to override settings ↵ringabout2023-06-271-2/+2
| | | | | | | temporarily (#21390) * use `{.push warning[BareExcept]:off.}` to override settings temporarily * likewise, suppress expect
* allow destructors to accept non var parameters; deprecate `proc =destroy(x: ↵ringabout2023-06-212-12/+28
| | | | | | | | | | var T)` (#22130) * make destructors accept non var parameters * define nimAllowNonVarDestructor * add a test case and a changelog * update documentation and error messages * deprecate destructors taking 'var T'
* avoid `AnyEnumConv` warning in `genEnumCaseStmt` (#22061)Etan Kissling2023-06-101-10/+11
| | | | | | | When parsing enums from strings using `genEnumCaseStmt`, `AnyEnumConv` warnings are generated due to conversion from integer value. It seems possible meanwhile to refer to the actual `enum` value by symbol instead of being required to do the conversion from `ord`, even when the `enum` is defined in a `block`.
* Remove debug echo from with (#22047)Antonis Geralis2023-06-081-1/+0
|
* Nested `with` blocks (#22042)awr12023-06-082-6/+24
| | | | | * Implemented with-nesting in underscoredCalls() * Add tests for nested with
* fixes #21977; add sideEffects to dirExists, fileExists and symlinkExists ↵ringabout2023-06-014-6/+6
| | | | (#21978)
* Implements: [C++] constructor pragma improvement (fix #21921) (#21916)Juan M Gómez2023-05-302-4/+4
| | | | | | | | | | | | | | | * implements: [C++] constructor pragma improvement (fix #21921) t * fix test so it doesnt use echo in globals * Update compiler/ccgtypes.nim * Update lib/std/private/dragonbox.nim --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Suggest files and paths modules (#21950)Federico Ceratto2023-05-292-0/+6
|
* js -r defines nodejs & program result undeclared if unavailable (#21849)metagn2023-05-241-7/+3
| | | | | | | | | | | * js -r defines nodejs & program result undefined if unavailable fixes #16985, fixes #16074 * fix * add changelog too * minor word change
* tasks that support return values (#21859)Andreas Rumpf2023-05-171-25/+35
| | | tasks.nim: Code cleanups and support expressions that produce a value
* isolation spec update; WIP (#21843)Andreas Rumpf2023-05-141-3/+3
| | | | | | | | | | | * isolation spec update; WIP * wip * docs update, WIP * progress * Update doc/manual.md
* add getDataDir to std/appdirs.nim (#21754)Ecorous2023-05-121-0/+17
| | | | | | | | | | | * add getDataDir to std/appdirs.nim * reuse `osappdirs.getDataDir` * Update lib/std/appdirs.nim --------- Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* clean up SOME pending/xxx/issue link comments (#21826)metagn2023-05-116-13/+15
| | | | | * clean up SOME pending/xxx/issue link comments * great
* fix #9423 followup #17594: distinct generics now work in VM (#21816)ringabout2023-05-101-6/+1
| | | | | | | | | * fix #9423 distinct generics now work in vm * fixes cpp tests --------- Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
* fixes #19863; move sha1, md5 to nimble packages for 2.0 (#21702)ringabout2023-05-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * move sha1, md5 to nimble packages * boot the compiler * fixes tests * build the documentation * fixes docs * lol, I forgot koch.nim * add `nimHasChecksums` define * clone checksums but maybe copying is better * bump nimble hash * use ChecksumsStableCommit * fixes tests * deprecate them * fixes paths * fixes koch
* refact: Remove assertion effect hiding workaround (#21472)quantimnot2023-04-211-6/+1
| | | | | | | | refact: Remove asseertion effect hiding workaround There was a code comment to remove after bootstrapping with `nim >= 1.4.0`. Co-authored-by: quantimnot <quantimnot@users.noreply.github.com> Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* static link pthread correctly (#21693)ringabout2023-04-201-2/+0
|
* fixes nightlies regression (#21689)ringabout2023-04-191-2/+1
| | | | | | | | | | | | * fixes nightlies regression ref https://github.com/nim-lang/Nim/pull/21659 ref https://github.com/nim-lang/nightlies/actions/runs/4727252660/jobs/8387899690 > /home/runner/work/nightlies/nightlies/nim-1.9.3/lib/std/sysrand.nim(198, 12) Error: cannot evaluate at compile time: EINTR Because EINTR is not a const on i386 * Update lib/std/sysrand.nim
* warn on set types bigger than max size, default to 0..255 for int literals ↵metagn2023-04-171-2/+2
| | | | | | | | | | | | | | | | | | | (#21659) * test implicitly huge set types refs https://github.com/nim-lang/RFCs/issues/298 * oh my god * boot at least * don't error, fix remaining issues, no 2 len arrays * fix runnable example * test assuming 0..255 for int literal * test refactor, add changelog, test
* fixes #18146; fixes #19372; disable tlsEmulation on windows; static link ↵ringabout2023-04-141-0/+4
| | | | | | | pthreads with mingw (#21668) * fixes #18146; disable tlsEmulation on windows; static link libwinthreads DLL * whatever
* int64/uint64 as bigint in JS (#21613)metagn2023-04-113-4/+19
| | | | | | | | | | | * int64/uint64 as bigint in JS * fix CI * convert to compile option * fix lie * smaller diff, changelog entry
* fixes #21638; `fromJson` should support empty objects (#21641)ringabout2023-04-111-11/+16
| | | | | * fixes #21638; `fromJson` should supports empty objects * complete the logic
* remove useVersion (#21626)metagn2023-04-081-1/+1
| | | test removing useVersion
* remove decades-deprecated Win32 API *A function support (#21315)tersec2023-03-027-129/+54
|
* asyncdispatch: for NuttX, add destructor to clear global dispatcher. (#21432)Century Systems2023-02-281-0/+1
| | | | | | | | | | | | | * asyncdispatch: for NuttX, add destructor to clear global dispatcher using atexit(). Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp> * std: exitprocs: remove "when defined(nuttx)" block. Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp> --------- Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp>
* Overrides `=copy` for `PackedSets` (#21417)ringabout2023-02-271-15/+14
|
* Fix: nintendoswitch compilation (#21368)Dmitry Arkhipenko2023-02-252-2/+2
| | | | | * Fix: make nintendoswitch someGcc, remove symlink support for nintendoswitch, add getAppFilename for nintendoswitch * Fix: use getApplHeuristic on nintendoswitch