summary refs log tree commit diff stats
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* allow non-pragma special words as user pragmas (#22526)metagn2023-08-212-11/+24
| | | | | allow non-pragma special words as macro pragmas fixes #22525
* fix getNullValue for cstring in VM, make other VM code aware of nil cstring ↵metagn2023-08-213-6/+22
| | | | | | | | | | | | | (#22527) * fix getNullValue for cstring in VM fixes #22524 * very ugly fixes, but fix #15730 * nil cstring len works, more test lines * fix high
* use old typeinfo generation for hot code reloading (#22518)metagn2023-08-201-1/+1
| | | | | * use old typeinfo generation for hot code reloading * at least test hello world compilation on orc
* Fix #21722 (#22512)SirOlaf2023-08-191-6/+8
| | | | | | | | | | | * Keep return in mind for sink * Keep track of return using bool instead of mode * Update compiler/injectdestructors.nim * Add back IsReturn --------- Co-authored-by: SirOlaf <> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Markdown code blocks migration part 9 (#22506)Amjad Ben Hedhili2023-08-192-2/+2
| | | | | * Markdown code blocks migration part 9 * fix [skip ci]
* Remove Deprecated Babel (#22507)Juan Carlos2023-08-191-4/+2
|
* Fix #22366 by making nimlf_/nimln_ part of the same line (#22503)Alberto Torres2023-08-181-2/+2
| | | Fix #22366 by making nimlf_/nimln_ part of the same line so the debugger doesn't advance to the next line before executing it
* Add staticFileExists and staticDirExists (#22278)Tomohiro2023-08-181-0/+4
|
* make float32 literals stringifying behave in JS the same as in C (#22500)ringabout2023-08-171-2/+7
|
* cascade tyFromExpr in type conversions in generic bodies (#22499)metagn2023-08-171-5/+7
| | | fixes #22490, fixes #22491, adapts #22029 to type conversions
* fixes #22357; don't sink elements of var tuple cursors (#22486)ringabout2023-08-161-1/+3
|
* When in object handles procedure call again, fixes #22474 (#22480)Jason Beetham2023-08-151-1/+1
| | | Ping @narimiran please backport to the 2.0 line.
* fixes #22469; generates nimTestErrorFlag for top level statements (#22472)ringabout2023-08-141-2/+2
| | | fixes #22469; generates `nimTestErrorFlag` for top level statements
* relax the parameter of `ensureMove`; allow let statements (#22466)ringabout2023-08-121-2/+3
| | | | | * relax the parameter of `ensureMove`; allow let statements * fixes the test
* better initialization patterns for seminst (#22456)ringabout2023-08-121-14/+5
| | | | | | | * better initialization patterns for seminst * Update compiler/seminst.nim * Update compiler/seminst.nim
* fix #22448 Remove `structuredErrorHook` temporary in `tryConstExpr` (#22450)Pylgos2023-08-111-0/+9
| | | | | * fix #22448 * add test
* unpublic the sons field of PType; the precursor to PType refactorings (#22446)ringabout2023-08-1121-76/+94
| | | | | | | | | | | * unpublic the sons field of PType * tiny fixes * fixes an omittance * fixes IC * fixes
* refactor `result = default(...)` into object construction (#22455)ringabout2023-08-111-10/+4
|
* modernize lambdalifting (#22449)ringabout2023-08-111-9/+6
| | | | | * modernize lambdalifting * follow @beef331's suggestions
* `initNodeTable` and friends now return (#22444)ringabout2023-08-1115-64/+51
|
* fixes move sideeffects issues [backport] (#22439)ringabout2023-08-101-3/+15
| | | | | | | * fixes move sideeffects issues [backport] * fix openarray * fixes openarray
* replaces `doAssert false` with `raiseAssert` for unreachable branches, which ↵ringabout2023-08-1021-42/+34
| | | | | works better with strictdefs (#22436) replaces `doAssert false` with `raiseAssert`, which works better with strictdefs
* `getTemp` and friends now return `TLoc` as requested (#22440)ringabout2023-08-106-77/+60
| | | getTemp and friends now return `TLoc`
* adds support for functor in member (#22433)Juan M Gómez2023-08-101-1/+6
| | | | | * adds support for functor in member * improves functor test
* fix #19304 Borrowing std/times.format causes Error: illformed AST (#20659)Bung2023-08-103-26/+53
| | | | | | | | | * fix #19304 Borrowing std/times.format causes Error: illformed AST * follow suggestions * mitigate for #4121 * improve error message
* `initLocExpr` and friends now return `TLoc` (#22434)ringabout2023-08-104-341/+234
| | | `initLocExpr` and friends now return TLoc
* Fix #21760 (#22422)SirOlaf2023-08-101-2/+2
| | | | | | | | | | | * Remove call-specific replaceTypeVarsN * Run for all call kinds and ignore typedesc * Testcase --------- Co-authored-by: SirOlaf <>
* modernize sempass2; `initEffects` now returns `TEffects` (#22435)ringabout2023-08-101-21/+13
|
* makes asmnostackframe work with cpp member #22411 (#22429)Juan M Gómez2023-08-091-3/+4
|
* simplify isAtom condition (#22430)ringabout2023-08-092-8/+2
|
* Fix #5780 (#22428)Bung2023-08-091-1/+1
| | | * fix #5780
* fixes cascades of out parameters, which produces wrong ProveInit warnings ↵ringabout2023-08-091-4/+10
| | | | (#22413)
* fix #12938 index type of array in type section without static (#20529)Bung2023-08-092-21/+37
| | | | | | | | | | | | | * fix #12938 nim compiler assertion fail when literal integer is passed as template argument for array size * use new flag tfImplicitStatic * fix * fix #14193 * correct tfUnresolved add condition * clean test
* fixes #22419; async/closure environment does not align local variables (#22425)ringabout2023-08-091-0/+3
| | | | | | | | | | | | | | | | | * fixes #22419; async/closure environment does not align local variables * Apply suggestions from code review * Update tests/align/talign.nim Co-authored-by: Jacek Sieka <arnetheduck@gmail.com> * apply code review * update tests --------- Co-authored-by: Jacek Sieka <arnetheduck@gmail.com>
* fix #20891 Illegal capture error of env its self (#22414)Bung2023-08-092-3/+13
| | | | | * fix #20891 Illegal capture error of env its self * fix innerClosure too earlier, make condition shorter
* make the name of procs consistent with the name forwards (#22424)ringabout2023-08-091-1/+1
| | | | | | | | | | | It seems that `--stylecheck:error` acts up when the name forwards is involved. ```nim proc thisOne*(x: var int) proc thisone(x: var int) = x = 1 ``` It cannot understand this at all.
* refactors initSrcGen and initTokRender into returning objects (#22421)ringabout2023-08-092-61/+36
|
* modernize jsgen; clean up some leftovers (#22423)ringabout2023-08-091-16/+13
|
* block ambiguous type conversion dotcalls in generics (#22375)metagn2023-08-091-0/+11
| | | fixes #22373
* modernize lineinfos; it seems that array access hinders strict def analysis ↵ringabout2023-08-091-7/+7
| | | | | | | | | | | | | | | | | | like field access (#22420) modernize lineinfos; array access hinders strict def analysis like field access A bug ? ```nim proc computeNotesVerbosity(): array[0..3, TNoteKinds] = result[3] = {low(TNoteKind)..high(TNoteKind)} - {warnObservableStores, warnResultUsed, warnAnyEnumConv, warnBareExcept} result[2] = result[3] - {hintStackTrace, hintExtendedContext, hintDeclaredLoc, hintProcessingStmt} result[1] = result[2] - {warnProveField, warnProveIndex, warnGcUnsafe, hintPath, hintDependency, hintCodeBegin, hintCodeEnd, hintSource, hintGlobalVar, hintGCStats, hintMsgOrigin, hintPerformance} result[0] = result[1] - {hintSuccessX, hintSuccess, hintConf, hintProcessing, hintPattern, hintExecuting, hintLinking, hintCC} ```
* modernize compiler/reorder, which exposes yet another strictdefs bug (#22415)ringabout2023-08-081-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ```nim {.experimental: "strictdefs".} type NodeKind = enum nkImportStmt nkStmtList nkNone PNode = ref object kind: NodeKind proc hasImportStmt(n: PNode): bool = # Checks if the node is an import statement or # i it contains one case n.kind of nkImportStmt: return true of nkStmtList: if false: return true else: result = false var n = PNode() echo hasImportStmt(n) ``` It compiles without warnings, but shouldn't. As a contrast, ```nim {.experimental: "strictdefs".} type NodeKind = enum nkImportStmt nkStmtList nkNone PNode = ref object kind: NodeKind proc hasImportStmt(n: PNode): bool = # Checks if the node is an import statement or # i it contains one case n.kind of nkImportStmt: result = true of nkStmtList: if false: return true else: result = false var n = PNode() echo hasImportStmt(n) ``` This gives a proper warning.
* clean up `gc:arc` or `gc:orc` in docs and in error messages (#22408)ringabout2023-08-081-1/+1
| | | | | * clean up gc:arc/orc in docs * in error messages
* fixes LineTooLong hints on old compilers (#22412)ringabout2023-08-082-0/+2
| | | | | * fixes LineTooLong hints on old compilers * fixes config/nim.cfg
* modernize compiler/filter_tmpl.nim (#22407)ringabout2023-08-081-11/+9
|
* fix #18823 Passing Natural to bitops.BitsRange[T] parameter in generi… ↵Bung2023-08-083-10/+17
| | | | | (#20683) * fix #18823 Passing Natural to bitops.BitsRange[T] parameter in generic proc is compile error
* fix #22287 nimlf_ undefined error (#22382)Bung2023-08-081-0/+1
|
* use out parameters for getTemp (#22399)ringabout2023-08-076-43/+39
|
* [C++] Member pragma RFC (https://github.com/nim-lang/RFCs/issues/530) (#22272)Juan M Gómez2023-08-076-23/+32
| | | | | | | | | | * [C++] Member pragma RFC #530 rebase devel * changes the test so `echo` is not used before Nim is init * rebase devel * fixes Error: use explicit initialization of X for clarity [Uninit]
* a bit modern code for depends (#22400)ringabout2023-08-071-6/+1
| | | | | * a bit modern code for depends * simplify
* use strictdefs for compiler (#22365)ringabout2023-08-06107-491/+1209
| | | | | | | | | | | | | | | * wip; use strictdefs for compiler * checkpoint * complete the chores * more fixes * first phase cleanup * Update compiler/bitsets.nim * cleanup