| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ic fixed navigator crash when track wrong/missed
Also fixed an issue with getNimcacheDir not observing the outDir.
* closer, but not sure how to test[skip ci][ci skip]
* IC navigator: added support for include files
* update
* make posix happy via expandFilename
* update
Co-authored-by: Saem Ghani <saemghani+github@gmail.com>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* minor IC documentation update
* IC: refactoring: removed the 'shared' type and fields, these were a leftover from an earlier design
|
|
|
|
|
|
|
| |
* fix nim js cmp fails at CT
* fix #12521
* address comments
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* [ci skip] document compiler/ic/rodfiles.nim
Why?
* understand how rodfile module works and a bit of the format
* leave notes behind for others
* rather than Araq guess what others need, he can fix what other glean
* possible model for making the compiler more aproachable
Bonus:
* might have found a minor bug in `loadSection`
* Update compiler/ic/rodfiles.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
| |
|
| |
|
|
|
| |
Signed-off-by: Dankr4d <dude569@freenet.de>
|
| |
|
|
|
|
|
| |
* fix #17749 SIGPIPE
* fix for windows
|
|
|
|
|
| |
Ref https://github.com/nim-lang/Nim/pull/17759
https://github.com/LemonBoy/jstin/blob/master/src/jstin.nim is already archived and cannot pass CI anymore.
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
| |
* IC: yet another embarrassing omission
* VM: fewer hacks that kept IC from working
|
| |
|
| |
|
|
|
|
|
|
|
| |
gave illegal code (#17455)
* refs #17292 fix `repr` with (discard)
* add tests
* add more tests
|
| |
|
| |
|
| |
|
|
|
| |
* IC navigator: first basic test
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Allow use of colons inside fmt
allowing colons inside fmt by replacing the format specifier delimiter lets arbitrary nim code be run within fmt expressions.
* oops
* Update strformat.nim
* one space.
* Update lib/pure/strformat.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Update lib/pure/strformat.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* changed parser to ignore ':' within parens
* Update strformat.nim
* Update lib/pure/strformat.nim
Co-authored-by: flywind <xzsflywind@gmail.com>
* formatting,documentation,backslash escapes
Adding support for evaluating expressions by special-casing parentheses causes this regression: `&"""{ "(hello)" }"""` no longer parses.
In addition, code such as &"""{(if open: '(' else: ')')}""" wouldn't work.
To enable that, as well as the use of, e.g. Table constructors inside curlies, I've added backslash escapes.
This also means that if/for/etc statements, unparenthesized, will work, if the colons are escaped, but i've left that under-documented.
It's not exactly elegant having two types of escape, but I believe it's the least bad option.
* not sure about how this works
* changelog
* changelog
* added json strformat test
* pulled my thumb out and wrote a parser
* more escapes and string tests
* ok, now i'm sure it's broken but cant get a failing test
* found it
* ok, that'll do
* did i delete this?
* spcng
* spacing
* messed up where changelogs are supposed to go
* ocd
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Co-authored-by: flywind <xzsflywind@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
| |
* IC: first steps towards 'nim check --def --ic:on'
* IC navigator: deduplicate output lines
* IC navigator: progress
* IC navigator: use a different nimcache entry
* IC navigator: special logic for templates/macros
* IC navigator: proper error messages
* IC navigator: prepare for testing code; document only what currently works somewhat
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|