summary refs log tree commit diff stats
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* compilesettings: add libpath (#16997)Timothee Cour2021-02-122-4/+4
| | | | | | | | | | | * compilesettings: add libpath * add test * changelog * fixup Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* typeToString: type float => typedesc[float] (#17011)Timothee Cour2021-02-121-1/+2
| | | | | | | * typeToString: type float => typedesc[float] * fixup * fix tests
* Display user hints/warnings from foreign packages (#17024)Danil Yarantsev2021-02-121-1/+2
|
* [backport:1.4] JS cstring null fixes (#16979)hlaaftana2021-02-111-3/+19
| | | | | * [backport:1.4] JS cstring null fixes * fix JS move string * make it look cleaner
* fixes a bug that keeps Nimbus from compiling with --gc:orc (#17005)Andreas Rumpf2021-02-111-2/+15
| | | | | * fixes a bug that keeps Nimbus from compiling with --gc:orc * better fix
* unbundle fusion (#16925)Timothee Cour2021-02-111-1/+0
| | | | | | * unbundle fusion * changelog * address comment: `./koch fusion` calls nimble install fusion (at a fixed hash)
* [JS] Ref #15952 make toOpenArray works better (#17001)flywind2021-02-101-10/+19
| | | | | * ref 15952 toOpenArray works in JS * fix
* ARC: Analysis in one pass v2 (#17000)Clyybber2021-02-105-124/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Analyse last reads all at once * Integrate firstWrite analysis * Small cleanup * Use sets instead of seqs * Remove instrTargets * Reap the benefits * Implement error diagnostics * Operate on DFA index for lastRead analysis * Use mgetOrPut * Cache alias results This improves performance by a lot, since many CFG locations map to a single PNode * Improve performance * Improve performance * Cleanup
* Revert "ARC Analysis in one pass (#16849)" (#16984)Clyybber2021-02-095-106/+121
| | | This reverts commit ab740cb5b9bfbacece26956fa2444763a790ccd1.
* Remove declPragmas from lambdas [backport:1.0] (#16966)hlaaftana2021-02-091-6/+7
| | | | | | | | | * Remove declPragmas from lambdas [backport:1.0] * add test for exportc * fix test * fix align, nodecl -> noinit
* ARC Analysis in one pass (#16849)Clyybber2021-02-095-121/+106
| | | | | | | | | | | | | | | | | | | * Analyse last reads all at once * Integrate firstWrite analysis * Small cleanup * Use sets instead of seqs * Remove instrTargets * Reap the benefits * Implement error diagnostics * Operate on DFA index for lastRead analysis * Use mgetOrPut
* fix #16947: `--app:staticlib -o:lib` now first removes lib (#16948)Timothee Cour2021-02-081-0/+1
|
* rename case statement macro from match to `case` (#16923)hlaaftana2021-02-081-3/+3
| | | | | * rename case statement macro from match to `case` * fix test
* fix #16949 --app:staticlib works on openbsd; --app:staticlib tested in CI ↵Timothee Cour2021-02-081-2/+2
| | | | (#16950)
* use typeof instead type (#16962)flywind2021-02-084-6/+6
|
* quote nim command on compile (#16954)n5m2021-02-071-1/+1
|
* remove a temporary variable in int128.nim (#16935)flywind2021-02-041-35/+34
|
* IC: bugfixes (WIP) (#16836)Andreas Rumpf2021-02-0218-98/+209
| | | | | | | | * minor improvements * IC: added the required logic for compilerProcs * LazySym ftw * we need this testing logic * reimplement the old way we use for module package creation * fixes a regression; don't pick module names if you can avoid it
* add finally as post expr block [backport:1.4] (#16896)hlaaftana2021-02-011-1/+5
|
* fixes #16897 [backport:1.2] (#16900)Andreas Rumpf2021-02-011-1/+1
|
* fix #16822 (#16884)flywind2021-02-011-2/+2
| | | | | | | | | * see whether it breaks * fix #16884 * correct * fix #14574
* let's assume littleEndian in JS backend (#16886)flywind2021-02-011-1/+1
| | | | | * let's assume littleEndian in JS and VM backend * Update compiler/platform.nim
* distinctBase now is identity instead of error for non distinct types (#16891)Timothee Cour2021-02-011-9/+4
|
* Fix #12595 (#16874)konsumlamm2021-01-311-0/+4
|
* nimsuggest prioritize non-deprecated suggestions (#16816)Saem Ghani2021-01-291-15/+27
| | | | | | | | | | | * penalizes the quality score of deprecated symbols * uses quality more pervasively in order to reflect deprecation impact * impacts both sug and con additional notes: * linux i386 CI was failing * this is because the suggested results differ slightly in their sort * 64 bit tables.getOrDefault:441 was returned, while 32 bit returned 422 * for now simply removing the last line is good enough
* close #16844 (#16852)flywind2021-01-291-0/+14
| | | | | | * close #16844 * better * comment * Update compiler/renderer.nim
* remove conditionals on nimHasUserErrors, nimNoNilSeqs2, nimNoNilSeqs (#16861)Timothee Cour2021-01-299-56/+12
| | | | | | | | | * cleanup docs for type(nil) | type(nil); simplify nimHasUserErrors * simplify nimNoNilSeqs2 * simplify nimNoNilSeqs * fixup
* fix #16815 round(x,places) works again in vm (#16825)Timothee Cour2021-01-282-1/+11
| | | | | | | * fix #16815 round+places works again in vm * improve tests; fix for linux 32bit * fix test for windows
* fix #16752: threadvar now works with importcpp types; osx now uses native ↵Timothee Cour2021-01-275-10/+22
| | | | | | | | | | | TLS (`--tlsEmulation:off`), which can be orders of magnitude faster (#16750) * osx now uses native TLS, which can be orders of magnitude faster * add {.cppNonPod.} * improve test * changelog, docs, disable part of windows test
* IC: final implementation steps (#16801)Andreas Rumpf2021-01-2512-105/+259
| | | | | | | | * removed dead code * we need even more laziness for the generic caches * make it bootstrap on older Nims * wrote more deserialization code * IC: replay required methods information
* fixed nim-lang/nimsuggest#48 type aware sug (#16814)Saem Ghani2021-01-251-2/+7
| | | | * suggesting identifiers accounts context over scope (distance) * key takeaway: context fit is prioritized over a heuristics like scope
* Finer analysis for array access (#16787)Clyybber2021-01-242-29/+75
| | | | | * Refine the analysis for array access * Cleanup * Add comments
* IC: next steps (#16729)Andreas Rumpf2021-01-2332-323/+729
| | | | | | | | | | | * IC: dead code elimination pass * preparations for a different codegen strategy * added documentation to the newly written code * IC: backend code * IC: backend adjustments * optimized the compiler a bit * IC: yet another massive refactoring * fixes regressions * cleanups
* Part-to-whole optimization (#16775)Clyybber2021-01-211-15/+16
|
* some comments for amd64 and nimvm CPU (#16756)Timothee Cour2021-01-201-1/+2
|
* Reboot of #16195 (#16746)Clyybber2021-01-201-58/+85
| | | | | | | | | | | | | | | | | | | | | | | | | * fix #16185 * fix test * fix comment * fix comment * better approach * Add more tests and move sameLocation to injectdestructors * Better and more strict sameLocation * Small cleanup and preliminary spec clarification * Fix * Fix doc * Expand test Co-authored-by: Andrey R (cooldome) <ariabushenko@gmail.com>
* `--hintAsError` (#16763)Timothee Cour2021-01-205-7/+18
| | | | | | | * --hintAsError * add test, changelog * condsyms
* Deprecate TaintedString (#15423)Juan Carlos2021-01-152-3/+2
| | | | Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com>
* Fix 16722 (#16730)cooldome2021-01-153-3/+6
| | | | | | | * fix #16722 * fix spacing * spacing
* conservative approach to fix #15184 (#16723)Andrey Makarov2021-01-151-10/+19
|
* IC: next steps (#16705)Andreas Rumpf2021-01-1414-277/+289
| | | | | | | | | | | * code cleanups * refactorings for IC * more refactorings for IC * IC: attach the 'nil' type to its module * IC: refactorings and improvements * IC: progress * IC: more serialization fixes * IC: embarrassing omission * code cleanups
* improve formatting of error message when runnableExamples fails (#16677)Timothee Cour2021-01-131-1/+6
|
* fixes nim-lang/nimsuggest#103 con dot exprs (#16657)Saem Ghani2021-01-121-0/+1
| | | | - con calls for dot exprs now returns results - discovered an issue with dot expr results -- documented
* IC: next steps (#16632)Andreas Rumpf2021-01-1218-771/+475
| | | | | | | | | | | | | * removed dead code * beginnings of a rodfile reader * IC: record global VM state changes and pragma state changes * IC: replay pragmas and VM state changes * implemented rod load file simuation for easier, extensive testing * critical bugfix * IC: stress test logic; should also help with recursive module dependencies; WIP * IC: loading from .rod files begins to work reliably * removed ugly hacks * yet another silly mistake
* RST: implement internal targets (#16614)Andrey Makarov2021-01-111-1/+1
|
* fix #13517 (#16681)flywind2021-01-111-3/+3
|
* fix negative nan (#16628)flywind2021-01-112-3/+15
|
* fixed nim-lang/nimsuggest#82 pure enum field sug (#16676)Saem Ghani2021-01-111-10/+11
| | | | - previous code wasn't account for tyEnum being wrapped in tyTypeDesc - now pure enum fields are suggested
* fix #16555, fixes #16405: len, high honors '\0' for cstring in vm (#16610)Timothee Cour2021-01-113-5/+12
|
* fix #16651 (#16658)cooldome2021-01-111-0/+7
| | | | * fix #16651