| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
It does not return anything.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* [std/parsecfg]use runnableExamples
* Apply suggestions from code review
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
|
|
|
|
| |
hash(ref) (#17858)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Ref #17831 use windows.h
* use header: "windows.h"
* Update syslocks.nim
* Update lib/system/syslocks.nim
|
| |
|
|
|
|
|
|
|
|
| |
* `typeof(voidStmt)` now works
* remove typeOrVoid
* add condsyms, and reference cligen https://github.com/c-blake/cligen/pull/193
* fixup
* changelog [skip ci]
* fixup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* refactor all code that builds csources
* fixup
* nim_csourcesDir_v0 + nim_csourcesDir
* remove deprecated, unused scripts from ci/
* reuse nimCsourcesHash in ci
* simplify CI pipelines by reusing nimBuildCsourcesIfNeeded
* simplify ci_docs.yml by reusing nimBuildCsourcesIfNeeded
* cleanup
* use csources_v1 as destination dir
* fixup
* remove pushCsources
* address comment: remove build.sh support for now
* fixup
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Adhere left-to-right rule for custom pragma priority
* Improve error message for no custom pragmas
* custom pragmas on var/let sym take priority over its type ones
* Workaround & bug
|
|
|
|
| |
* close #9372 add std/tempfile
|
| |
|
|
|
|
|
|
|
|
| |
* CIs: attempt to use csources_v1
* also updated the BSDs
* also updated azure pipelines
* std modules should not itself use the 'std/' import dir...
* compiler has to be careful with std/ for v1 booting
|
|
|
|
|
| |
* [std/tasks]add gcsafe pragmas
* Update tasks.nim
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* close #7998
* workaround genode
* Update lib/system/syslocks.nim
|
|
|
|
|
|
|
|
|
|
| |
Ref #6113 and #6049
The workaround for generics instantiation is unnecessary. It seems to be fixed by another PR I guess.
The test still works. So the changes should be harmless.
https://github.com/nim-lang/Nim/blob/devel/tests/stdlib/tlocks.nim
I also add some inline pragmas.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ReSync with Devel
* ReSync
* https://github.com/timotheecour/Nim/issues/674
* Update lib/js/dom.nim
Co-authored-by: flywind <xzsflywind@gmail.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Co-authored-by: flywind <xzsflywind@gmail.com>
|
|
|
| |
so that it can be used as the base of new locks module with destructors.
|
| |
|
|
|
| |
Signed-off-by: Dankr4d <dude569@freenet.de>
|
|
|
|
|
| |
* fix #17749 SIGPIPE
* fix for windows
|
|
|
|
|
|
| |
* IC exposes typedesc implementation shenanigans; so I change system.default's definition to what it should have been to begin with
* Update lib/system.nim
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
|
| |
|
| |
|
|
|
|
| |
cstring, not cString (#17744)
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* fix array.high/low return type
* Add test for empty array low return type
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
|
|
|
|
|
| |
* Fix getCustomPragmaVal for some multi arg pragmas
* Bootstrap fix
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* getCustomPragma is split up in more usable chunks
* changelog entry
* fix for style checks
* shitty typedesc special casing
* Add since annotation and remove typedesc comments
* Fix typo
* Revert since annotation because it breaks bootstrapping
* Export getCustomPragmaNode conditionally
* Reduce code duplication
* Update since
* Update lib/core/macros.nim
* Apply suggestions from code review
Co-authored-by: Clyybber <darkmine956@gmail.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
| |
`Task.callback` cannot be nil, we need to raise it at debug and release mode
Situations:
- if users create a Task object without using `toTask` and invoke the Task
- if users already move the Task and invoke the Task
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove the use of usrToCell in gcMark [backport:1.2]
Recently, we've discovered a GC crash resulting from inlining of
the memory allocation procs that allowed the compiler to avoid
maintaining any references to the "user pointer" on the stack.
Instead, a "cell pointer" appeared there and all field accesses
were performed with adjusted offsets. This interfered with the
ability of the GC to mark the correct cell in the conservative
stack scans which lead to premature collection of objects.
More details here:
https://github.com/status-im/Nim/commit/af69b3ceae16281efd45cbee4ce1bedd14282304
This commit closes another theoretical loophole that may lead to
the same problem. If a short proc is accessing both the object and
its reference count in a short sequence of instructions, the compiler
may be enticed to reduce the number of registers being used by storing
only a single pointer to the object and using offsets when reading
and writing fields. A perfectly good strategy would be to store only
the cell pointer, so the reference count updates can be performed
without applying offsets. Accessing the fields of the object requires
offsets anyway, but these can be adjusted at compile-time without any
loss. Following this strategy will lead to the same problem of marking
a wrong cell during the conservative stack scan, leading to premature
collection.
The problem is avoided by not using `usrToCell` in `gcMark`. Since
the cell discovery logic can already handle interior pointers, the
user pointers don't need to be adjusted for the GC to function correctly.
|
| |
|
| |
|