summary refs log tree commit diff stats
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* runnableExamples imports std/assertions by default (#21658)metagn2023-04-141-1/+3
| | | closes https://github.com/nim-lang/RFCs/issues/499
* make grammar a bit more honest (#21655)metagn2023-04-141-9/+10
| | | | | | | | | | | * test if expr parsing expr refs #19802 * in any case * just be honest * fix symbol/keyword issue too
* custom pragmas: correct error condition, remove outdated symkind whitelist ↵metagn2023-04-131-10/+18
| | | | | | | | | | | | | | | (#21653) * test not restricting custom pragma applied symbols fixes #21652 * fix other test * different patch * fix tests * actually test #18212 and other routines
* fixes #20900; Calling template through from generic function across module ↵ringabout2023-04-131-0/+1
| | | | | | | fails to build (#21649) * fixes #20900; Calling template through from generic function across module fails to build * sanother way
* set module symbol type to None instead of nil for discard check (#21657)metagn2023-04-132-12/+19
| | | | | | | * set module symbol type to None instead of nil fixes #19225 * alright
* fixes #21632; enforce deref for `wasMoved` in ORC (#21647)ringabout2023-04-122-5/+5
| | | fixes #21632; enforce deref for `wasMoved`
* int64/uint64 as bigint in JS (#21613)metagn2023-04-113-27/+189
| | | | | | | | | | | * int64/uint64 as bigint in JS * fix CI * convert to compile option * fix lie * smaller diff, changelog entry
* fix #15691 (#21623)metagn2023-04-111-2/+0
| | | `semProcAux` has a check for `checkMinSonsLen(n, bodyPos + 1)`
* `proc` typeclass accounts for `iterator`, call conventions + `nil` fix + ↵metagn2023-04-115-23/+37
| | | | | | | | | | | | | document typeclass AST (#21629) * test fix #16546 #16548 + another issue * please don't tell me other packages do this * fix CI + test typeclass callconv pragma * better logic in parser * docs and changelog
* fixes booting warnings (#21583)ringabout2023-04-104-6/+3
|
* remove useVersion (#21626)metagn2023-04-085-33/+6
| | | test removing useVersion
* `for` loop expression can now have generated `iterator`'s called (#21627)Jason Beetham2023-04-081-1/+2
| | | A for expression now can have a generated iterator, allowing for more composable iterables
* fixes #21617; createTypeBoundOps with PContext in order to instantiate ↵ringabout2023-04-074-12/+20
| | | | | | | generics (#21619) * fixes #21617; createTypeBoundOps with PContext in order to instantiate generics * keep idgen
* fix #19430 (#21603)metagn2023-04-061-2/+3
|
* warn against `a, b = val` in routine arguments (#21604)metagn2023-04-062-0/+12
| | | closes https://github.com/nim-lang/RFCs/issues/480
* Fix nim doc crash with group referencing & include (#21600)Andrey Makarov2023-04-021-6/+11
| | | | | | | This fixes a regression introduced in #20990 . When a group referencing is used and one of the overloaded symbols is in `include`d file, then `nim doc` crashes. The fix is in distinguishing (the index of) module and file where the symbol is defined, and using only module as the key in hash table for group referencing.
* fixes #21592; create type bound operations for calls in the method ↵ringabout2023-04-013-6/+10
| | | | | | | dispatcher for ORC (#21594) * fixes #21592; create type operations for the method dispatcher * add a test case
* hopefully easier to understand error message (#21585)Andreas Rumpf2023-03-301-2/+2
|
* document general use of `_`, error message, fixes (#21584)metagn2023-03-302-16/+24
| | | | | | | | | | | | * document general use of `_`, error message, fixes fixes #20687, fixes #21435 Documentation and changelog updated to clarify new universal behavior of `_`. Also new error message for attempting to use `_`, new tests, and fixes with overloadable symbols and implicit generics. * add test for #21435
* remove `seq[T]` `setLen` undefined behavior (#21582)tersec2023-03-291-1/+1
| | | remove seq[T] setLen UB
* Fix segfault caused by ensuring valueless statics are not evaluated (#21577)Jason Beetham2023-03-291-1/+1
|
* tuple unpacking for vars as just sugar, allowing nesting (#21563)metagn2023-03-284-90/+123
| | | | | | | | | | | | | | | | | | | * tuple unpacking for vars as just sugar, allowing nesting * set temp symbol AST * hopeful fix some issues, add test for #19364 * always use temp for consts * document, fix small issue * fix manual indentation * actually fix manual * use helper proc * don't resem temp tuple assignment
* fixes #20993 [backport:1.6] (#21574)Andreas Rumpf2023-03-281-16/+33
| | | | | * fixes #20993 [backport:1.6] * proper line endings for the test file
* fixes #21505 (overload resolution of explicit constructors for imported C++ ↵heterodoxic2023-03-272-5/+24
| | | | | types) (#21511) hacky attempt to reconcile default explicit constructors with enforcement of brace initialization, instead of memsetting imported objects to 0
* fixes #14255; Crash in compiler when using `system.any` by accident. (#21562)ringabout2023-03-231-1/+1
| | | fixes #14255; Crash in compiler when using system.any by accident.
* fixes #3770; templates with untyped parameters resolve private fields ↵ringabout2023-03-216-11/+33
| | | | | | | | | wrongly in generics (#21554) * fixes #3770; templates with untyped parameters resolve private fields wrongly * add a test case for #3770 * rename to `nfSkipFieldChecking`
* mitigates #21272; but it's not the final fix because the first round … ↵Andreas Rumpf2023-03-201-2/+2
| | | | | (#21462) mitigates #21272; but it's not the final fix because the first round of overload resolution should already match
* Use `analyseIfAddressTaken` logic for checking if address is taken in ↵Jake Leahy2023-03-202-11/+16
| | | | | | | | | | | | | | | | | | | converter (#21533) * Add a test case There are way more test cases (See all branches of analyseIfAddressTaken but this covers at least a second branch * Port analyseIfAddressTaken from semexprs to sigmatch This was done since we cannot import sem or semexprs (circular import) but we need the rest of the logic. In needs to be done here since the converter isn't semmed afterwards and so we can't just leave the process til later use the version from semexprs * Less hacky solution which has the checking be done in analyseIfAddressTakenInCall This was done instead of the recommendation on removing it since sfAddrTaken is used in places other than the backend * Remove weird whitespace * Still check nkHiddenAddr if we are checking a converter
* Made generic type classes work with types using static parameters (#21528)Jason Beetham2023-03-171-4/+23
|
* add a prepass for codeReordering (#21513)ringabout2023-03-172-3/+33
| | | | | | | * add a prepass for codeReordering * simplify * fixes
* fix #18977; disallow change branch of an object variant in ORC (#21526)ringabout2023-03-162-13/+36
| | | | | | | | | | | * fix #18977 disallow change branch of an object variant in ORC * check errors for goto exception * fixes conditions * fixes tests * add a test case for #18977
* fixes #19857; Exception raised in closure may be "skipped" in ORC (#21530)ringabout2023-03-161-0/+1
| | | fixes #19857; Exception raised in closure may be "skipped"
* Optimize `cgen.addIndent` (#21508)Amjad Ben Hedhili2023-03-131-2/+6
| | | | | * Optimize `cgen.addIndent` * Avoid temporaries
* fixes explicit globals in macros (#21502)ringabout2023-03-121-1/+2
|
* fixes #21496; Ambiguous calls compiles when module name are equal (#21500)ringabout2023-03-121-1/+2
| | | | | * fixes #21496; Ambiguous calls compiles when module name are equal * add a test case
* minor refactoring (#21499)Andreas Rumpf2023-03-101-7/+1
|
* fixes #21306; fixes #20485; don't transform yields in the var section when ↵ringabout2023-03-101-1/+4
| | | | | | | | | | | introducing new local vars [backport: 1.6] (#21489) * fixes #21306; don't transform yields in the var section when introducing new local vars * adds `inVarSection` so the var section in the var section is freshed * use `isIntroducingNewLocalVars` to avoid yield transformations in var sections * fixes comments
* fixes #21023; Segfault when mixing seqs, orc, variants and futures (#21497)ringabout2023-03-101-18/+43
| | | | | | | | | * fixes #21023; Segfault when mixing seqs, orc, variants and futures * fixes none of the branches were explicitly selected * add one more test * one more test
* fixes quoted variables with typedesc types (#21493)ringabout2023-03-091-1/+1
|
* a better message if graphviz's dot/nodejs is not found in PATH (#21488)ghost2023-03-082-1/+8
| | | | | | | | | * finish issue #21474: a better message if dot is not found locally when using gendepend * fix a typo in compiler * trim empty path reported in `findNodeJs` * compiler/main.nim: switch raise to simply quit
* fixes #21377; fixes `@[]` and `{}` type inference as returns in generics ↵ringabout2023-03-063-4/+15
| | | | | | | | | | | | | (#21475) * fixes `@[]` type inference in generics * add issue links * fixes macros and iterators * refactor * add one more test
* Add line directives for C code variables (#21466)Joey2023-03-051-2/+6
| | | | | * Add line directives for C code variables * Refactor genCLineDir to only use toFullPath if necessary
* Fix #21272: Rewrite parts of pickBestCandidate (#21465)SirOlaf2023-03-051-36/+50
| | | | | | | | | | | | | | | * Make pickBestCandidate store syms * Remove useless cursor * Try making pickBestCandidate more readable * Fix advance order * Revert back to seq with lots of comments --------- Co-authored-by: SirOlaf <>
* remove nosinks hacks from compiler (#21469)ringabout2023-03-049-13/+13
|
* `--embedsrc` for JavaScript (#21467)quantimnot2023-03-041-0/+2
| | | Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
* fixes #21461 (#21463)Arnaud Moura2023-03-031-1/+1
| | | | | * fixes #21461; Move nim-gdb.py and add nim-lldb.py * fixes bad path for nim-gdb.py
* replaces implicit passes array registed at runtime with explicit function ↵ringabout2023-03-0315-316/+533
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | calls; simplify compilation pipeline (#21444) * abolish using passes in the compiler; simplify compilation pipeline * duplicate code * Really cool to have the same signature... * haul * unify other backends * refactor process * introduce PipelinePhase * refactor compiler * fixes passes * fixes nimsuggest * add a sentinel * enable docs checkj * activate doc testing * clean up * complete cleanups
* fixes #20139; hash types based on its path relative to its package path ↵ringabout2023-03-0210-74/+125
| | | | | | | | | | | | | | | (#21274) [backport:1.6] * fixes #20139; hash types based on its path relative its project * add a test case * fixes procs * better implementation and test case --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* fixes #20422; emit nimPrepareStrMutationV2 for toOpenArray to keep th… ↵Andreas Rumpf2023-03-022-2/+7
| | | | | (#21459) fixes #20422; emit nimPrepareStrMutationV2 for toOpenArray to keep the abstraction of mutable strings which have immutable string literals
* fixes #19291; implements `wasMoved` hook (#21303)ringabout2023-03-025-15/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fixes #19291; implements `wasMoved` hook * basics * checkpoint * finish `wasMoved` * add a test for #19291 * add documentation and changelog * work `attachedWasMoved` with generics * fixes optimizer * register `=wasMoved` * handle wasMoved magcis * check another round * some patches * try `op == nil` * nicer * generate `wasMoved` before `destroy` * try again * fixes tests * default wasMoved * Update tests/destructor/tv2_cast.nim * Update tests/destructor/tv2_cast.nim * Update tests/arc/topt_refcursors.nim