summary refs log tree commit diff stats
path: root/compiler/ic/ic.nim
Commit message (Collapse)AuthorAgeFilesLines
* 'lock levels' are deprecated, now a noop (#20539)ringabout2022-10-111-2/+2
| | | | | * 'lock levels' are deprecated, now a noop * fixes tests
* time to make IC work with ORC (here we go again...) (#20538)Andreas Rumpf2022-10-111-1/+10
| | | works for me
* refactorings (#20536)Andreas Rumpf2022-10-101-3/+0
| | | | | | | * refactoring * refactoring: removed unused macroUsagesSection * enum instead of bool for better readability
* no ropes WIP (#20433)Andreas Rumpf2022-09-271-1/+1
| | | | | | | | | | | | | * refactorings in preparation for ropes elimination of the C code generator; mostly the usual ': Rope' -> 'result: var Rope' rewrite * rewrote ccgcalls.nim * refactored ccgexprs.nim * ccgliterals: refactoring * refactoring: code dealing with name mangling * refactoring: getRecordFieldsAux * ropes are strings (insert obscene joke here) * optimize JS code gen * optimizations and code improvements * more optimizations * final cleanups
* move formatfloat out of system (#20195)ringabout2022-08-241-1/+1
| | | | | | | | | | | | | | | * move formatfloat out of system * fixes doc * Update changelog.md * careless * fixes * deprecate system/formatfloat * better handling
* Refactor and doc package handling, module name mangling (#19821)quantimnot2022-05-301-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Refactor and doc package handling, module name mangling * Consolidate, de-duplicate and extend package handling * Alter how duplicate module names of a package are handled * Alter how module names are mangled * Fix crash when another package is named 'stdlib' (test case added) * Doc what defines a package in the manual Modules with duplicate names within a package used to be given 'fake' packages to resolve conflicts. That prevented the ability to discern if a module belonged to the current project package or a foreign package. They now have the proper package owner and the names are mangled in a consistent manner to prevent codegen clashes. All module names are now mangled the same. Stdlib was treated special before, but now it is same as any other package. This fixes a crash when a foreign package is named 'stdlib'. Module mangling is altered for both file paths and symbols used by the backends. Removed an unused module name to package mapping that may have been intended for IC. The mapping was removed because it wasn't being used and was complicating the issue of package modules with duplicate names not having the proper package owner assigned. * Fix some tests * Refactor `packagehandling` * Remove `packagehandling.withPackageName` and its uses * Move module path mangling from `packagehandling` to `modulepaths` * Move `options.toRodFile` to `ic` to break import cycle * Changed import style to match preferred style Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
* move assertions out of system (#19599)flywind2022-03-231-0/+3
|
* [minor]use `addInt` and `addFloat` (#18733)flywind2021-08-241-2/+2
| | | | | | | * unify int and uint * back * minor
* fixes #17943 (#18045)Andreas Rumpf2021-05-191-0/+3
| | | | | | | | | | | * fixes #17943 * IC: test 'nim check --ic:on' for the full Nim compiler * Update testament/testament.nim Co-authored-by: Clyybber <darkmine956@gmail.com> Co-authored-by: Clyybber <darkmine956@gmail.com>
* CIs: attempt to use csources_v1 (#16282)Andreas Rumpf2021-04-211-3/+3
| | | | | | | | * CIs: attempt to use csources_v1 * also updated the BSDs * also updated azure pipelines * std modules should not itself use the 'std/' import dir... * compiler has to be careful with std/ for v1 booting
* IC navigator: added support for include files (#17784)Andreas Rumpf2021-04-191-1/+1
| | | | | | | | | | | | | | | | | * ic fixed navigator crash when track wrong/missed Also fixed an issue with getNimcacheDir not observing the outDir. * closer, but not sure how to test[skip ci][ci skip] * IC navigator: added support for include files * update * make posix happy via expandFilename * update Co-authored-by: Saem Ghani <saemghani+github@gmail.com>
* ic refactoring (#17778)Andreas Rumpf2021-04-191-64/+111
| | | | | * minor IC documentation update * IC: refactoring: removed the 'shared' type and fields, these were a leftover from an earlier design
* -d:nimDebug: calls doAssert false instead of quit (#17739)Timothee Cour2021-04-171-2/+1
|
* IC: yet another embarrassing omission (#17743)Andreas Rumpf2021-04-171-1/+2
| | | | | * IC: yet another embarrassing omission * VM: fewer hacks that kept IC from working
* ic navigator tests (#17735)Andreas Rumpf2021-04-161-1/+2
| | | * IC navigator: first basic test
* `import foo {.all.}` reboot (#17706)Timothee Cour2021-04-161-16/+42
|
* IC: rodfiles: no floats (#17720)Andreas Rumpf2021-04-141-11/+8
|
* IC: first steps towards 'nim check --def --ic:on' (#17714)Andreas Rumpf2021-04-141-5/+23
| | | | | | | | | * IC: first steps towards 'nim check --def --ic:on' * IC navigator: deduplicate output lines * IC navigator: progress * IC navigator: use a different nimcache entry * IC navigator: special logic for templates/macros * IC navigator: proper error messages * IC navigator: prepare for testing code; document only what currently works somewhat
* IC: code cleanup (#17708)Andreas Rumpf2021-04-131-45/+12
|
* IC: serialization bugfix (#17701)Andreas Rumpf2021-04-131-4/+4
|
* IC: integrity checking (#17695)Andreas Rumpf2021-04-111-1/+2
| | | | | | * IC: integrity checking: the plumbing code * progress * progress + bugfix (yes, the code already found a bug) * implemented integrity checking
* IC: added basic test case for methods (#17679)Andreas Rumpf2021-04-091-1/+1
| | | | | * IC: added basic test case for methods * IC: better methods test
* IC: bugfix (#17533)Andreas Rumpf2021-03-271-2/+5
| | | | * cleanups * IC: bugfix
* added a 'koch ic' command for easier adhoc testing of IC (#17508)Andreas Rumpf2021-03-261-5/+17
| | | | | | * 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-2/+9
|
* IC: green tests (#17311)Andreas Rumpf2021-03-191-0/+1147
* IC: renamed to_packed_ast module to ic module * IC: don't store the --forceBuild flag, makes it easier to test * IC: enable hello world test * Codegen: refactorings for IC; changed the name mangling algorithm * fixed the HCR regressions * life is too short for HCR * tconvexhull is now allowed to use deepCopy * IC exposed a stdlib bug, required a refactoring * codegen: code cleanups * IC: even if a module is outdated, its dependencies might come from disk * IC: progress * IC: better name mangling, module IDs are not stable * IC: another refactoring helping with --ic:on --gc:arc * disable arraymancer on Windows for the time being * disable arraymancer altogether * IC: make basic test work with 'nim cpp' * IC: progress on --ic:on --gc:arc * wip; name mangling for type info