| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
(#19988)
|
|
|
|
|
|
|
| |
* allow dots in defined()
refs https://github.com/nim-lang/RFCs/issues/181
* mention accents in older versions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* optimize hot spots fro orc-booting compiler
* remove GC_ref
* minor
* remove comments
* Revert "minor"
This reverts commit 4965a190a2d6457044faa1442795e55bdad57602.
* emulate cursor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix nested finally handling in closureiters
* Fix CI
* review comment
* third time the charm
* Update compiler/closureiters.nim
Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com>
Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com>
|
| |
|
| |
|
|
|
|
|
| |
* cache rope
* add threadvar
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix vcc rawsetjmp
* changing `_longjmp()` to `longjmp()` and
`_setjmp()` to `setjmp()`
* fix
* fix setjmp to clangcl on Windows
* fix genTrySetjmp() to clangcl on Windows
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* once C++, always C++
When using `{.compile: "file.cc".}` in a nim module, even when compiling
with `nim c` the C++ compiler should be used - once any C++ file has
been compiled, the C++ linker also needs to be used.
* more strict C++ check
* simplify code
|
|
|
|
|
|
|
| |
(#19918)
* dec inLoop after exiting the while scope in computeLiveRanges
* add testcase
|
|
|
|
|
| |
* ref #19830; multiple definition of in Nim generated static libraries
* fix compile errors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#19902) [backport]
* revert #12217 since the root problem seems to have been fixed; fix #15974;fix #12551; fix #19464
* fix #16020; fix #16780
* fix tests and #16613
* fix #14553
* fix #19909; skip skipRegisterAddr
* fix #18641
|
|
|
| |
correct comment opcDeref => opcLdDeref
|
|
|
| |
refactor stdlib.marshal.load
|
|
|
|
|
|
|
| |
* Better range error messages
* Revert to old behavior for arrays
* Small corrections
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Initial implementation of nimsuggest v3
Rework `nimsuggest` to use caching to make usage of ide commands more efficient.
Previously, all commands no matter what the state of the process is were causing
clean build. In the context of Language Server Protocol(LSP) and lsp clients
this was causing perf issues and overall instability. Overall, the goal of v3 is
to fit to LSP Server needs
- added two new commands:
- `recompile` to do clean compilation
- `changed` which can be used by the IDEs to notify that a particular file has been changed.
The later can be utilized when using LSP file watches.
- `globalSymbols` - searching global references
- added `segfaults` dependency to allow fallback to clean build when incremental
fails. I wish the error to be propagated to the client so we can work on fixing
the incremental build failures (typically hitting pointer)
- more efficient rebuild flow. ATM incremental rebuild is triggered when the
command needs that(i. e. it is global) while the commands that work on the
current source rebuild only it
Things missing in this PR:
- Documentation
- Extensive unit testing.
Although functional I still see this more as a POC that this approach can work.
Next steps:
- Implement `sug` request.
- Rework/extend the protocol to allow better client/server communication.
Ideally we will need push events, diagnostics should be restructored to allow
per file notifications, etc.
- implement v3 test suite.
- better logging
* Add tests for v3 and implement ideSug
* Remove typeInstCache/procInstCache cleanup
* Add ideChkFile command
* Avoid contains call when adding symbol info
* Remove log
* Remove segfaults
|
|
|
| |
fix #19199; properly fold float conversion
|
|
|
| |
remove unused procs
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add helpful suggestion, should always apply
* mention var param limitation in async docs
* Update compiler/lambdalifting.nim
whoops thanks
Co-authored-by: flywind <43030857+xflywind@users.noreply.github.com>
Co-authored-by: flywind <43030857+xflywind@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
| |
* Add two debugutils procs that native debuggers can break on use to
execute commands when code of interest is being compiled.
* Add GDB and LLDB programs to disable and enable breakpoints and
watchpoints when code of interest is being compiled.
* Extend the `intern.rst` docs regarding debugging the compiler.
Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
|
|
|
|
|
| |
* remove noop option gc:v2
* changelog
|
|
|
| |
not generate initStackBottomWith in arc/orc
|
| |
|
|
|
|
|
|
|
| |
* RST: improve simple tables
* nim 1.0 gotchas
* Still allow legacy boundaries like `----`
|
|
|
|
|
| |
Fixes #18201
Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Refactor and doc package handling, module name mangling
* Consolidate, de-duplicate and extend package handling
* Alter how duplicate module names of a package are handled
* Alter how module names are mangled
* Fix crash when another package is named 'stdlib' (test case added)
* Doc what defines a package in the manual
Modules with duplicate names within a package used to be given 'fake'
packages to resolve conflicts. That prevented the ability to discern if
a module belonged to the current project package or a foreign package.
They now have the proper package owner and the names are mangled in a
consistent manner to prevent codegen clashes.
All module names are now mangled the same. Stdlib was treated special
before, but now it is same as any other package. This fixes a crash
when a foreign package is named 'stdlib'.
Module mangling is altered for both file paths and symbols used by the
backends.
Removed an unused module name to package mapping that may have been
intended for IC. The mapping was removed because it wasn't being used
and was complicating the issue of package modules with duplicate names
not having the proper package owner assigned.
* Fix some tests
* Refactor `packagehandling`
* Remove `packagehandling.withPackageName` and its uses
* Move module path mangling from `packagehandling` to `modulepaths`
* Move `options.toRodFile` to `ic` to break import cycle
* Changed import style to match preferred style
Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
|
|
|
| |
remove unused opcSubstr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix global destructor injection for JS backend
* Moved global destructors injection before the final call to transform and
generate JS code. It had previously been after and thus not no JS was
generated for them.
* Added some internal documentation of `jsgen`.
* Enable a current destructor test to cover the JS backend as well.
* Fixes the JS aspect of #17237.
* Fixed global destructor injection order for JS backend
Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
|
| |
|
| |
|
|
|
|
| |
Currently `struct.field` will generate a node with `info` that points to the
symbol definition instead of having the actual node location.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* try using endsWith
* use memcmp
* add cache
* cleanup
* better
* minor
* fix
* improve test coverage for methods with ARC
|
|
|
|
| |
code generation (#19712)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
1.6] (#19723)
* fix #19435; openArray wronyly registers typebounds
* add testcase
* don't create TypeBoundOps for tyOpenArray, tyVarargs
|
| |
|
| |
|
|
|
|
|
| |
* fix #17286 nim check -b:js works
* fix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* stylecheck usages part two: stdlib cleanup
typeinfo.nim: importCompilerProc => importcompilerproc
nre.nim: newLineFlags => newlineFlags
system.nim: JSRoot => JsRoot
ref #19319
* prefer importCompilerProc
* fix stylecheck error with asyncdispatch
it is a partial regression since #12842
* add tests
* don't use echo in tests
* fix stylecheck bug with nre
* Update compiler/linter.nim
* no need to check dotexpr again
* neither did let/var/const
|
|
|
| |
- make sure `suggestSym` is called after `PSym.typ` is set.
|
|
|
|
|
| |
* fix #18986; Import/except doesn't work on devel [backport: 1.6]
* add testcase
|
|
|
|
|
|
|
|
|
|
| |
* Fix bug in freshVarForClosureIter. Fixes #18474.
freshVarForClosureIter was returning non-fresh symbols sometimes.
Fixed by making addField return the generated PSym.
* remove discardable
Co-authored-by: Nick Smallbone <nick@smallbone.se>
|
| |
|
|
|
|
|
|
| |
1.6] (#19641)
* fix #8219; nim check/dump shouldn't run single nimscript project [backport: 1.6]
|
| |
|