Commit Graph

152 Commits

Author SHA1 Message Date
Araq
0e439ce367 implements #78 2014-10-26 22:48:54 +01:00
Araq
7a48942719 nicer error messages (untested) 2014-10-26 19:54:43 +01:00
Araq
595cc93762 recursive tuple types are now invalid (breaking change) 2014-10-02 16:54:05 +02:00
Araq
279e897eab bugfix: 'T = ref T' is an illegal recursive type 2014-10-02 16:15:16 +02:00
Araq
e9dec2feed better lock level handling 2014-10-02 02:33:14 +02:00
Araq
7916b1f9aa implemented 'guard' annotation 2014-09-21 18:39:00 +02:00
Araq
02c076f9b4 more robust for nim check 2014-09-17 23:13:38 +02:00
Zahary Karadjov
7d5e387a48 mostly fixes #1339
The compiler hangs were caused by the interaction of tyError and the instantiation caches.
For procs, the cache wasn't able to find previously compiled proc featuring tyError in the signature.
For types, the unresolved type parameters leading to tyError were not replaced everywhere leading
to endless replaceTypeVarsT recursion for cyclic types.

The fix is still not perfect, because the handling of tyError in other places in the compiler doesn't seem
to be complete and the first test case now results in internal error (still, much better than a hang blocking
your IDE).
2014-09-05 01:02:46 +03:00
Araq
5946747970 updated the compiler to use the new symbol names 2014-08-28 23:48:42 +02:00
Araq
2781fea9e2 Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
Araq
2f43fdb837 renamefest 2014-08-23 01:43:49 +02:00
Simon Hafner
3f0c3ab6cf added bug number to comment 2014-08-20 21:16:06 +02:00
Araq
ebe313e627 fixes #1334 2014-08-19 22:35:16 +02:00
Araq
1deb9820f5 fixes #1420 2014-08-19 20:28:51 +02:00
Araq
32a5d4baf0 fixes #1442 2014-08-13 02:53:00 +02:00
Clay Sweetser
912ad820ee Fixed #1090 2014-06-15 20:01:48 -04:00
Clay Sweetser
ca1c516295 Fixing issue #1090 2014-06-15 14:56:39 -04:00
Araq
be6474af63 removed flawed thread analysis pass 2014-04-20 14:00:04 +02:00
Araq
c80d563afb actors compile again 2014-04-20 12:10:23 +02:00
Araq
4196757de7 implemented region pointers 2014-04-09 00:33:51 +02:00
Araq
62a10df765 fixes yet another option type 2014-04-03 07:54:58 +02:00
Zahary Karadjov
b2aa70c6ef fix #1018
Previously, generic types originating from the same body symbol were compared
structurally. The bug illustrates a case, where such a comparison is not correct.
The new approach follows the established method used in typeRel.
2014-03-20 22:27:49 +02:00
Zahary Karadjov
4b7655fd10 reference implementation of a vector swizzle library
This also provides the initial steps towards support for type class "filtered" type inference
fixes an "ordinal type expected" ICE, related to the use of static params
2014-03-20 01:16:50 +02:00
Zahary Karadjov
f0953db3ba handle arbitrary expressions dependent on static input params in proc signatures 2014-03-16 20:42:06 +02:00
Zahary Karadjov
862c0ef83d split the inline and closure iterators into different symbol kinds for easier discrimination between them 2014-03-06 21:57:35 +02:00
Araq
ed5bbfe36d fixes #968 2014-03-04 08:31:11 +01:00
Araq
4c26c3a428 bugfix: typo 2014-02-25 00:40:21 +01:00
Zahary Karadjov
9dd753f218 quite messy implementation of generic lambdas, needs reworking; fixes #715 2014-02-17 03:03:17 +02:00
Zahary Karadjov
f701ee086a Merge branch 'devel' of gh:/Araq/Nimrod into devel 2014-02-15 20:46:54 +02:00
Zahary Karadjov
c1f1f84194 fix some regressions caused by tyTypeDesc[tyNone] 2014-02-15 20:44:01 +02:00
Araq
d142824d65 made 'koch web' work when current dir has a space in it 2014-02-15 02:27:49 +01:00
Araq
d912d18379 tyTypeDesc and tyRange always have 1 child; this might be tyNone but it is required for skipTypes 2014-02-05 23:43:13 +01:00
Araq
99352c1e4c macro tests almost green 2014-02-03 17:35:03 +01:00
Dominik Picheta
92f7c479b9 Fixes #848. 2014-01-27 17:48:39 +00:00
Zahary Karadjov
3f71b7f1f6 implements #766;
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
2014-01-24 23:52:52 +02:00
Zahary Karadjov
a6a18be089 support for parametric user-defined type classes 2014-01-24 14:13:32 +02:00
Araq
73c6efdf66 'nil' as a statement is deprecated, use an empty 'discard' instead 2014-01-19 16:54:59 +01:00
Zahary Karadjov
1ffae7cbaf progress towards fixing tgenericshardcases 2014-01-06 00:15:55 +02:00
Zahary Karadjov
789ba107cf introduce tyFromExpr; fixes #618 2014-01-04 13:10:52 +02:00
Zahary Karadjov
8f3d5a25a6 Templates will pick the candidate in the nearest scope when symbols are mixed-in 2013-12-31 04:04:59 +02:00
Zahary Karadjov
754e2ef1db migrate the static param handling to ReplaceTypeVars; fix tgenericvariant 2013-12-30 19:15:41 +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
e3f53409f6 proc redefinition search based on the type system instead of on sloppy AST matching
This will work the same for procs/templates/macros/etc, having arbitrary mix of implicit
and explicit generics (as long as the symbols are equivalent for the purposes of overload
resolution, they will be detected as redefinitions)

fixes tgeneric
2013-12-30 10:57:12 +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
f34ca1a7d7 fix illegal recursion checks 2013-12-28 14:17:36 +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