summary refs log tree commit diff stats
path: root/compiler/semparallel.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes yet another strictdefs bug (#23069)ringabout2023-12-151-4/+4
|
* type refactoring: part 2 (#23059)Andreas Rumpf2023-12-131-3/+3
|
* IC: progress and refactorings (#22961)Andreas Rumpf2023-11-201-1/+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: Nim intermediate representation (#22777)Andreas Rumpf2023-10-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Theoretical Benefits / Plans: - Typed assembler-like language. - Allows for a CPS transformation. - Can replace the existing C backend by a new C backend. - Can replace the VM. - Can do more effective "not nil" checking and static array bounds checking. - Can be used instead of the DFA. - Easily translatable to LLVM. - Reasonably easy to produce native code from. - Tiny memory consumption. No pointers, no cry. **In very early stages of development.** Todo: - [x] Map Nim types to IR types. - [ ] Map Nim AST to IR instructions: - [x] Map bitsets to bitops. - [ ] Implement string cases. - [ ] Implement range and index checks. - [x] Implement `default(T)` builtin. - [x] Implement multi string concat. - [ ] Write some analysis passes. - [ ] Write a backend. - [x] Integrate into the compilation pipeline.
* use strictdefs for compiler (#22365)ringabout2023-08-061-0/+3
| | | | | | | | | | | | | | | * wip; use strictdefs for compiler * checkpoint * complete the chores * more fixes * first phase cleanup * Update compiler/bitsets.nim * cleanup
* refactoring in preparation for better, simpler name mangling that wor… ↵Andreas Rumpf2023-04-241-1/+1
| | | | | | | | | | | (#21667) * refactoring in preparation for better, simpler name mangling that works with IC flawlessly * use new disamb field * see if this makes tests green * make tests green again
* fixes #20958; fixes the return type of slice function [backport] (#20959)ringabout2022-11-291-0/+3
| | | | | * fixes #20958; fixes the return type of slice function * add a testcase
* fixes #20572 (#20585)Andreas Rumpf2022-10-171-2/+2
| | | | | * fixes #20572 * added a test case
* minor typos (#17668)flywind2021-04-071-2/+2
|
* IC: green tests (#17311)Andreas Rumpf2021-03-191-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* fixes #11225; generic sandwich problems; [backport:1.2] (#17255)Andreas Rumpf2021-03-091-1/+2
| | | | | * fixes #11225; generic sandwich problems; [backport:1.2] * progress * delegating these symbols must be done via 'bind'
* IC: next steps (#16729)Andreas Rumpf2021-01-231-10/+10
| | | | | | | | | | | * 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
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-1/+1
| | | | | | | | | | | | | | | | | | | * 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-15/+15
| | | | | | | | | | | | | | | | | * 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)
* [cleanup] fix UnusedImport sempass2 compiler/semparallel.nim (#14426)Timothee Cour2020-05-211-1/+1
|
* drnim: tiny progress (#13882)Andreas Rumpf2020-04-151-1/+1
| | | | | | | | | | | * drnim: tiny progress * refactoring complete * drnim: prove .ensures annotations * Moved code around to avoid code duplication * drnim: first implementation of the 'old' property * drnim: be precise about the assignment statement * first implementation of --assumeUnique * progress on forall/exists handling
* new feature: --staticBoundChecks:on to enforce static array index checking ↵Andreas Rumpf2020-03-181-8/+8
| | | | (#10965)
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-41/+40
| | | | | | | | | | | | | | | | | | * 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
* [refactoring] moves transformation for 'spawn' into its own spawn.nim ↵Araq2019-07-141-1/+1
| | | | implementation
* more destructor based changes (#10885)Andreas Rumpf2019-03-231-1/+1
| | | | | | | | | | | * mark user defined destructors with sfOverriden to simplify the logic * refactoring in preparation to merge liftings and generic instantiations for destructors * ast: introduce nkHiddenTryStmt for destructor generation in order to be able to optimize better the code later on * renamed 'patterns' switch to 'trmacros' as it was totally misleading before * destructors: introduce tfCheckedForDestructor flag in preparation of strict =destroy checking * test for invalid/too late destructor introductions * liftdestructors: make code robust for nimsuggest * --newruntime works for hello world again * newruntime: code generation for closures
* Field checks for everybody (#8957)LemonBoy2018-10-091-2/+2
| | | | | | | | | | | | | | | | | | | | | * Field checks for JS backend * Clean nkCall nodes with no arguments Generating a nkEmpty in place of no arguments makes no sense form the AST point of view and also trips up the VM codegen. * Field checks for VM backend * Test case for #6612 This patchset fixes #6612 * Add test case for LHS double evaluation * Prevent LHS double-eval for JS backend * Prevent double evaluation in VM backend
* refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-1/+1
| | | | around explicitly
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-2/+2
|
* remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-1/+1
|
* more modules compile againAndreas Rumpf2018-05-121-62/+66
|
* fixes #2779Andreas Rumpf2018-04-111-1/+2
|
* deprecated unary '<'Andreas Rumpf2017-10-291-12/+12
|
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-1/+1
|
* compiler almost free of deprecated expr/stmt namesAndreas Rumpf2016-07-301-1/+1
|
* stdlib and compiler don't use .immediate anymoreAndreas Rumpf2016-07-291-1/+1
|
* fixes #2758Andreas Rumpf2016-07-151-3/+3
|
* disjoint checker is smarter (and slower)Araq2015-09-231-2/+2
|
* made disjoint checker smarter; fixes regressionsAraq2015-09-231-11/+18
|
* when nimvm stmt proof of conceptYuriy Glukhov2015-09-041-1/+1
|
* disjoint checker works with the new countup iteratorsAraq2015-03-141-3/+4
|
* fixes #2287Araq2015-03-121-2/+2
|
* Happy new year!Guillaume Gelin2015-01-061-1/+1
|
* fixes #1597Araq2014-12-111-8/+24
|
* 'let' within 'parallel' now worksAraq2014-09-221-2/+2
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* renamefestAraq2014-08-231-3/+3
|
* progress on 'spawn'Araq2014-08-101-4/+9
|
* 'parallel' statement works againAraq2014-08-081-1/+0
|
* Promises are now refsAraq2014-06-051-3/+3
|
* tdisjoint_slice2 worksAraq2014-05-311-1/+1
|
* 'parallel' proves array boundsAraq2014-05-291-10/+20
|
* 'parallel' statement almost workingAraq2014-05-221-38/+51
|
* 'parallel' statement: next stepsAraq2014-05-141-13/+28
|
* progress for the 'parallel' statementAraq2014-05-141-71/+84
|