summary refs log tree commit diff stats
path: root/compiler/cgmeth.nim
Commit message (Collapse)AuthorAgeFilesLines
* IC: final implementation steps (#16801)Andreas Rumpf2021-01-251-3/+1
| | | | | | | | * 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
* IC: next steps (#16729)Andreas Rumpf2021-01-231-2/+5
| | | | | | | | | | | * 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
* fix #16516 method dispatch for sink args (#16594)cooldome2021-01-061-1/+1
| | | | | | | * fix #16516 * fix comment * Trigger build
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-3/+3
| | | | | | | | | | | | | | | | | | | * reworked ID handling * the packed AST now has its own ID mechanism * basic serialization code works * extract rodfiles to its own module * rodfiles: store and compare configs * rodfiles: store dependencies * store config at the end * precise dependency tracking * dependency tracking for rodfiles * completed loading of PSym, PType, etc * removed dead code * bugfix: do not realloc seqs when taking addr into an element * make IC opt-in for now * makes tcompilerapi green again * final cleanups Co-authored-by: Andy Davidoff <github@andy.disruptek.com>
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-6/+6
| | | | | | | | | | | | | | | | | * refactoring: idents don't need inheritance * refactoring: adding an IdGenerator (part 1) * refactoring: adding an IdGenerator (part 2) * refactoring: adding an IdGenerator (part 3) * refactoring: adding an IdGenerator (part 4) * refactoring: adding an IdGenerator (part 5) * refactoring: adding an IdGenerator (part 5) * IdGenerator must be a ref type; hello world works again * make bootstrapping work again * progress: add back the 'exactReplica' ideas * added back the missing exactReplica hacks * make tcompilerapi work again * make important packages green * attempt to fix the build for 32 bit machines (probably need a better solution here)
* Make explicit {.nimcall.} a seperate calling conventionClyybber2020-08-081-1/+1
|
* arc optimizations (#13325)Andreas Rumpf2020-03-181-1/+1
| | | | | * scope based destructors * handle 'or' and 'and' expressions properly, see the new test arc/tcontrolflow.nim * make this branch mergable, logic is disabled for now
* make case-object transitions explicit, make unknownLineInfo a const, replace ↵Jasper Jenkins2020-01-171-3/+3
| | | | a few magic numbers with consts (#13170)
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-65/+63
| | | | | | | | | | | | | | | | | | * Cleanup compiler code base * Unify add calls * Unify len invocations * Unify range operators * Fix oversight * Remove {.procvar.} pragma * initCandidate -> newCandidate where reasonable * Unify safeLen calls
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-8/+8
| | | | | * Remove sonsLen * Use Indexable
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+1
|
* fixes #10912 (#11317)Andreas Rumpf2019-05-241-3/+3
| | | | | | * fixes #10912 * update the tutorial examples
* rename tyExpr/tyStmt to tyUntyped/tyTyped (#11227)Arne Döring2019-05-111-1/+1
|
* Replace countup(x, y) with x .. yClyybber2019-05-071-2/+2
|
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-10/+10
|
* multi-methods need to be explicitly enabled (#10856)Miran2019-03-181-0/+3
| | | | | | * multi-methods need to be explicitly enabled * update changelog, manual and tutorial
* multi-methods: remove hack, make tmethod_various compile under strict C++ ↵Andreas Rumpf2019-03-141-11/+11
| | | | [backport]
* compiler refactoring: TSymSeq is gone for goodAraq2018-12-111-3/+3
|
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-0/+1
| | | | | | | | | | | | | | | gen (#8489) * Ast no transformation * Add getImplNoTransform to the macros module * progress on delaying transf * Fix methods tranformation * Fix lazy lambdalifting * fix create thread wrapper * transform for lambda lifting * improve getImplTransformed * Fix destructor tests * try to fix nimprof for linux
* fixes #5479Araq2018-10-021-2/+2
|
* Pick the `and` symbol we need explicitly (#8249)LemonBoy2018-07-081-2/+2
| | | | | | | Using getSysSym made the compiler pick a random `and` symbol: if the symbol table is shuffled we may end up selecting one of the wrong overloads. Fixes #8246
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
|
* make tests green againAndreas Rumpf2018-05-181-1/+1
|
* remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-3/+3
|
* pragmas compiles againAndreas Rumpf2018-05-111-22/+23
|
* preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-1/+1
|
* Fixes #5946 (#6017)Yuriy Glukhov2017-06-261-2/+3
|
* fixes multiple nil-checks for methods (#5806)Parashurama2017-05-121-3/+6
|
* fixes #5599 (#5610)Andreas Rumpf2017-03-261-2/+8
|
* fixes #5432Araq2017-02-261-1/+2
|
* another attempt to make test green againAraq2017-02-241-2/+10
|
* fixes a multimethod regressionAndreas Rumpf2017-02-241-6/+9
|
* big compiler refactoring; avoid globals for multi method dispatcher generationAndreas Rumpf2017-02-221-24/+26
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-2/+2
| | | | instead in preparation for further bugfixes
* some progress on --symbolfiles:onAndreas Rumpf2016-11-021-2/+3
|
* tester cleanup; enable some rod testsAraq2016-08-271-2/+3
|
* generic multi-methods should work nowAndreas Rumpf2016-07-281-2/+2
|
* fixes #4428Andreas Rumpf2016-07-191-2/+8
|
* fix issue #3550trustable-code2015-12-241-4/+1
|
* better error handling for bug #3550Araq2015-11-181-2/+2
|
* fixes #3550Araq2015-11-181-1/+6
|
* fixes #3431, fixes #3370, fixes #3468Araq2015-10-251-3/+4
|
* Fixed ret by var in jsYuriy Glukhov2015-10-151-2/+1
|
* fixes #2590; methods now require a .base annotationAraq2015-09-061-9/+26
|
* compiler: Trim .nim files trailing whitespaceAdam Strzelecki2015-09-041-42/+42
| | | | via OSX: find . -name '*.nim' -exec sed -i '' -E 's/[[:space:]]+$//' {} +
* Merge branch 'devel' into bigbreakAraq2014-11-031-23/+64
|\ | | | | | | | | Conflicts: lib/pure/osproc.nim
| * Fix dispatcher creation for method prototypes.Reimer Behrends2014-11-021-24/+64
| | | | | | | | | | | | | | | | When method prototypes were involved (e.g. forward declarations for mutual recursion), calls were sometimes dispatched to the wrong method implementation. One of the reasons was that method dispatchers were then not always attached to method ASTs in the correct place.
| * Reset location when creating a method dispatcherReimer Behrends2014-11-011-0/+1
| | | | | | | | | | | | | | | | | | | | When creating a method dispatcher, the location of the underlying method was copied. Under some circumstances, the name of the location (loc.r) was already initialized, in which case the method dispatcher shared a name with one of the methods, leading to a C compiler error. By setting loc.r to nil when copying the dispatcher information from the original method, we ensure that the dispatcher C function gets its proper name.
* | updated the compiler to use the new symbol namesAraq2014-08-281-3/+3
| |
* | Nimrod renamed to NimAraq2014-08-281-1/+1
|/