summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* fixes #23445; fixes #23418 [backport] (#23699)Andreas Rumpf2024-06-093-1/+40
|
* nimsuggest v3+ handles unknownFile (#23696)Juan M Gómez2024-06-081-5/+2
|
* remove pkg "pylib" (#23691)ringabout2024-06-071-1/+0
| | | https://github.com/Yardanico/nimpylib is 404 now
* fixes #23354; [backport] (#23685)Andreas Rumpf2024-06-072-0/+20
|
* fixes #22672; Destructor not called for result when exception is thrown (#23267)ringabout2024-06-065-5/+51
| | | fixes #22672
* fixes #22510 (#23100)Andreas Rumpf2024-06-064-27/+187
|
* make `std/options` compatible with strictdefs (#23675)ringabout2024-06-051-6/+6
|
* fixes #5901 #21211; don't fold cast function types because of gcc 14 (#23683)ringabout2024-06-052-2/+8
| | | | | | | | | follow up https://github.com/nim-lang/Nim/pull/6265 fixes #5901 fixes #21211 It causes many problems with gcc14 if we fold the cast function types. Let's check what it will break
* fix noreturn/implicit discard check logic (#23681)metagn2024-06-056-74/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | fixes #10440, fixes #13871, fixes #14665, fixes #19672, fixes #23677 The false positive in #23677 was caused by behavior in `implicitlyDiscardable` where only the last node of `if`/`case`/`try` etc expressions were considered, as in the final node of the final branch (in this case `else`). To fix this we use the same iteration in `implicitlyDiscardable` that we use in `endsInNoReturn`, with the difference that for an `if`/`case`/`try` statement to be implicitly discardable, all of its branches must be implicitly discardable. `noreturn` calls are also considered implicitly discardable for this reason, otherwise stuff like `if true: discardableCall() else: error()` doesn't compile. However `endsInNoReturn` also had bugs, one where `finally` was considered in noreturn checking when it shouldn't, another where only `nkIfStmt` was checked and not `nkIfExpr`, and the node given for the error message was bad. So `endsInNoReturn` now skips over `skipForDiscardable` which no longer contains `nkIfStmt`/`nkCaseStmt`/`nkTryStmt`, stores the first encountered returning node in a var parameter for the error message, and handles `finally` and `nkIfExpr`. Fixing #23677 already broke a line in `syncio` so some package code might be affected.
* Add linux/loongarch64 support in 'compiler/installer.ini' (#23672)qiangxuhui2024-06-041-1/+1
| | | | | The files(like `build/build.sh`)generated by the command `koch csource` do not contain complete `linux/loongarch64` support. This patch will fix it.
* fixes openarray hoist with gcc 14 (#23647)ringabout2024-06-042-2/+18
| | | | | | | blocks https://github.com/nim-lang/Nim/pull/23673 --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* [backport] test more packages (#23671)Miran2024-06-031-0/+13
| | | | These packages are some of the dependencies of Nimbus with shorter testing times.
* rework ctypes with gcc 14 (#23636)ringabout2024-06-021-0/+5
|
* improve view types for jsgen; eliminate unnecessary copies of view types ↵ringabout2024-06-022-2/+21
| | | | (#23654)
* #Fixes #23657 C++ compilation fails with: 'T1_' was not declared in t… ↵Juan M Gómez2024-06-025-24/+103
| | | | | (#23666) …his scope
* fixes#23665; rework spawn with gcc 14 and fixes other tests (#23660)ringabout2024-06-023-3/+16
| | | fixes #23665
* fixes #22798; Duplicate libraries linker warning (i.e., '-lm') on macOS (#23292)ringabout2024-06-022-2/+2
| | | | | | | | | | | | | | | fixes #22798 Per https://stackoverflow.com/questions/33675638/gcc-link-the-math-library-by-default-in-c-on-mac-os-x and https://stackoverflow.com/questions/30694042/c-std-library-dont-appear-to-be-linked-in-object-file > There's no separate math library on OSX. While a lot of systems ship functions in the standard C math.h header in a separate math library, OSX does not do that, it's part of the libSystem library, which is always linked in. required by https://github.com/nim-lang/Nim/pull/23290
* fixes #23663; Add hash() for Path (#23664)ringabout2024-05-312-6/+17
| | | fixes #23663
* remove winim from important packages; since CI doesn't check windows ↵ringabout2024-05-301-1/+1
| | | | | platform (#23661) Cannot compile on Linux reliably
* Treat CJK Ideographs as letters in `isAlpha()` (#23651)Alexander Kernozhitsky2024-05-293-1982/+1995
| | | | | | | | | | | | | | | | | Because of the bug in `tools/parse_unicodedata.nim`, CJK Ideographs were not considered letters in `isAlpha()`, even though they have category Lo. This is because they are specified as range in `UnicodeData.txt`, not as separate characters: ``` 4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;; 9FEF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;; ``` The parser was not prepared to parse such ranges and thus omitted almost all CJK Ideographs from consideration. To fix this, we need to consider ranges from `UnicodeData.txt` in `tools/parse_unicodedata.nim`.
* revert #23436; remove workaround (#23653)ringabout2024-05-281-2/+0
| | | revert #23436
* fixes #23635; tasks.toTask Doesn't Expect a Dot Expression (#23641)ringabout2024-05-272-4/+56
| | | | | | | fixes #23635 --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* fixes #22852; fixes #23435; fixes #23645; SIGSEGV when slicing string or ↵ringabout2024-05-272-5/+10
| | | | | | | | | | | | | | | | | | seq[T] with index out of range (#23279) follow up https://github.com/nim-lang/Nim/pull/23013 fixes #22852 fixes #23435 fixes #23645 reports rangeDefect correctly ```nim /workspaces/Nim/test9.nim(1) test9 /workspaces/Nim/lib/system/indices.nim(116) [] /workspaces/Nim/lib/system/fatal.nim(53) sysFatal Error: unhandled exception: value out of range: -2 notin 0 .. 9223372036854775807 [RangeDefect] ```
* Handle arbitrarily long symlink target in `expandSymlinks()` (#23650)Alexander Kernozhitsky2024-05-271-8/+10
| | | | | | | | | | | | | | | For now, `expandSymlinks()` can handle only symlinks with lengths up to 1024. We can improve this logic and retry inside a loop with increasing lengths until we succeed. The same approach is used in [Go](https://github.com/golang/go/blob/377646589d5fb0224014683e0d1f1db35e60c3ac/src/os/file_unix.go#L446), [Rust](https://github.com/rust-lang/rust/blob/785eb65377e5d7f8d8e8b82ede044212bbd2d76e/library/std/src/sys/pal/unix/fs.rs#L1700) and [Nim's `getCurrentDir()`](https://github.com/nim-lang/Nim/blob/devel/lib/std/private/ospaths2.nim#L877), so maybe it's a good idea to use the same logic in `expandSymlinks()` also.
* Prevent font flashing in the docs (#23622)Nils Lindemann2024-05-2713-39/+52
| | | | | | | | | | ... by moving the Google font includes near the top of the head. By including them as early as possible, they are known, when the browser starts rendering the body. Test it by making the change manually in `doc/html/system.html` and then press ctrl+f5 (reload without cache). This removes the font flashing. Tested in Chrome and Firefox.
* closes #13426; adds a test case (#23642)ringabout2024-05-241-0/+87
| | | closes #13426
* Updates nimble (#23601)Juan M Gómez2024-05-231-1/+3
|
* Skip tyAlias inside semTypeTraits in case a concept accidently emits one ↵Jason Beetham2024-05-232-1/+12
| | | | (#23640)
* Minor refactoring (#23637)Andreas Rumpf2024-05-231-17/+15
|
* fixes `reifiedOpenArray`; `nkHiddenStdConv` is PathKinds1 not PathKinds0 ↵ringabout2024-05-221-2/+8
| | | | (#23633)
* fixes #23627; Simple destructor code gives invalid C (#23631)ringabout2024-05-212-8/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | fixes #23627 ```nim type TestObj = object of RootObj TestTestObj = object of RootObj testo: TestObj proc `=destroy`(x: TestTestObj) = echo "Destructor for TestTestObj" proc testCaseT() = echo "\nTest Case T" let tt1 {.used.} = TestTestObj(testo: TestObj()) ``` When generating const object fields, it's likely that we need to generate type infos for the object, which may be an object with custom hooks. We need to generate potential consts in the hooks first. https://github.com/nim-lang/Nim/pull/20433 changed the semantics of initialization. It should evaluate`BracedInit` first.
* doc(format): ospaths2,strutils: followup #23560 (#23629)lit2024-05-202-9/+9
| | | followup #23560
* doc(format): system.nim: doc of hostCPU for `loongarch64` (#23621)lit2024-05-171-1/+1
| | | | | In doc, `loongarch64` used to be written as `'"loongarch64"'` since it's [supported](https://github.com/nim-lang/Nim/pull/19223)
* provides a `$` function for `Path` (#23617)ringabout2024-05-172-0/+4
| | | Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* fixes #16671; openarray conversion for object construction (#23618)ringabout2024-05-162-3/+29
| | | | | fixes #16671 related to https://github.com/nim-lang/Nim/pull/18911
* Support NetBSD/aarch64 (#23616)PHO2024-05-164-3/+6
| | | | | I could trivially port Nim to NetBSD/aarch64 because it already supported NetBSD and aarch64. I only needed to generate `c_code` for this combination.
* fixes lifting subtype calling parent's hooks (#23612)ringabout2024-05-152-2/+28
| | | | | ref https://forum.nim-lang.org/t/11587 Tested with `gcc version 14.0.1 20240412` locally
* closes #15778; adds a test case (#23613)ringabout2024-05-151-7/+29
| | | closes #15778
* fixes deprecation messages and adds missing commas (#23609)ringabout2024-05-141-3/+3
|
* fixes openarray views default values in JS (#23607)ringabout2024-05-142-2/+17
|
* fixes testament matrix doesn't work with other backends which left many JS ↵ringabout2024-05-146-11/+34
| | | | | | tests untested (#23592) Targets are not changes, which means the C binary is actually tested for JS backend
* ignore modules when looking up symbol with expected type (#23597)metagn2024-05-143-1/+20
| | | | | | | | | | | | | | | | fixes #23596 When importing a module and declaring an overloadable symbol with the same name as the module in the same scope, the module symbol can take over and make the declared overload impossible to access. Previously enum overloading had a quirk that bypassed this in a context where a specific enum type was expected but this was removed in #23588. Now this is bypassed in every place where a specific type is expected since module symbols don't have a type and so wouldn't be compatible anyway. But the issue still exists in places where no type is expected like `let x = modulename`. I don't see a way of fixing this without nerfing module symbols to the point where they're not accessible by default, which might break some macro code.
* re-enable tests (#23591)ringabout2024-05-101-4/+2
|
* Allow to `exportc` params. (#23396)Juan M Gómez2024-05-101-1/+1
| | | | By allowing `exportc` in params one can decide the name of a param or to dont mangle them.
* Add directory input support to nimpretty (#23590)Mads Hougesen2024-05-101-1/+7
| | | Feel free to close if this an unwanted addition :)
* unordered enum for better interoperability with C (#23585)ringabout2024-05-104-5/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ref https://forum.nim-lang.org/t/11564 ```nim block: # unordered enum block: type unordered_enum = enum a = 1 b = 0 doAssert (ord(a), ord(b)) == (1, 0) block: type unordered_enum = enum a = 1 b = 0 c doAssert (ord(a), ord(b), ord(c)) == (1, 0, 2) block: type unordered_enum = enum a = 100 b c = 50 d doAssert (ord(a), ord(b), ord(c), ord(d)) == (100, 101, 50, 51) block: type unordered_enum = enum a = 7 b = 6 c = 5 d doAssert (ord(a), ord(b), ord(c), ord(d)) == (7, 6, 5, 8) ```
* remove bad type inference behavior for enum identifiers (#23588)metagn2024-05-102-7/+22
| | | | | | | | | | | | | | | refs https://github.com/nim-lang/Nim/issues/23586#issuecomment-2102113750 In #20091 a bad kind of type inference was mistakenly left in where if an identifier `abc` had an expected type of an enum type `Enum`, and `Enum` had a member called `abc`, the identifier would change to be that enum member. This causes bugs where a local symbol can have the same name as an enum member but have a different value. I had assumed this behavior was removed since but it wasn't, and CI seems to pass having it removed. A separate PR needs to be made for the 2.0 branch because these lines were moved around during a refactoring in #23123 which is not in 2.0.
* adds Nim-related mimetypes back (#23589)ringabout2024-05-102-0/+9
| | | ref https://github.com/nim-lang/Nim/pull/23226
* Improve strutils.rsplit doc, proc and iterator have oppose result order. ↵lit2024-05-101-6/+6
| | | | | | | | | | | | | | (#23570) [`rsplit iterator`](https://nim-lang.org/docs/strutils.html#rsplit.i,string,char,int) yields substring in reversed order, while [`proc rsplit`](https://nim-lang.org/docs/strutils.html#rsplit%2Cstring%2Cchar%2Cint)'s order is not reversed, but its doc only declare ``` The same as the rsplit iterator, but is a func that returns a sequence of substrings. ```
* fixes #23552; Invalid codegen when trying to mannualy delete distinct seq ↵ringabout2024-05-082-6/+16
| | | | | (#23558) fixes #23552