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
Araq
e6c5622aa7
removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes
2016-11-14 23:18:30 +01:00
Araq
b234b082b6
bootstrapping works again
2016-11-12 12:39:21 +01:00
Araq
860cbd3107
signature hashing: more progress
2016-11-11 08:58:42 +01:00
Araq
72af7e6821
use a full MD5 hash with no collision detection for proc names
2016-11-08 08:37:15 +01:00
Araq
c0b8a79315
make tests green
2016-11-08 08:37:14 +01:00
Araq
3b43cff0f8
C codegen: first version of signature hashing for better incremental builds
2016-11-08 08:37:11 +01:00
Jacek Sieka
fb7850a10a
add primitive type abi check
2016-11-03 23:04:33 +08:00
Jacek Sieka
fa86571448
abi check: prefer nim constant to enable, document
2016-11-03 22:30:00 +08:00
Jacek Sieka
be1e3c4e09
add a simple sizeof checker to compare nim & c types
2016-11-03 21:11:39 +08:00
Jacek Sieka
f5c3eb6a25
clean up tyMutable remnants
2016-10-24 23:30:10 +08:00
Jacek Sieka
b3de34548d
clean up tyConst remnants
2016-10-24 23:19:46 +08:00
Jacek Sieka
6f7b891bdc
remove remnants of tyIter
2016-10-24 21:10:48 +08:00
cheatfate
32dd1e5d3c
fix #3567
2016-09-23 23:04:09 +03:00
Andreas Rumpf
3710e62241
fixes #4625
2016-09-13 16:33:43 +02:00
Andreas Rumpf
9c44403934
fixes #4693
2016-09-01 16:19:45 +02:00