summary refs log tree commit diff stats
path: root/compiler/ic/rodfiles.nim
Commit message (Collapse)AuthorAgeFilesLines
* IC: use tables instead of huge seqs because the compiler can create l… ↵Andreas Rumpf2024-06-181-0/+27
| | | | | (#23737) …ots of dummy syms and types
* rework the vtable implementation embedding the vtable array directly with ↵ringabout2023-11-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | new strictions on methods (#22991) **TODO** - [x] fixes changelog With the new option `nimPreviewVtables`, `methods` are confined in the same module where the type of the first parameter is defined - [x] make it opt in after CI checks its feasibility ## In the following-up PRs - [ ] in the following PRs, refactor code into a more efficient one - [ ] cpp needs special treatments since it cannot embed array in light of the preceding limits: ref https://github.com/nim-lang/Nim/pull/20977#discussion_r1035528927; we can support cpp backends with vtable implementations later on the comprise that uses indirect vtable access --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* IC: use better packed line information format (#22917)Andreas Rumpf2023-11-071-1/+1
|
* NIR: C codegen, WIP (#22903)Andreas Rumpf2023-11-051-0/+1
|
* prepare for the enforcement of `std` prefix (#22873)ringabout2023-10-291-1/+1
| | | follow up https://github.com/nim-lang/Nim/pull/22851
* NIR: VM + refactorings (#22835)Andreas Rumpf2023-10-291-0/+1
|
* NIR: store sizes, alignments and offsets in the type graph; beginning… ↵Andreas Rumpf2023-10-161-3/+4
| | | | | (#22822) …s of a patent-pending new VM
* use strictdefs for compiler (#22365)ringabout2023-08-061-2/+4
| | | | | | | | | | | | | | | * wip; use strictdefs for compiler * checkpoint * complete the chores * more fixes * first phase cleanup * Update compiler/bitsets.nim * cleanup
* IC: fix typo in rodfiles.nim (#20989)Ikko Ashimine2022-12-011-1/+1
| | | preceeded -> preceded
* refactorings (#20536)Andreas Rumpf2022-10-101-1/+0
| | | | | | | * refactoring * refactoring: removed unused macroUsagesSection * enum instead of bool for better readability
* Don't require blank line before Markdown code (#20215)Andrey Makarov2022-08-151-2/+1
| | | | Fixes bug reported in https://github.com/nim-lang/Nim/pull/20189 affecting nimforum.
* move assertions out of system (#19599)flywind2022-03-231-0/+3
|
* ic refactoring (#17778)Andreas Rumpf2021-04-191-5/+5
| | | | | * minor IC documentation update * IC: refactoring: removed the 'shared' type and fields, these were a leftover from an earlier design
* [ci skip] document compiler/ic/rodfiles.nim (#17771)Saem Ghani2021-04-191-0/+72
| | | | | | | | | | | | | | | | * [ci skip] document compiler/ic/rodfiles.nim Why? * understand how rodfile module works and a bit of the format * leave notes behind for others * rather than Araq guess what others need, he can fix what other glean * possible model for making the compiler more aproachable Bonus: * might have found a minor bug in `loadSection` * Update compiler/ic/rodfiles.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* `import foo {.all.}` reboot (#17706)Timothee Cour2021-04-161-0/+1
|
* IC: rodfiles: no floats (#17720)Andreas Rumpf2021-04-141-2/+1
|
* added a 'koch ic' command for easier adhoc testing of IC (#17508)Andreas Rumpf2021-03-261-0/+1
| | | | | | * added a 'koch ic' command for easier adhoc testing of IC * IC: progress * IC: enable generics test * make tests green
* IC: backend: remember produced type information (#17440)Andreas Rumpf2021-03-231-0/+1
|
* IC: final implementation steps (#16801)Andreas Rumpf2021-01-251-0/+17
| | | | | | | | * 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-1/+2
| | | | | | | | | | | * 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 (#16632)Andreas Rumpf2021-01-121-3/+4
| | | | | | | | | | | | | * 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
* IC: next steps (#16550)Andreas Rumpf2021-01-071-18/+30
| | | | | | | | | | | | | | | | | | * 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-0/+143
* 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>