Commit graph

104 commits

Author SHA1 Message Date
Andreas Rumpf
e65c89ee28 fixes #4177 2016-05-28 22:40:28 +02:00
Andreas Rumpf
8dfdea8919 fixes #4097 2016-04-19 11:56:35 +02:00
Andreas Rumpf
1afdefcbe9 added experimental .this pragma 2016-02-28 03:17:20 +01:00
Araq
86e2d6ee90 fixes #3476 2015-10-27 08:37:56 +01:00
Araq
d93507fd2e fixes #3338 2015-10-22 10:24:46 +02:00
Araq
c921f30b1d renamed inCompilesContext to compilesContextId; added test case for #3313 2015-09-18 11:29:43 +02:00
Araq
5b2f54ffa1 fixes #3313 2015-09-18 11:24:16 +02:00
Araq
36f68e1650 fixes #3329 2015-09-18 02:24:12 +02:00
Araq
612cd25d5d usage of NimNode triggers .compileTime context; fixes #1679 2015-09-14 12:41:49 +02:00
Araq
c27019f4d9 fixes generic instantations in concepts 2015-09-12 19:40:08 +02:00
Andreas Rumpf
b3abcaf9e8 Merge pull request #3177 from zah/generic-types-in-macros
Generic types in macros
2015-08-14 01:51:25 +02:00
Araq
35f8cc0bdd fixes #2752 2015-08-09 20:29:03 +02:00
Zahary Karadjov
02f97489b7 fix #1858 again; restores the support for static macro params 2015-08-02 23:58:22 +03:00
Araq
26eae7d00e fixes #2470, fixes #1354 2015-04-28 20:21:53 +02:00
Araq
d89a20cc1d fixes #2509 2015-04-11 10:01:10 +02:00
Araq
4d8cd34c9e fixes #794 2015-03-07 15:43:35 +01:00
Araq
f2cdbc92eb fixes #2215 2015-02-25 20:32:32 +01:00
Araq
b7f11b8b0a fixes #2125 2015-02-18 13:44:01 +01:00
Federico Ceratto
c95f6f117a Fix typos 2015-02-15 16:06:06 +00:00
Araq
34b4e9fc96 fixes #2004 2015-02-08 15:43:50 +01:00
Dustin Lacewell
0619383f46 Revert 5e4ae8d 2015-01-07 14:07:06 -08:00
Zahary Karadjov
5e4ae8dbb4 fix #1858; Add support for generic templates and macros
Implementation notes:
Just after overload resolution, the resolved generic params will be added to the
call expression to be later processed in evalTemplate and evalMacroCall. These
procs have been modified to handle the increased number of parameters, but one
remaining issue is that immediate templates and macros don't go through the same
process. The next commit will outlaw the use of generic parameters with such macros.
2015-01-05 03:53:31 +02:00
Zahary Karadjov
da36a847a7 fix #1789 (binding to static params during generic proc sigmatch) 2014-12-31 01:45:23 +02:00
Araq
8349cee613 fixes #1055 2014-11-16 20:32:05 +01:00
Araq
2781fea9e2 Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
Araq
06ad50b671 fixes #669 2014-08-14 21:56:06 +02:00
Clay Sweetser
93fa75bb07 Fixed #1172 (for real) 2014-06-01 17:40:06 -04:00
Araq
be6474af63 removed flawed thread analysis pass 2014-04-20 14:00:04 +02:00
Zahary Karadjov
49b0440c47 make some tests green 2014-03-16 20:42:49 +02:00
Zahary Karadjov
ac271e76b1 more robust handling of proc signatures containing inter-param type references 2014-03-16 20:42:06 +02:00
Zahary Karadjov
37b199d34a first phase of tyGenericParam reforms needed for static params 2014-03-16 20:42:06 +02:00
Zahary Karadjov
085b339b8b implements higher-order inline iterators and return type inference for iterators 2014-03-08 22:57:06 +02:00
Zahary Karadjov
1ffae7cbaf progress towards fixing tgenericshardcases 2014-01-06 00:15:55 +02:00
Zahary Karadjov
8e0941576f clean-up some obsolete code; close #602 2013-12-31 12:39:43 +02:00
Zahary Karadjov
7e24cf26de handle recursive types during the instantiation of meta types; propagate tfHasMeta more carefully 2013-12-30 16:06:32 +02:00
Zahary Karadjov
afddae5aaf Merge branch 'upstream' into devel
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
2013-12-29 17:21:00 +02:00
Zahary Karadjov
72291875bf integrate the logic of fixupProcType into ReplaceTypeVars 2013-12-29 16:08:33 +02:00
Araq
b731e6ef1c case consistency: cs:partial bootstraps on windows 2013-12-29 03:19:10 +01:00
Araq
438703f59e case consistency: next steps 2013-12-29 01:13:51 +01:00
Zahary Karadjov
66a2556525 make more tests green 2013-12-29 00:00:37 +02:00
Zahary Karadjov
a59f13b00d lift generic parameters from concrete composite type classes 2013-12-28 12:50:45 +02:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Zahary Karadjov
a27eb51535 towards support for composite type classes such as seq[Number] and SquareMatrix[T] 2013-12-27 18:34:28 +02:00
Araq
2df9b442c6 case consistency part 1 2013-12-27 15:48:53 +01:00
Zahary Karadjov
027f30610e static params: expr[T] is now static[T]
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.
2013-12-19 01:06:38 +02:00
Zahary Karadjov
de3b7cd413 progress towards adding negative type classes
[unittest bugfixes]
the block form of check now allows comments
errors when inspecting the arguments of var-accepting procs
2013-12-09 00:09:03 +02:00
Zahary Karadjov
fee2a7ecfa Experimental support for delayed instantiation of generics
This postpones the semantic pass over the generic's body until
the generic is instantiated. There are several pros and cons for
this method and the capabilities that it enables may still be possible
in the old framework if we teach it a few new trick. Such an attempt
will follow in the next commits.

pros:
1) It allows macros to be expanded during generic instantiation that
will provide the body of the generic. See ``tmacrogenerics``.
2) The instantiation code is dramatically simplified. Dealing with unknown
types in the generic's body pre-pass requires a lot of hacky code and error
silencing in semTypeNode. See ``tgenericshardcases``.

cons:
1) There is a performance penalty of roughly 5% when bootstrapping.
2) Certain errors that used to be detected in the previous pre-pass won't
be detected with the new scheme until instantiation.
2013-08-23 01:10:20 +03:00
Zahary Karadjov
ca3a4ce672 hacky fix for generic constraints matching 2013-08-19 01:48:25 +03:00
Zahary Karadjov
b01d9b6181 work-in-progress for compiling generics in their owner module 2013-08-19 01:45:16 +03:00
Zahary Karadjov
c6d0611112 Revert "Revert "made some tests green"" 2013-08-19 01:35:33 +03:00