summary refs log tree commit diff stats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* fix #20997 (#21165)Bung2023-04-191-4/+2
| | | | | * fix #20997 * use ptr UncheckedArray[uint8] instead
* Fix RST/Markdown false heading detection (#21685)Andrey Makarov2023-04-181-13/+17
|
* warn on set types bigger than max size, default to 0..255 for int literals ↵metagn2023-04-173-9/+9
| | | | | | | | | | | | | | | | | | | (#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 #20155; repr range with distinct types is broken in ORC (#21682)ringabout2023-04-171-2/+10
| | | fixes #20155; repr range with distinct types is broken with ORC
* 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-1111-44/+69
| | | | | | | | | | | * int64/uint64 as bigint in JS * fix CI * convert to compile option * fix lie * smaller diff, changelog entry
* `proc` typeclass accounts for `iterator`, call conventions + `nil` fix + ↵metagn2023-04-112-31/+22
| | | | | | | | | | | | | document typeclass AST (#21629) * test fix #16546 #16548 + another issue * please don't tell me other packages do this * fix CI + test typeclass callconv pragma * better logic in parser * docs and changelog
* Fix option lists with additional indentation in Markdown (#21633)Andrey Makarov2023-04-111-1/+3
| | | | | | | | This is more Markdown-ish way to fix issue #21055, then PR #21625. It does not enable RST definition lists, instead it makes adding additional indentation (less than 4) right after a paragraph be ignored, as it's done for all block elements in Markdown. (In this case this tenet is applied to option lists that are not part of CommonMark spec by themselves).
* fixes #21638; `fromJson` should support empty objects (#21641)ringabout2023-04-111-11/+16
| | | | | * fixes #21638; `fromJson` should supports empty objects * complete the logic
* terminal size env-vars have precendence in POSIX (#21643)Etan Kissling2023-04-111-10/+39
| | | | | | | In POSIX Base Definitions Section 8.1 Environment Variable Definition, it is explained that the `COLUMNS` and `LINES` environment variables, if present, take precedence over any other implementation-defined method to determine the terminal size. This is useful, for example, to capture output programmatically in simulations for various terminal sizes.
* remove useVersion (#21626)metagn2023-04-081-1/+1
| | | test removing useVersion
* fix #20972 fixes invalid and UB codegen case object transitions for both ↵ringabout2023-04-041-3/+5
| | | | | refc and ORC [backport] (#21611) fix #20972 fixes invalid and UB codegen case object transitions for refc and ORC
* fixes #21564; std/bitops: Add explicit type masking for the JS target (#21598)chmod2222023-04-031-3/+9
| | | | | | | | | | | | | | | | | | | * std/bitops: Add explicit type masking for the JS target Typecasts on the JavaScript backend do not function the same way as they do on C and C++ backends, so for bitwise operations we may need to mask them back down into their allowed range when they get shifted outside it. Since they do work as expected on the other backends, a default bitmask of all 1's is casted down into the target type as an easily optimizable "& 0xFF" operation for these backends. * Fixup: this should still be a func * Run test case on js target * Adapt testcase to contributor guide and best practices * Simplify constrain logic and turn into actual no-op for the C side
* Fix example code of proc add*[T](x: var seq[T], y: sink openArray[T]) (#21607)Tomohiro2023-04-031-4/+13
| | | | | | | | | * Fix example code in system.nim * Add example code to lib/system.nim * Fix compile error * Fix example code that can be unsafe
* Fix nim doc crash with group referencing & include (#21600)Andrey Makarov2023-04-021-5/+9
| | | | | | | This fixes a regression introduced in #20990 . When a group referencing is used and one of the overloaded symbols is in `include`d file, then `nim doc` crashes. The fix is in distinguishing (the index of) module and file where the symbol is defined, and using only module as the key in hash table for group referencing.
* macros: Extend treeTraverse intVal range to nnkUInt64Lit (#21597)chmod2222023-04-011-0/+2
| | | | | | | | | * Extend intVal range to nnkUInt64Lit Fixes #21593 * Properly cast intVal as unsigned * Add testcase for #21593
* make --exceptions:quirky work with C++ (#21581)Andreas Rumpf2023-03-312-4/+6
| | | | | * make --exceptions:quirky work with C++ * make tests green again
* bump NimVersion to 1.9.3 (#21587)Miran2023-03-301-1/+1
|
* Revert "Add `cursor` to lists iterator variables" (#21571)ringabout2023-03-281-3/+3
| | | | | Revert "Add `cursor` to lists iterator variables (#21527)" This reverts commit 3936071772d648f98c36e5aad16a341b86344e6c.
* Add `cursor` to lists iterator variables (#21527)Amjad Ben Hedhili2023-03-271-3/+3
| | | * followup #21507
* don't access void* out of alignment in refc GC to avoid UB (#21560)tersec2023-03-221-1/+0
|
* Add URI parsing warning (#21547)Federico Ceratto2023-03-202-0/+4
| | | | | Related to CVE-2021-41259 https://github.com/nim-lang/security/security/advisories/GHSA-3gg2-rw3q-qwgc https://github.com/nim-lang/Nim/pull/19128#issuecomment-1181944367
* fixes #21538; expand len template parameter once in newSeqWith (#21543)Eric N. Vander Weele2023-03-201-3/+3
| | | | | | | `len` could contain side effects and may result in different values when substituted twice in the template expansion. Instead, capture the result of substituting `len` once. closes: #21538
* Fix: #21541. Add support for xnVerbatimText (#21542)Mark Leyva2023-03-201-4/+4
| | | | to text and text= procs. Remove unnecessary LF for xnVerbatimText in $ proc.
* Add check for nimMaxJeap on occupied memory + allocation size (#21521)Regis Caillaud2023-03-201-11/+20
| | | | | | | | | | | * fix nimMAxHeap checks * move check to alloc pages * remove debug trace * Fix bad indentation How the hell did that pass through CI ?
* NuttX: use posix_spawn for osproc (#21539)Hiroki Noda2023-03-202-9/+11
| | | | | NuttX has standard posix_spawn interface, and can be used with it. * https://nuttx.apache.org/docs/12.0.0/reference/user/01_task_control.html#c.posix_spawn
* NuttX: use accept4 (#21544)Hiroki Noda2023-03-202-2/+2
| | | NuttX supports accept4 since https://github.com/apache/nuttx/commit/48c9d1033659603663f6e35587cf27045a130e0d
* Add `cursor` annotations to lists iterator variables (#21507)Amjad Ben Hedhili2023-03-131-2/+2
| | | | | Add `cursor` annotations to iterator variables * See https://nim-lang.github.io/Nim/destructors.html#the-cursor-pragma
* Remove Defect from raises list in `std/times` (#21473)Jake Leahy2023-03-061-9/+15
| | | | | | | | | * Remove Defect from raises list Since defects aren't tracked anymore this causes a hint to pop up mentioning it * Still track Defect when getting ran with an older Nim version The raises followed a pattern so moving them into a pragma didn't seem to cause any extra problems
* Add warning to specify timeout value in milliseconds, Fix #21449 (#21471)Sultan Al Isaiee2023-03-041-0/+4
| | | a warning message been added to the documentation to remind users that the timeout parameter is expressed in milliseconds, not seconds. to help prevent confusion and unexpected behaviours.
* Allow `futureLogging` in release builds (#21448)Jake Leahy2023-03-021-1/+1
| | | | | | | * Add test case * Fixes 21447: Keeps stackTrace around when using futureLogging * Remove extra whitespace
* remove decades-deprecated Win32 API *A function support (#21315)tersec2023-03-0213-420/+179
|
* asyncdispatch: for NuttX, add destructor to clear global dispatcher. (#21432)Century Systems2023-02-282-1/+13
| | | | | | | | | | | | | * 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>
* Use a cast to suppress KeyError raises (#21451)Antonis Geralis2023-02-281-4/+5
|
* Overrides `=copy` for `PackedSets` (#21417)ringabout2023-02-271-15/+14
|
* Fix: nintendoswitch compilation (#21368)Dmitry Arkhipenko2023-02-254-5/+11
| | | | | * Fix: make nintendoswitch someGcc, remove symlink support for nintendoswitch, add getAppFilename for nintendoswitch * Fix: use getApplHeuristic on nintendoswitch
* Disable threads for os:any (#21425)Francis Thérien2023-02-241-0/+2
|
* fixes #21393 and misc style changes (#21419)Andreas Rumpf2023-02-248-32/+39
| | | | | | | | | * fixes #21393 and misc style changes * progress --------- Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* Fix the TODO portion of recently added `posix_fallocate` on OS X. (#21387)c-blake2023-02-221-2/+17
|
* ioselectors_epoll: for NuttX, limit initial numFD to configured value. (#21421)Century Systems2023-02-222-1/+9
| | | | | | | | | | | | | | | | | ioselectors: ioselectors_epoll: for NuttX, limit initial numFD to configured value. In the NuttX build config, there is a setting called "FS_NEPOLL_DESCRIPTORS". -------- config FS_NEPOLL_DESCRIPTORS int "Maximum number of default epoll descriptors for epoll_create1(2)" default 8 ---help--- The maximum number of default epoll descriptors for epoll_create1(2) -------- For NuttX, change the number of fd arrays allocated by newSelector() to that value. Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp>
* Add `getDataDir` proc (#21408)Ecorous2023-02-211-0/+27
| | | | | | | | | * Add getDataDir() * Update lib/std/private/osappdirs.nim --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Make `Time` work with `std/strformat` (#21409)Jake Leahy2023-02-211-5/+1
| | | | | | | * Add test case * Remove formatValue template for `Time` It didn't handle empty specifier correctly which caused it to be blank with strformat
* NuttX added supports getrlimit(RLIMIT_NOFILE), so remove NuttX specific ↵Century Systems2023-02-213-9/+0
| | | | | | | codes. (#21385) async: NuttX added supports getrlimit(RLIMIT_NOFILE), so remove NuttX-specific codes. Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp>
* `std/xmltree` Add the type of the node when the assertion fails (#21383)Jake Leahy2023-02-171-22/+30
| | | | | Print the type of the node when the assertion fails This way the user actually knows what the type was instead of just knowing it failed
* add .replace() with callback to jsre (#21371)Qinsi (James) ZHU2023-02-161-0/+5
|
* Add support for NuttX RTOS. (#21372)Century Systems2023-02-1612-15/+43
| | | | | | | | | | | | | | | | | | | | | | * Add support for NuttX RTOS. Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp> * lib: pure: asyncdispatch: assign to result. Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp> * lib: std: typedthreads: add support for parameters to adjust Thread Stack Size. Like FreeRTOS/Zephyr, add support for following configurations. -d:nimThreadStackSize=xxxxx -d:nimThreadStackGuard=yyyy Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp> --------- Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp>
* Fix `closeHandle` bug, add `setFileSize`, make `resize` work on Windows (#21375)c-blake2023-02-152-45/+89
| | | | | | | | | | | | | | * Add general purpose `setFileSize` (unexported for now). Use to simplify `memfiles.open` as well as make robust (via hard allocation, not merely `ftruncate` address space allocation) on systems with `posix_fallocate`. As part of this, fix a bad `closeHandle` return check bug on Windows and add `MemFile.resize` for Windows now that setFileSize makes that easier. * Adapt existing test to exercise newly portable `MemFile.resize`. * Since Apple has never provided `posix_fallocate`, provide a fallback. This is presently written in terms of `ftruncate`, but it can be improved to use `F_PREALLOCATE` instead, as mentioned in a comment.
* Refines raises list in osproc (#21323)ringabout2023-02-143-22/+23
| | | | | | | | | | | | | | | | | | | | | | * Remove Exception from raises in closeImpl * Update osproc.nim * refine errors * add ValueError * cast raises * refactor raises lists * Update lib/pure/osproc.nim * Update lib/pure/osproc.nim --------- Co-authored-by: Antonis Geralis <43617260+planetis-m@users.noreply.github.com> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* `std/asyncjs` allow transforming proc types (#21356)Jake Leahy2023-02-141-1/+9
| | | | | * Add test case * Implement JS async transform for nnkProcTy
* This adds `parseutils.parseSize`, an inverse to `strutils.formatSize` (#21349)c-blake2023-02-141-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * This adds `parseutils.parseSize`, an inverse to `strutils.formatSize` which has existed since 2017. It is useful for parsing the compiler's own output logs (like SuccessX) or many other scenarios where "human readable" units have been chosen. The doc comment and tests explain accepted syntax in detail. Big units lead to small numbers, often with a fractional part, but we parse into an `int64` since that is what `formatSize` stringifies and this is an inverse over partial function slots. Although metric prefixes z & y for zettabyte & yottabyte are accepted, these will saturate the result at `int64.high` unless the qualified number is a small fraction. This should not be much of a problem until such sizes are common (at which point another overload with the parse result either `float64` or `int128` could be added). Tests avoids `test()` because of a weakly related static: test() failure as mentioned in https://github.com/nim-lang/Nim/pull/21325. This is a more elemental VM failure. As such, it needs its own failure exhibition issue that is a smaller test case. (I am working on that, but unless there is a burning need to `parseSize` at compile-time before run-time it need not hold up this PR.) * This worked with `int` but fails with `int64`. Try for green tests. * Lift 2-result matching into a `checkParseSize` template and format as a table of input & 2 expected outputs which seems nicer and to address https://github.com/nim-lang/Nim/pull/21349#pullrequestreview-1294407679 * Fix (probably) the i386 trouble by using `int64` consistently. * Improve documentation by mentioning saturation. * Improve documentation with `runnableExamples` and a little more detail in the main doc comment based on excellent code review by @juancarlospaco: https://github.com/nim-lang/Nim/pull/21349#pullrequestreview-1294564155 * Address some more @juancarlospaco code review concerns. * Remove a stray space. * Mention milli-bytes in docs to maybe help clarify why wild conventions are so prone to going case-insensitive-metric. * Add some parens.