summary refs log tree commit diff stats
path: root/compiler/ccgexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* Fix #14325 (#17308)Clyybber2021-03-111-30/+22
| | | | | * Fix #14325 * Refactor and fix
* fixes #11225; generic sandwich problems; [backport:1.2] (#17255)Andreas Rumpf2021-03-091-0/+1
| | | | | * fixes #11225; generic sandwich problems; [backport:1.2] * progress * delegating these symbols must be done via 'bind'
* IC: compilerprocs are handled correctly (#17265)Andreas Rumpf2021-03-091-2/+4
| | | | | | | * IC: compilerprocs are handled correctly * IC: special logic for .exportC'ed procs * IC: 'hello world' compiles for the first round (2nd round fails) * IC: hello world seems to work
* fix #17264 [backport:1.4] (#17266)flywind2021-03-051-1/+2
| | | | | * fix #17264 * fix vm * fix js and add tests
* `--nilseqs` is now a deprecated noop (#17211)Timothee Cour2021-03-011-10/+6
| | | | | * --nilseqs is now a deprecated noop * fix tests; fix: future => sugar
* remove all uses of condsyms symbols defined prior to bootstrap nim 0.20.0 ↵Timothee Cour2021-02-171-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#16918) * nimNoArrayToCstringConversion deadcode * nimbabel deadcode * nimHasalignOf deadcode * nimvarargstyped deadcode * nimhygiene deadcode * nimNewTypedesc deadcode * nimlocks deadcode * nimHasCppDefine deadcode * nimHasRunnableExamples deadcode * nimHasNilChecks deadcode * nimSymKind deadcode * minor macros refactoring * nimVmEqIdent deadcode * nimNoNil deadcode * nimNoZeroTerminator deadcode * nimHasSymOwnerInMacro deadcode * nimVmExportFixed deadcode * nimNewRuntime deadcode * nimAshr deadcode * nimUncheckedArrayTyp deadcode * nimHasTypeof deadcode * nimErrorProcCanHaveBody deadcode * nimHasHotCodeReloading deadcode * nimHasSignatureHashInMacro deadcode * nimHasDefault deadcode * nimMacrosSizealignof deadcode
* 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: final implementation steps (#16801)Andreas Rumpf2021-01-251-1/+0
| | | | | | | | * 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-19/+78
| | | | | | | | | | | * 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 (#16550)Andreas Rumpf2021-01-071-2/+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-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>
* fix #14340 (#16386)Timothee Cour2021-01-011-1/+3
|
* use -d:nimCompilerStackraceHints in more places (#16400)Timothee Cour2020-12-291-0/+5
|
* fixes #16069; [backport:1.2] [backport:1.4] (#16115)Andreas Rumpf2020-11-241-0/+1
| | | | | * fixes #16069; refs https://github.com/nim-lang/RFCs/issues/257 [backport:1.2] [backport:1.4] * make tests green again
* Semfold for nil cast (#16030)cooldome2020-11-181-1/+3
| | | | | | | | | * bring back the semfold of nil * remove space * fix test * proc type can't be dereferenced
* Fix #15706 (#15846)Bung2020-11-071-1/+1
| | | | | * fix #15706 Underflow not detected when using dec on distinct ranges * fix #15846 first, jsgen even doesn't care of range in this op
* ARC now capable of custom extra alignment. Ref, closure and seq support. ↵cooldome2020-10-281-13/+9
| | | | (#15697)
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-10/+10
| | | | | | | | | | | | | | | | | * 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)
* fixes view types for sizeof() and --gc:orc (#15680)Andreas Rumpf2020-10-221-3/+3
|
* fixes #15652 [backport:1.4] (#15679)Andreas Rumpf2020-10-221-1/+1
|
* arc allocation method aligned (#15588)cooldome2020-10-191-8/+16
| | | | | * progress * fix typo
* fix gitignore for testament cruft (#15530)Timothee Cour2020-10-091-1/+1
| | | | | * fix gitignore for testament cruft * fix rendertree => renderTree
* const view types; fixes some cases from ↵Andreas Rumpf2020-10-051-41/+54
| | | | https://github.com/nim-lang/Nim/issues/15428 (#15488)
* closureiters: fixes #15243 (#15454) [backport:1.2]Andreas Rumpf2020-10-021-1/+17
| | | | * fixes #15243 [backport:1.2]
* fix #15405. deepcopy arc (#15410)cooldome2020-10-011-0/+4
| | | | | | | * fix #15405 * fix tests * deepcopy for ARC has to be enabled via --deepcopy:on Co-authored-by: Araq <rumpf_a@web.de>
* produce runtime type information for reified openArrays (#15415)Andreas Rumpf2020-09-271-11/+11
| | | | | * produce runtime type information for reified openArrays * added a test case
* better support for slices as views (#15414)Andreas Rumpf2020-09-271-3/+9
| | | | | | * moved view tests to tests/views * refactoring * more refactorings * better support for system.toOpenArray for first class view types
* ORC/ARC async progress (#15370)Andreas Rumpf2020-09-201-1/+1
| | | | | | | * ARC/ORC: fixes memory leak for empty seqs that have a non-zero capacity * async: minor refactorings * it helps to finish a refactoring
* allow old styled RTTI for arc/orc (#15331)Andreas Rumpf2020-09-161-32/+51
|
* borrow checking (#15282)Andreas Rumpf2020-09-091-26/+76
| | | | | | | | | | | * 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 sets for architectures with default integers smaller than 32 bits ↵PMunch2020-09-021-3/+3
| | | | (#15258) [backport]
* fixes #15210 [backport:1.2] (#15237)Andreas Rumpf2020-08-311-20/+23
| | | | | * fixes #15210 [backport:1.2] * use patched version of bigints library
* Big compiler Cleanup (#14777)Clyybber2020-08-281-1/+1
|
* Use typeflag insteadClyybber2020-08-101-1/+1
|
* Make explicit {.nimcall.} a seperate calling conventionClyybber2020-08-081-1/+1
|
* fixes #15112 (#15124)Andreas Rumpf2020-07-301-8/+12
|
* fixes #15052Andreas Rumpf2020-07-261-0/+11
|
* 'isolate' builtin; refs https://github.com/nim-lang/RFCs/issues/244 (#15011)Andreas Rumpf2020-07-201-1/+1
|
* Move `wasMoved` out of `=destroy`Clyybber2020-07-101-2/+2
|
* scoped memory management (#14790)Andreas Rumpf2020-07-041-8/+14
| | | | | | | * fixes the regressions * closes #13936 * scope based memory management implemented * enabled tcontrolflow.nim test case * final cleanups
* Deprecated laxStrings for mutating the internal zero terminator on strings ↵Juan Carlos2020-06-231-1/+1
| | | | | and its Deprecated code cleaned out (#14766) Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* init checks and 'out' parameters (#14521)Andreas Rumpf2020-06-231-7/+5
| | | | | | | | | | | * I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
* fix #14576 addr of param (including for lent) now works with nim js (#14577)Timothee Cour2020-06-061-0/+1
| | | | | * fix #14576 addr(param) now works in nim js * workaround https://github.com/nim-lang/Nim/issues/14578
* specialize genericReset (#14398)Andreas Rumpf2020-05-191-23/+23
| | | | | | | * progress * make tests green * maybe we also want to reset pointers, dunno * progress * cleanup; fixes #13879 [backport:1.2]
* Fix #14160 (#14161)Clyybber2020-04-301-1/+7
| | | | | * Fix #14160 * Add testcase
* Error -> Defect for defects (#13908)Jacek Sieka2020-04-281-1/+1
| | | | | | | | | | | | | | * Error -> Defect for defects The distinction between Error and Defect is subjective, context-dependent and somewhat arbitrary, so when looking at an exception, it's hard to guess what it is - this happens often when looking at a `raises` list _without_ opening the corresponding definition and digging through layers of inheritance. With the help of a little consistency in naming, it's at least possible to start disentangling the two error types and the standard lib can set a good example here.
* forward type alignment information to seqs (#12430)Arne Döring2020-04-191-10/+10
|
* fix #13902 distinct uint64 type corruption on 32-bit with borrow (#13907) ↵Timothee Cour2020-04-081-1/+1
| | | | | | | [backport:1.2] * fix #13902 distinct uint64 type corruption on 32-bit with borrow Co-authored-by: Timothee Cour <timothee.cour2+lightsail@gmail.com>
* Fix typeSym.getImpl for ref types (#13752)zah2020-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | | * Fix typeSym.getImpl for ref types * Fix a codegen issue affecting the test suite of nim-beacon-chain * Fix tests/stdlib/tjsonmacro To understand the fix better it may help to take a look at the history of the replaced code. The nil check that is removed in this commit was introduced in another fix that failed to identify the root cause of the issue - namely that we allow an object type to exist for which no ast is present: https://github.com/nim-lang/Nim/pull/9601/files The original intention of the code is more obvious here: https://github.com/nim-lang/Nim/pull/9538/files
* fixes #13744 (#13749)cooldome2020-03-251-0/+2
| | | | | | | * fixes #13744 * improve style Co-authored-by: cooldome <ariabushenko@gmail.ru>