summary refs log tree commit diff stats
path: root/compiler/sem.nim
Commit message (Collapse)AuthorAgeFilesLines
* use typeof instead type (#16962)flywind2021-02-081-1/+1
|
* IC: bugfixes (WIP) (#16836)Andreas Rumpf2021-02-021-0/+1
| | | | | | | | * 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
* IC: next steps (#16729)Andreas Rumpf2021-01-231-6/+6
| | | | | | | | | | | * 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
* IC: next steps (#16705)Andreas Rumpf2021-01-141-0/+2
| | | | | | | | | | | * 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
* IC: next steps (#16550)Andreas Rumpf2021-01-071-1/+2
| | | | | | | | | | | | | | | | | | * cleanups * ast.nim: cleanups * IC: no more sym.tab field, stored externally in the module graph * nimble compiles again * rodfiles: store bitwidth of integers and the endianness in the cookie because we serialize 'int' directly * rodfiles: added compilerproc and export sections * rodfiles: added all the missing sections * rodfiles: track the missing information * IC: architecture for lazy loading of proc bodies * make tests green again * completed the lazy loading of proc bodies * symbol lookup integration, part 1 * symbol lookup integration, part 2 * symbol lookup integration, part 3 * make tcompilerapi work again * rodfiles: fixed config change handling
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-10/+10
| | | | | | | | | | | | | | | | | | | * 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>
* refactorings to prepare the compiler for IC (#15935)Andreas Rumpf2020-12-171-3/+5
| | | | | | | | | | | | | | * added ic specific Nim code; WIP * make the symbol import mechanism lazy; WIP * ensure that modules can be imported multiple times * ambiguity checking * handle converters and TR macros properly * make 'enum' test category green again * special logic for semi-pure enums * makes nimsuggest tests green again * fixes nimdata * makes nimpy green again * makes more important packages work
* fix #16150 improve type mismatch errors (#16152)Timothee Cour2020-12-091-1/+1
| | | | | | | * fix #16150 improve type mismatch errors * allow -d:nimLegacyTypeMismatch * address comment
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-22/+22
| | | | | | | | | | | | | | | | | * 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)
* Revert "fixes #15280 [backport:1.2] (#15281)" (#15700)Clyybber2020-10-241-1/+1
| | | This reverts commit 3f00a738dbc8319b4dd2b86bf5529c096f2dd243.
* fixes #15280 [backport:1.2] (#15281)Andreas Rumpf2020-09-091-1/+1
| | | | | | | * fixes #15280 [backport:1.2] * make tests green again * adapt tests
* borrow checking (#15282)Andreas Rumpf2020-09-091-5/+5
| | | | | | | | | | | * refactoring: move procs to typeallowed.nim * frontend preparations for first class openArray support * prepare the code generator for first class openArray * code generation for first class openArray; WIP * code generation for open arrays, progress * added isViewType proc * preparations for borrow checking * added borrow checking to the front end
* Fix #5691 (#15158)Clyybber2020-08-271-8/+5
| | | | | | | | * Fix #5691 * Cleanup and thoughts * Use scope approach * Seperate defined/declared/declaredInScope magics * Fix declaredInScope * Update spec accordingly
* Fix forward declaration issues in template/macro context (#15091)Clyybber2020-07-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | * Fix forward declaration issues in template/macro context * Correct forward declaration resolving for overloads * Remove old dead code * WIP consistent gensym ids * Minimize diff * Remove obsoleted hack * Add templInstCounter to give unique IDs to template instantiations * Remove obsoleted code * Eh, init in myOpen, not myProcess... * Remove optNimV019 * Add testcase for #13484
* 'isolate' builtin; refs https://github.com/nim-lang/RFCs/issues/244 (#15011)Andreas Rumpf2020-07-201-1/+2
|
* misc cleanups in compiler msgs: use toHumanStr, etc (#14677)Timothee Cour2020-06-151-4/+2
|
* * honor --errorMax even for tools (eg drnim, nim doc) (#14546)Timothee Cour2020-06-021-1/+1
| | | * fix a bug that prevented nim doc compiler/nim on windows
* disallow typedesc in arrays & move existing checks to `types.typeAllowedAux` ↵Neelesh Chandola2020-05-291-5/+7
| | | | | | (#13261) * disallow typedesc in arrays and move previous checks to types.typeAllowedAux
* Make ./koch temp --gc:arc work (#14186)Clyybber2020-05-011-2/+5
|
* implement (#14114)cooldome2020-04-251-8/+3
| | | Co-authored-by: cooldome <ariabushenko@bk.ru>
* The raises list can now use expressions referencing the generic paramsZahary Karadjov2020-04-011-0/+1
|
* Replace tfHasRequiresInit with a more accurate mechanismZahary Karadjov2020-04-011-1/+3
| | | | | | | | | The new mechanism can deal with more complex scenarios such as not nil field appearing in a non-default case object branch or a field within a generic object that may depend on a when branch. The commit also plugs another hole: the user is no longer able to create illegal default values through seq.setLen(N).
* Perform nil checks during object construction and within compiles()Zahary Karadjov2020-04-011-1/+1
| | | | Close https://github.com/nim-lang/Nim/issues/6494
* Plug another hole: default(T) forbidden for objects requiring initializationZahary Karadjov2020-04-011-18/+1
|
* Don't allow 'var x: T' for objects that require initializationZahary Karadjov2020-04-011-0/+18
|
* EndsInNoReturn in expressions extension, fixes #13490 (#13520)cooldome2020-02-281-1/+1
| | | | * fix #13490
* fixes #12627 (#13521)cooldome2020-02-281-1/+1
| | | | * fixes #12627
* make case-object transitions explicit, make unknownLineInfo a const, replace ↵Jasper Jenkins2020-01-171-1/+1
| | | | a few magic numbers with consts (#13170)
* remove all remaining warnings when build nim (with -d:nimHasLibFFI) (#13084)Timothee Cour2020-01-091-1/+1
| | | | | | * cleanup deprecations in evalffi + elsewhere * remove dead code getOrdValue64
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-18/+17
| | | | | | | | | | | | | | | | | | * 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-1/+1
| | | | | * Remove sonsLen * Use Indexable
* fixes #11941 (#12079)Andreas Rumpf2019-08-291-2/+7
|
* lift destructor for openarray (#12073)cooldome2019-08-281-6/+4
| | | | * destroy for sink openarray
* Fix several float range issues (supersedes #11905) (#12067)Andreas Rumpf2019-08-271-0/+1
|\ | | | | | | | | | | * Fix several float range issues * address the comments
| * address the commentsnarimiran2019-08-271-0/+1
| |
* | fixes #12029; finish the 'unused import' feature (#12064)Andreas Rumpf2019-08-271-1/+2
|/
* [refactoring] compiler: simplified markUsedAndreas Rumpf2019-08-081-1/+1
|
* IC: some progressAndreas Rumpf2019-07-271-6/+0
|
* revert changesAndrii Riabushenko2019-07-251-2/+2
|
* fixes #11826Andrii Riabushenko2019-07-251-2/+2
|
* Merge branch 'devel' into araq-detect-unused-importsAndreas Rumpf2019-07-181-4/+4
|\
| * [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-4/+4
| |
* | warn about unused imports; fixes an 'export' regression [nobackport]Andreas Rumpf2019-07-181-1/+1
| |
* | [feature] detect unused importsAraq2019-07-171-1/+6
|/
* [refactoring] moves transformation for 'spawn' into its own spawn.nim ↵Araq2019-07-141-1/+1
| | | | implementation
* introduce internal Int128 type, use it to fix case stmt checks (#11652)Arne Döring2019-07-051-1/+1
| | | | | | * initial version of int128 * use int128 in case stmt * fixes #11552
* Remove immediate pragma (#11308)Arne Döring2019-05-291-2/+1
| | | | | * remove immediate from tests * remove immediate from the compiler
* new compiler feature: --expandMacroAraq2019-05-291-1/+3
|
* Allow void macro result (#11286)Arne Döring2019-05-211-4/+3
| | | | | * allow void macro result * add test for void macro result type
* rename tyExpr/tyStmt to tyUntyped/tyTyped (#11227)Arne Döring2019-05-111-9/+9
|