summary refs log tree commit diff stats
path: root/compiler/cgen.nim
Commit message (Collapse)AuthorAgeFilesLines
* helpers2 now has a real nameAraq2019-02-071-1/+1
|
* gc: destructors is beginning to work (#10483)Andreas Rumpf2019-01-291-0/+6
| | | | | | | | | | | | | | | | * kochdocs.nim: code cleanup * docgen: nicer indentation * parser.nim: code cleanup * fixes #10458 * make tests green again * make =destroy mixins * gc:destructors: produced C code is almost working * --gc:destructors simple program compiles (but leaks memory) * gc:destructors make examples compile in C++ mode * destructors: string implementation bugfixes * strs.nim: minor code cleanup * destructors: builtin seqs are beginning to work * remove debugging helpers
* Fixes #10352 (#10416)slangmgh2019-01-281-10/+14
|
* make DLLs tests compile again; remove dependency on nimbase.h slightlyAraq2019-01-231-2/+16
|
* improve the generated code size for --gc:regionsAraq2019-01-231-1/+1
|
* Restore compatibility with old vcc versions [backport] (#10415)LemonBoy2019-01-221-14/+14
| | | | | Local variables are declared before anything else. Fixes #10352
* fixes #10148 (#10149)cooldome2018-12-311-13/+18
| | | | | * fixes #10148 * fix a typo
* Dead code elimination for entire modules and their init procs if empty (#10032)cooldome2018-12-301-87/+160
| | | | | | * fixes #9798 * Change order of write modules * Move datInit calls ahead of initStackBottom
* refs #9880 show index and bound in lots of `index out of bounds` errorsTimothee Cour2018-12-091-0/+2
|
* More dead code (#9835)Jacek Sieka2018-12-041-2/+2
| | | | | | * remove more assignment flags * needsComplexAssignment > containsGarbageCollectedRef * remove OnStackShadowDup
* IC: further progressAraq2018-12-011-1/+1
|
* compiler: remove unused assignment flags (#9760)Jacek Sieka2018-11-211-2/+2
|
* Simplify cgen forward proc (#9635)Jacek Sieka2018-11-071-65/+19
| | | | | | | | | | * cgen: remove module resetting (unused) * cgen: keep single list of forwarded modules fewer counters to keep track of * cgen: fix module lookup
* make Nim take roughly 100MB less RAM for bootstrapping via a new compiler ↵Andreas Rumpf2018-11-071-1/+4
| | | | switch -d:leanCompiler; useful for the Raberry PI
* fixes #5549Araq2018-10-301-15/+16
|
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-5/+8
| | | | | | | | | | | | | | | gen (#8489) * Ast no transformation * Add getImplNoTransform to the macros module * progress on delaying transf * Fix methods tranformation * Fix lazy lambdalifting * fix create thread wrapper * transform for lambda lifting * improve getImplTransformed * Fix destructor tests * try to fix nimprof for linux
* gogc: GCC-8.2.0 compatibility and other improvements (#9211)Ștefan Talpalaru2018-10-111-2/+6
| | | | | | | | - Go's write barriers are now plugged-in in all the relevant points - "gcGo" is correctly classified by usesWriteBarrier() - some gogc structures and functions now use golib wrappers to keep GCC version-specific conditions out of the compiler/stdlib code - we no longer allow mixing the C malloc with Go's - fix a problem with string copying
* Fix wrong heuristic in codegen (#9293)LemonBoy2018-10-111-1/+7
| | | | | A bare return may trigger the insertion of a genericReset. Fixes #9286
* Fixes #9154 (#9193)manterolat2018-10-101-0/+3
|
* Make the registered passes local to the ModuleGraph (#9259)LemonBoy2018-10-091-1/+1
| | | Closes #9068
* fixes #9222 (#9224)cooldome2018-10-091-1/+6
|
* Merge pull request #8983 from cooldome/codegen_crashAndreas Rumpf2018-09-181-1/+1
|\ | | | | Fixes 8979
| * Fixes 8979Andrii Riabushenko2018-09-161-1/+1
| |
* | Removed optUseNimNamespace, removed useless nil checkGiovanni2018-09-161-7/+7
| |
* | improve the compiler option "cppCompileToNamespace", a custom namespace can ↵Giovanni2018-09-151-7/+12
| | | | | | | | now be set
* | compiler refactoring; use typesafe path handing; docgen: render symbols ↵Andreas Rumpf2018-09-071-17/+18
|/ | | | between modules
* optimize away genericReset for result assignment; refs #8745Araq2018-08-271-3/+112
|
* fixes merge conflictAndreas Rumpf2018-08-191-14/+20
|\
| * Fixes 8535 (#8591)LemonBoy2018-08-171-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Goodbye postInitProc * Give preInitProc its own scope Avoid any conflict between the variables introduced by preInitProc and initProc since both are codegen'd in the same function body. * Fix codegen for global var init in emulated TLS Fixes #8535 * Add test for #8535 * Keep a bogus stack frame around * Remove more dead code
* | --gc:destructors: next steps; WIPAndreas Rumpf2018-07-211-1/+3
| |
* | fix merge conflictAndreas Rumpf2018-07-181-10/+4
|\|
| * Fix #8345 (#8350)Aaron Levine2018-07-181-0/+1
| |
| * Don't depend on string.h in codegen (#8299)Yuriy Glukhov2018-07-131-10/+3
| |
* | WIP: strings/seqs based on destructorsAndreas Rumpf2018-07-171-1/+4
| |
* | more progress on destructor based stringsAndreas Rumpf2018-07-131-5/+11
|/
* Generate dynlib strings as a single rope (#8247)LemonBoy2018-07-081-1/+3
| | | | | | In order not to trip the optimization in genInfixCall we have to do so. The same trick is also used in setExternName. Fixes #8241
* codgen refactoring: prepare for alternative string/seq implementationsAndreas Rumpf2018-06-291-3/+6
|
* Don't consider concept types as non-complex during codegen (#8119)LemonBoy2018-06-271-1/+1
| | | Fixes #7125
* Fixes #6803Yuriy Glukhov2018-06-111-13/+8
|
* fixes merge conflictAndreas Rumpf2018-06-111-2/+8
|\
| * Native access to Genode environmentEmery Hemingway2018-06-071-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a 'GenodeEnv' type and a 'componentConstructHook' to the system module. The 'componentConstructHook' allows for detection of POSIX style programs that exit implicitly or native Genode components that initialize to serve RPC requests and OS signals. This hook takes a 'GenodeEnv' argument so that the environment interface is passed cleanly to application code after globals are initialized. This is an typed pointer to a C++ object, procedures for accessing the environment will be available from a Nimble library and not included in the standard library. The standard library has an internal pointer to the environment object but this is not for external use, the undocumented global environment pointer has been removed.
* | fixed merge conflictAndreas Rumpf2018-06-041-1/+1
|\|
| * Support multi byte characters in module names (#7916)Oscar Nihlgård2018-05-311-1/+1
| |
* | incremental compilation: implemented basic replay logicAndreas Rumpf2018-06-021-7/+8
| |
* | baby steps for incremental compilationAndreas Rumpf2018-05-301-10/+7
| |
* | remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-4/+4
| |
* | Merge branch 'devel' into araq-big-refactoringAndreas Rumpf2018-05-211-4/+4
|\|
| * Allow better optimisations by removing NOINLINE from module init procsYuriy Glukhov2018-05-161-4/+4
| |
* | platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-43/+44
| |
* | compiler/ropes.nim has no global error handler anymoreAndreas Rumpf2018-05-171-6/+12
| |