summary refs log tree commit diff stats
path: root/compiler/ccgutils.nim
Commit message (Collapse)AuthorAgeFilesLines
* first steps of making 'opt' a first class type for NimAndreas Rumpf2017-09-251-1/+1
|
* some work to make 'opt' a first class typeAndreas Rumpf2017-09-241-2/+2
|
* a few tiny cleanups (#5712)Jacek Sieka2017-05-291-16/+4
| | | exposes emitLazily (for nlvm) and simplifies some conditionals
* Ascii character code 127 (DEL) is not printable.Markus F.X.J. Oberhumer2017-05-161-1/+1
|
* introduce tyInferred for the unbound concept type paramsZahary Karadjov2017-03-241-1/+1
| | | | | | | | | | | | | | | | | | * Why is tyInferred needed? The bindings in TCandidate are capable of inferring types within a single call expression. In concepts, we need to infer types in the same way, but across the whole body of the concept. Previously, once a concept type param was inferred, it was destructively mutated using t.assignType, but this proved to be problematic in the presence of overloads, because the bindings established while a non-matching overload is tested must be reverted/forgotten. tyInferred offers a non-destructive way to keep track of the inference progress. While introducing new types usually requires a lot of code paths in the compiler to updated, currently tyInferred is only a short-lived type within the concept body pass and it's unlikely to introduce breakage elsewhere in the compiler.
* support for accessing the inferred concept type params with the dot operatorZahary Karadjov2017-03-241-0/+2
|
* Fixes #5452Yuriy Glukhov2017-02-281-1/+1
|
* fixes a minor codegen issue where name mangling could produce an identifier ↵Araq2017-02-261-1/+1
| | | | used by the codegen; refs #5437
* removed compiler internal list implementation (#5371)Arne Döring2017-02-221-1/+1
|
* name mangling bugfixes; ndi file generation for debugger supportAndreas Rumpf2017-02-031-4/+8
|
* new name mangling rules for easier debuggingAndreas Rumpf2017-02-021-14/+32
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-2/+2
| | | | instead in preparation for further bugfixes
* signature hashing: more progressAraq2016-11-111-75/+65
|
* clean up tyMutable remnantsJacek Sieka2016-10-241-2/+2
|
* clean up tyConst remnantsJacek Sieka2016-10-241-2/+2
|
* clean up tyBigNum remnantsJacek Sieka2016-10-241-2/+2
|
* remove remnants of tyIterJacek Sieka2016-10-241-1/+2
|
* get rid of deprecated toLower/toUpperAndreas Rumpf2016-07-191-1/+1
|
* fixes #4371Andreas Rumpf2016-07-081-1/+1
|
* fixes #3329Araq2015-09-181-1/+4
|
* fixes #2551; fixes #2212; breaks bootstrapping in debug mode; bootstrap with ↵Araq2015-04-251-1/+1
| | | | -d:release
* Get rid of deprecation warningsdef2015-04-071-3/+3
|
* prevent name mangling for C++ DLLsAraq2015-03-051-29/+29
|
* test tsets2.nim compiles againAraq2015-03-011-3/+3
|
* fixes #2199, fixes #2197Araq2015-02-241-22/+26
|
* Fix typosFederico Ceratto2015-02-151-1/+1
|
* preparations for C++ template supportAraq2015-01-231-4/+2
|
* implemented mixed mode codegenAraq2014-10-031-1/+1
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* renamefestAraq2014-08-231-1/+1
|
* fixes #1143Araq2014-08-191-1/+5
|
* progress on deepCopyAraq2014-08-011-2/+4
|
* Document manglingflaviut2014-05-261-0/+3
|
* Make codegen for `1` and similar validflaviut2014-05-161-0/+21
|
* handle arbitrary expressions dependent on static input params in proc signaturesZahary Karadjov2014-03-161-2/+3
|
* fixes #968Araq2014-03-041-1/+0
|
* implements #766;Zahary Karadjov2014-01-241-1/+1
| | | | | | expressions such as Type.field are now recognised by the compiler. This also fixes a bug, preventing the user-defined to check for the presence of regular fields in addition to procs
* introduce tyFromExpr; fixes #618Zahary Karadjov2014-01-041-3/+2
|
* Merge branch 'upstream' into develZahary Karadjov2013-12-291-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: compiler/ccgutils.nim compiler/msgs.nim compiler/sem.nim compiler/semexprs.nim compiler/seminst.nim compiler/semmagic.nim compiler/semstmts.nim compiler/semtypes.nim compiler/semtypinst.nim compiler/sigmatch.nim compiler/types.nim compiler/vmgen.nim lib/core/macros.nim lib/system.nim tests/reject/tenummix.nim web/news.txt
| * static params: expr[T] is now static[T]Zahary Karadjov2013-12-191-1/+1
| | | | | | | | | | | | | | This introduces tyStatic and successfully bootstraps and handles few simple test cases. Static params within macros are no longer treated as PNimrodNodes - they are now equivalent to constants of the designated type.
* | case consistency part 4Araq2013-12-271-5/+5
| |
* | case consistency part 1Araq2013-12-271-18/+18
|/
* progress towards adding negative type classesZahary Karadjov2013-12-091-1/+1
| | | | | | [unittest bugfixes] the block form of check now allows comments errors when inspecting the arguments of var-accepting procs
* made some tests green; implemented 'from module import nil'Araq2013-05-191-1/+3
|
* Removes executable bit for text files.Grzegorz Adam Hankiewicz2013-03-161-0/+0
|
* fixes for the new overloading resolutionAraq2013-03-031-3/+2
|
* make some tests greenAraq2013-03-031-2/+3
|
* adds an option to interleave the generated code with snippets from the ↵Zahary Karadjov2012-12-021-25/+0
| | | | | | | | | | | | | | | original source Lines from the original source are outputted as comments next to line directives. Hopefully, this will make debugging codegen problems easier. Other changes: The frame setup code now uses a single-line C macro. My motivation was to reduce the noise in the generated output and make it easier to step over the boiler-plate code, but counter-intuitively this also improved the overall compilation speed a little bit so I applied the same treatment to line tracking too (this reduces the size of the generated files and the explanation is that probably the I/O overhead dominates the macro expansion costs).
* [caas] first version that actually works (still has a lot of logical memory ↵Zahary Karadjov2012-11-281-0/+6
| | | | leaks on recompilation)
* bugfixes for closuresAraq2012-06-211-2/+12
|