summary refs log tree commit diff stats
path: root/compiler/cgen.nim
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
* | preparations of making compiler/msgs.nim free of global variablesAndreas Rumpf2018-05-171-10/+10
| |
* | extccomp: no globals anymoreAraq2018-05-161-6/+6
|/
* options.nim: no global variables anymoreAndreas Rumpf2018-05-131-51/+51
|
* move more globals into the config objectAndreas Rumpf2018-05-131-3/+3
|
* C code generator compiles againAndreas Rumpf2018-05-121-53/+57
|
* sem pass compiles againAndreas Rumpf2018-05-121-6/+4
|
* fixes #7743Andreas Rumpf2018-05-061-1/+1
|
* Disable setTerminate when noCppExceptions is defined (#7751)Emery Hemingway2018-05-041-1/+1
|