Commit Graph

202 Commits

Author SHA1 Message Date
Andreas Rumpf
4eaa2bf15d improve code generation for custom strings/seqs 2017-10-14 20:37:49 +02:00
Andreas Rumpf
d8746398c4 allow macros to produce nnkGotoState and nkState 2017-10-09 21:12:40 +02:00
Andreas Rumpf
f7f3a25be8 first steps of making 'opt' a first class type for Nim 2017-09-25 13:19:36 +02:00
Andreas Rumpf
405b9c8a85 refactoring: TLoc knows the node it originated from; it is planned to use this to produce better C code (move optimizations) 2017-09-21 14:38:45 +02:00
Andreas Rumpf
a04c7d8b38 introduce OnHeapNew and rename TLoc.s to TLoc.storage 2017-09-21 11:38:04 +02:00
cooldome
82453825e9 Make Nim gdb pretty print friendly (#6240) 2017-08-24 10:21:38 +02:00
Arne Döring
4c31bc1cd1 type kind is now part of the generated name for types (#6203) 2017-08-10 14:36:21 +02:00
andri lim
57edf619fe fixes #6016 union alias trigger bad codegen (#6117)
* fixes #6016 union alias trigger bad codegen
* cpp test ok
* merging some test into one file
2017-08-03 11:03:47 +02:00
Andreas Rumpf
ad608838bf closures have an object type field so that we can perform correct deepCopy() for the BoehmGC target 2017-07-22 11:10:52 +02:00
Araq
91eba77b96 fixes #4763 2017-07-17 09:28:03 +02:00
Andreas Rumpf
91a3cb67ec fixes #5824 2017-06-13 13:51:33 +02:00
Andreas Rumpf
503f780676 Merge branch 'zahary' into araq2 2017-05-16 17:32:18 +02:00
Zahary Karadjov
4da8536701 fix compilation regression in alea 2017-04-16 13:42:33 +03:00
Jacek Sieka
e512358bc9 Linux abi take 3 (#5692)
* avoid generating object fields for imported types
* fix some abi/type issues for linux_amd64
2017-04-12 22:57:10 +02:00
Zahary Karadjov
e11b3520ff fix #5654 2017-04-07 19:35:05 +03:00
Zahary Karadjov
c605d57574 restore compilation and make all concepts tests green 2017-03-24 17:03:55 +02:00
Zahary Karadjov
76c663f692 support for inferring static[T] concept params 2017-03-24 16:58:15 +02:00
Zahary Karadjov
8cd5f1f8f5 introduce tyInferred for the unbound concept type params
* 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.
2017-03-24 16:58:15 +02:00
Araq
46b672a6c4 minor codegen bugfix: don't use names for closures that are also mangled Nim names 2017-02-26 17:41:00 +01:00
Araq
4c5ecb46b0 fixes a minor codegen issue where name mangling could produce an identifier used by the codegen; refs #5437 2017-02-26 17:41:00 +01:00
Araq
dd8cbf5fca fixes #5404 2017-02-17 17:44:52 +01:00
Andreas Rumpf
848676cec6 name mangling bugfixes; ndi file generation for debugger support 2017-02-03 09:49:36 +01:00
Andreas Rumpf
fab69661ad new name mangling rules for easier debugging 2017-02-02 16:27:48 +01:00
Andreas Rumpf
56aa1ac5bc new name mangling scheme implemented 2017-02-02 10:30:01 +01:00
Andreas Rumpf
d9cf9b079e tiny progress on the name mangling 2017-02-01 23:39:40 +01:00
Andreas Rumpf
823fbd4e40 default GC can do a sort of heap dump via -d:nimTypeNames and dumpNumberOfInstances() 2017-01-14 04:00:06 +01:00
Araq
9c47bb9cc0 happy new year 2017-01-07 22:35:09 +01:00
Araq
93fb8b67b9 fixes #5142 2016-12-23 12:27:14 +01:00
Araq
0ef6815529 fixes #5140 2016-12-22 16:43:37 +01:00
Araq
237e2664e0 make tsets test green again 2016-12-22 09:53:46 +01:00
Andreas Rumpf
7bd473c59b fixes #5137 2016-12-22 09:13:22 +01:00
Araq
02d39277eb code cleanup and getting rid of debugging comments that nihilated the sighashes approach 2016-12-13 12:18:41 +01:00
Araq
71a23fbbb7 sighashes: do not use the ID mechanism at all 2016-12-13 09:22:20 +01:00
Araq
94e1488c24 store typeinfo also in local hash table to prevent multiple 'extern' declarations in the generated C code 2016-12-10 02:28:54 +01:00
Araq
e07f0170e3 don't use sfExported for sig hashing 2016-12-07 13:41:18 +01:00
Andreas Rumpf
eafa65fc64 real world examples compile 2016-12-06 15:37:09 +01:00
Araq
80cbe61c6c made more tests green 2016-12-05 16:27:37 +01:00
Araq
ba38b83dd5 refactoring: C codegen with fewer global variables 2016-12-05 12:14:24 +01:00
Araq
862a32fe85 make tmissing_ccgtrav_unique_type green again 2016-12-04 22:10:58 +01:00
Araq
534daff013 more tests compile 2016-12-02 13:48:47 +01:00
Araq
42ae2064dd more tests work 2016-12-02 11:44:28 +01:00
Araq
2eee15d7f3 Merge branch 'devel' into sighashes 2016-12-01 10:06:41 +01:00
Araq
f9e54c1749 use preferName for type info names 2016-11-30 01:45:47 +01:00
Araq
a173703015 move recursion check up to fix tectype regression 2016-11-29 11:27:18 +01:00
Araq
49667798eb further progress; more tests are green 2016-11-28 21:45:29 +01:00
Araq
27723af469 Merge branch 'devel' into sighashes 2016-11-28 20:59:30 +01:00
Araq
ebaf57ea3b further progress 2016-11-28 14:16:28 +01:00
Andreas Rumpf
7ca72a733c use -d:nimTypeNames to create RTTI with type names 2016-11-28 10:56:45 +01:00
Andreas Rumpf
e7cdb1d694 attempt to fix things 2016-11-23 14:24:45 +01:00
Araq
0e1304a3e2 the compiler uses tyAlias internally; tester compiles again 2016-11-16 00:13:45 +01:00