| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
| |
fixes #9550
|
| |
|
|
|
|
|
|
|
|
|
| |
fixes #23422
ref https://github.com/nim-lang/Nim/issues/20997
https://github.com/nim-lang/Nim/pull/21165
The function `cardSet` is used for large sets that are stored in the
form of arrays. It shouldn't be passed as a pointer
|
|
|
| |
fixes #23429
|
|
|
| |
Refer to the discussion in #23439.
|
|
|
|
|
|
|
|
|
|
| |
internal errors to fatal errors. (#23443)
This fixes a nimsuggest crash when opening:
beacon_chain/consensus_object_pools/blockchain_dag.nim
from the nimbus-eth2 project and many other .nim files (44 files, to be
precise) in the same project.
Replaces: https://github.com/nim-lang/Nim/pull/23402
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
where sizeof(int) < 4 (#23433)
Fixes an issue that comes up when using strutils.`%` or any other
strutils/strformat feature that uses the unicode lookup tables behind
the scenes, on systems where ints are than 32-bit wide.
Tested with:
```bash
./koch test cat lib
```
Refer to the discussion in #23125.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fix to the atomicArc looks to use `-1` as the check value from the
`SharedPtr` solution. However, it should be `-rcIncrement` since the
refcount is bit shifted in ARC/ORC.
I discovered this playing around doing atomic updates of refcounts in a
user library.
Related to https://github.com/nim-lang/Nim/issues/22711
@ringabout I believe you ported the sharedptr fix?
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
# Description
When using `--hintAsError`, we want some red color to appear in the
logs.
Same is already done for `warningAsError`.
# Cherry-picking to Nim 1.6
Would be nice to cherry-pick this and the `warningAsError` log highlight
to 1.6 branch, as it's used in status-desktop.
|
| |
|
|
|
| |
adding link to generic == for tuples in Open and Closed symbols example
|
|
|
| |
fixes #23401
|
|
|
| |
Signed-off-by: soonsouth <cuibuwei@163.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds nimsuggest support for displaying inlay hints for exceptions.
An inlay hint is displayed around function calls, that can raise an
exception, which isn't handled in the current subroutine (in other
words, exceptions that can propagate back to the caller). On mouse hover
on top of the hint, a list of exceptions that could propagate is shown.
The changes, required to support this are already commited to
nimlangserver and the VS code extension. The extension and the server
allow configuration for whether these new exception hints are enabled
(they can be enabled or disabled independently from the type hints), as
well as the inlay strings that are inserted before and after the name of
the function, around the function call. Potentially, one of these
strings can be empty, for example, the user can choose to add an inlay
hint only before the name of the function, or only after the name of the
function.
|
|
|
|
|
| |
Problem described here: https://github.com/karaxnim/karax/issues/284
Co-authored-by: Chancy Kennedy <chancy@conciergecloset.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
fix #23381
As for the read function, the original plan was to use lent for
annotation, but after my experiments, it still produced copies, so I had
to move it out.
Now the `read` function cannot be called repeatedly
|
|
|
|
|
|
|
|
| |
fixes #23399
The new case introduced in #21657 is triggered by `efWantStmt` but the
`when` statement doesn't normally propagate this flag, so propagate it
when the `semCheck` param in `semWhen` is true which happens when the
`when` statement is `efWhenStmt` anyway.
|
|
|
|
| |
fixes #23382
follow up https://github.com/nim-lang/Nim/pull/15823
|
|
|
|
| |
pragma (#23369)
|
| |
|
|
|
|
|
|
|
|
| |
(#23377)
Windows's nodejs `isAbsolute` issue has been resolved by [this
PR](https://github.com/nim-lang/Nim/pull/23365).
So we can improve the coverage for Windows.
|
|
|
| |
fixes #22166
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lambdas (#23368)
fixes #22284
fixes #22282
```
Error: j(uRef, proc (config: F; sources: auto) {.raises: [].} = discard ) can raise an unlisted exception: Exception
```
The problem is that `n.typ.n` contains the effectList which shouldn't
appear in the parameter of a function defintion. We could not simply use
`n.typ.n` as `n[paramsPos]`. The effect lists should be stripped away
anyway.
|
|
|
| |
fixes #23378
|
|
|
| |
closes #22846
|
| |
|
|
|
| |
closes #15751
|
|
|
|
|
|
| |
cstring to string via cstrToNimstr (#23371)
fixes #12703
ref #19588
|
|
|
| |
closes #10219
|
|
|
|
|
|
|
|
|
| |
static/dynlib libraries (#23357)
fixes #20945
fixes #18262
todo
- [ ] perhaps export with lib prefix when the option is enabled
|
|
|
|
|
|
|
|
|
|
|
| |
When target is nodejs,
`isAbsolute` used to only check in the POSIX flavor,
i.e. for js backend on Windows,
```nim
isAbsolute(r"C:\Windows") == false
```
This fixes it.
|
| |
|
|
|
| |
since nimrtl.dll is created with `--threads:on`
|
|
|
| |
ref #23333
|
|
|
|
| |
Unfortunately we cant trick the debugger when targeting C++ so this one
also needs to wait for our own debugger adapter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For this
[proc](https://github.com/nim-lang/Nim/blob/773c066634d831a968bb464eab35b25a00026525/lib/pure/browsers.nim#L83)
`proc openDefaultBrowser*() {.since: (1, 1).}`:
though it's documented to open default browser with `about:blank` page,
it behaves differently:
- On Windows, it failed and open no window
- On Linux(Debian with Kde), it opens not default browser but
`Konqueror`
I have paid much effort to implement this variant, but even the
implementation on Windows is considerably complex.
In short, it's not only hard but unworthy to fix this.
Just as Araq
[said](https://github.com/nim-lang/Nim/issues/22250#issuecomment-1631360617),
we shall remove the `proc openDefaultBrowser*() {.since: (1, 1).}`
variant
---------
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, I don't have syntax highlighting (+ no/wrong
jump-to-definition) for some import statement forms, namely:
- `import module/name/with/(slashes)`
- `import (mod) as alias`
- `import basemod/[ (sub1), (sub2) ]`
With this patch, highlight/def will work for the regions indicated by
parentheses.
|
|
|
| |
fixes #23273
|
|
|
|
|
|
|
|
|
| |
ref #23354
The new move analyzer requires types that have the tfAsgn flag
(otherwise `lastRead` will return true); tfAsgn is included when the
destructor is not trival. But it should consider the assignement for
objects in this case because objects might have a trival destructors but
it's the assignement that matters when it is passed to sink parameters.
|
|
|
|
|
|
| |
fixes #13481;
fixes #22708
Otherwise it gives implicit results or bad codegen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is just one of those tiny steps towards the goal of an "optimized"
C and C++ codegen I raised elsewhere before - what does me babbling
"optimized" mainly entail?
(not mutually-exclusive ascertainment proposals following:)
- less and simplified resulting code: easier to pick up/grasp for the
C/C++ compiler for to do its own optimization heuristics, less parsing
effort for us mere humans trying to debug, especially in the case of
interop
- build time reduction: less code emission I/O, runtime string
formatting for output...
- easier access for fresh contributors and better maintainability
- interop improvements
- further runtime optimizations
I am eagerly looking forward to the results of the LLVM-based
undertakings, but I also think we can do a bit better (as outlined
above) with our current C/C++ backends till those come to fruition.
**Long story short**: this PR here focuses on the C++ backend,
augmenting the current codegen method of establishing "temporary"
variables by using C++11's auto type deduction. The reasons for adopting
an "Almost Always Auto" style have been collected [here
](https://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/)
for the C++ world. For those hopping between C++'s and Nim's realms,
this change also results in a bit less code and less work for the
codegen part (no redundant `getTypeDesc`s): no need to tell the C++
compiler the type it already knows of (in most cases).
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also prevents unwanted `raises: [ValueError]` effects from bubbling
up from correct format strings which makes `fmt` broadly unusable with
`raises`.
The old runtime-based `formatValue` overloads are kept for
backwards-compatibility, should anyone be using runtime format strings.
---------
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
| |
(#23363)
…ort]
|
|
|
|
|
|
| |
ref https://forum.nim-lang.org/t/11052
![image](https://github.com/nim-lang/Nim/assets/43030857/1df87691-32d9-46b5-b61b-6b9f7cc94862)
|
|
|
|
|
|
| |
Reverts nim-lang/Nim#23352
ref
https://github.com/SciNim/Measuremancer/commit/e2e994b21c162d5c382f04383893f2abb12af51f
|
|
|
|
| |
iterators and try/catch-like constructions (#23317)
|
|
|
| |
ref https://github.com/SciNim/Measuremancer/issues/17
|
|
|
|
| |
outside of a 'type' block (#23331)
|