summary refs log tree commit diff stats
path: root/compiler/ccgexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* IC: codegen: fix (#17931)Andreas Rumpf2021-05-041-1/+3
|
* -d:nimDebug: calls doAssert false instead of quit (#17739)Timothee Cour2021-04-171-2/+2
|
* cString => cSourceString; tyCString => tyCstring so that error msgs show ↵Timothee Cour2021-04-171-7/+7
| | | | cstring, not cString (#17744)
* Genode platform fixes (#17521)Emery Hemingway2021-04-091-4/+10
| | | | | | | | | | | | | | | | | | | * Genode: move dyncall failures to runtime Do not use the "error" pragma to warn that dynamic library loading is not implemented, print a message at runtime and exit. * Genode: use stricter dataspace type in page allocator * Genode: remove compiler configuration from nim.cfg Self-hosting Nim is not supported on Genode and defining the cross-compilation environment can be done externally. * Genode: use new mutex API * Genode: call nim_component_construct as a C procedure * Genode: implement echo for NimStringV2
* 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.