| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
| |
fixes #20162; locals doesn't work with ORC
|
| |
|
|
|
|
|
|
|
|
|
| |
(#20198)
* fixes #11953; jsondoc creates no files unless the htmldocs dir is created
* target
* fixes runner
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
foreign packages (#20151)
* fixes #20149; hintAsError/warningAsError ignores foreign packages
* add changelog
* fixes the test
* remove
* fixes tests again
* fix
* I'm careless
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Nim manual says that an implicit conversion to cstring will
eventually not be allowed [1]:
A Nim `string` is implicitly convertible to `cstring` for convenience.
[...]
Even though the conversion is implicit, it is not *safe*: The garbage collector
does not consider a `cstring` to be a root and may collect the underlying
memory. For this reason, the implicit conversion will be removed in future
releases of the Nim compiler. Certain idioms like conversion of a `const` string
to `cstring` are safe and will remain to be allowed.
And from Nim 1.6.0, such a conversion triggers a warning [2]:
A dangerous implicit conversion to `cstring` now triggers a `[CStringConv]` warning.
This warning will become an error in future versions! Use an explicit conversion
like `cstring(x)` in order to silence the warning.
However, some files in this repo produced such a warning. For example,
before this commit, compiling `parsejson.nim` would produce:
/foo/Nim/lib/pure/parsejson.nim(221, 37) Warning: implicit conversion to 'cstring' from a non-const location: my.buf; this will become a compile time error in the future [CStringConv]
/foo/Nim/lib/pure/parsejson.nim(231, 39) Warning: implicit conversion to 'cstring' from a non-const location: my.buf; this will become a compile time error in the future [CStringConv]
This commit resolves the most visible `CStringConv` warnings, making the
cstring conversions explicit.
[1] https://github.com/nim-lang/Nim/blob/d2318d9ccfe6/doc/manual.md#cstring-type
[2] https://github.com/nim-lang/Nim/blob/d2318d9ccfe6/changelogs/changelog_1_6_0.md#type-system
|
| |
|
|
|
|
| |
Fixes bug reported in https://github.com/nim-lang/Nim/pull/20189
affecting nimforum.
|
|
|
|
|
| |
* bootstrap the compiler with nimPreviewSlimSystem
* threads
|
|
|
|
|
| |
* fixes #20132; fixes the broken jsondoc comand
* add testcase
|
| |
|
|
|
|
|
| |
* Warn when casting to a larger type
* Revert change to error message to fix CI
|
| |
|
|
|
|
|
| |
* fixes #20031; uint64 is an ordinal type since 1.0
* Update compiler/semstmts.nim
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* remove shallowCopy for ARC/ORC
* use move
* fix
* more fixes
* typo
* Update lib/system.nim
* follow
* add nodestroy
* move
* copy string
* add a changelog entry
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* .forbids pragma: defining illegal effects for proc types
This patch intends to define the opposite of the .tags pragma: a way to define effects which are not allowed in a proc.
* updated documentation and changelogs for the forbids pragma
* renamed notTagEffects to forbiddenEffects
* corrected issues of forbids pragma
the forbids pragma didn't handle simple restrictions properly and it also had issues with subtyping
* removed incorrect character from changelog
* added test to cover the interaction of methods and the forbids pragma
* covering the interaction of the tags and forbids pragmas
* updated manual about the forbids pragma
* removed useless statement
* corrected the subtyping of proc types using the forbids pragma
* updated manual for the forbids pragma
* updated documentations for forbids pragma
* updated nim docs
* updated docs with rsttester.nim
* regenerated documentation
* updated rst docs
* Update changelog.md
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* updated changelog
* corrected typo
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were doing a very poor job detecting the major version of GCC by
parsing the output of --version.
This patches uses -dumpversion to make this parsing straightforward and
it also fixes a bunch of compiling issues on different platforms with
custom output for --version switches. For example, openSUSE first line
of the output includes the revision number and the parsing that was
being done did mix that number with the major version and breaks
building the nim compiler (as it doesn't find the 3 dots for an X.Y.Z semver
format, hence returning "false").
In this patch, we simply use -dumpversion (which has been at least from
1993, so we are safe :)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* define gcRefc symbols
* add comments
* add a changelog item
* Update changelog.md
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* Update changelog.md
Co-authored-by: Yardanico <tiberiumk12@gmail.com>
Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
Co-authored-by: Yardanico <tiberiumk12@gmail.com>
|
|
|
|
|
|
|
|
|
| |
* Don't make a section be a dropdown if it has no child links
* - Cleaned up code
- Updated tests
* Document what the 'if' is checking
|
|
|
| |
After this you can do goto module from module import
|
|
|
|
|
|
|
|
|
|
|
| |
* Implement type command
- this will be mapped to textDocument/typeDefinition in LSP protocol. It will be
very useful for `nim` in particular because typically most of the time the type
is inferred.
* Update nimsuggest/nimsuggest.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- add additional parameters parsing (other implementations will just
ignore them). E.g. if in RST we have:
.. code:: nim
:test: "nim c $1"
...
then in Markdown that will be:
```nim test="nim c $1"
...
```
- implement Markdown interpretation of additional indentation which is
less than 4 spaces (>=4 spaces is a code block but it's not
implemented yet). RST interpretes it as quoted block, for Markdown it's
just normal paragraphs.
- add separate `md2html` and `md2tex` commands. This is to separate
Markdown behavior in cases when it diverges w.r.t. RST significantly —
most conspicously like in the case of additional indentation above, and
also currently the contradicting inline rule of Markdown is also turned
on only in `md2html` and `md2tex`. **Rationale:** mixing Markdown and
RST arbitrarily is a way to nowhere, we need to provide a way to fix the
particular behavior. Note that still all commands have **both** Markdown
and RST features **enabled**. In this PR `*.nim` files can be processed
only in Markdown mode, while `md2html` is for `*.md` files and
`rst2html` for `*.rst` files.
- rename `*.rst` files to `.*md` as our current default behavior is
already Markdown-ish
- convert code blocks in `docgen.rst` to Markdown style as an example.
Other code blocks will be converted in the follow-up PRs
- fix indentation inside Markdown code blocks — additional indentation
is preserved there
- allow more than 3 backticks open/close blocks (tildas \~ are still not
allowed to avoid conflict with RST adornment headings) see also
https://github.com/nim-lang/RFCs/issues/355
- better error messages
- (other) fix a bug that admonitions cannot be used in sandbox mode; fix
annoying warning on line 2711
|
|
|
|
|
|
| |
While this fix seems innocent,
this unlocks the hidden behavior of
method calls not being able to call
gensym'ed routines inside templates.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Change `styleCheck` to ignore foreign packages
* Symbols from foreign packages are now ignored.
* Fixed `styleCheck` violations in `compiler` package.
* Added symbol ownership to custom annotation pragmas.
* Minor refactors to cleanup style check callsites.
* Minor internal documentation of reasons why a symbol isn't checked.
Style violations were fixed in the compiler after thet were exposed by
the changes. The compiler wouldn't compile otherwise.
Symbol ownership for custom pragma annotations is needed for checking
the annotation's style. A NPE was raised otherwise.
Fixes #10201
See also nim-lang/RFCs#456
* Fix a misunderstanding about excluding field style checks
I had refactored the callsites of `styleCheckUse` to apply the DRY
principle, but I misunderstood the field access handling in a template
as a general case. This corrects it.
* Fix some `styleCheck` violations in `compiler/evalffi`
The violations were exposed in CI when the compiler was built with
libffi.
* Removed some uneeded transitionary code
* Add changelog entry
Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
|
|
|
|
|
|
|
| |
* replace gcc asm with __asm__ and add a test
* update test case to specify gcc or clang and not cpp
Co-authored-by: daniel <danielclarke@wearepopgun.com>
|
|
|
|
| |
(#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
|
| |
|