Commit Graph

2657 Commits

Author SHA1 Message Date
Zahary Karadjov
8e0941576f clean-up some obsolete code; close #602 2013-12-31 12:39:43 +02:00
Zahary Karadjov
ed3ab6539d close #517 2013-12-31 04:13:51 +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
af7c3251cd properly remove intLiterals from proc signatures; fixes trettypeinference 2013-12-30 17:07:49 +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
88873f7965 add incl/excl for sets accepting accepting other sets 2013-12-30 14:25:05 +02:00
Zahary Karadjov
046d829e5d Introduce a PreMain proc in the C codegen
The rationale here is that it has become too hard to step into a program
when #line directives are enabled. You have to skip over many lines of init
code that doesn't have corresponding lines in the nimrod program.
Now, you can just step-out of PreMain and go straight to the useful code
in NimMain.
2013-12-30 11:02:48 +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
fa3bb8d66b restore return type inference 2013-12-30 00:03:57 +02:00
Zahary Karadjov
723efe7cfb fix the filtering of void params in procs' signatures 2013-12-29 19:26:52 +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
437cfa73ab todo.txt updated 2013-12-29 03:45:10 +01:00
Araq
4ed8cec7ca case consistency: niminst 2013-12-29 03:42:20 +01:00
Araq
286f166304 case consistency for linux 2013-12-29 03:32:46 +01: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
Araq
1101a40f91 improvements for 'pretty' 2013-12-28 23:30:53 +01:00
Zahary Karadjov
66a2556525 make more tests green 2013-12-29 00:00:37 +02:00
Zahary Karadjov
eb1d23c0c7 fixes #787 2013-12-28 23:53:48 +02:00
Zahary Karadjov
5d75ce2f2e fix tclosure4 2013-12-28 15:07:30 +02: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
f2b9905b4e case consistency part 9 2013-12-28 01:57:19 +01:00
Araq
e2648fa3fb case consistency part 8 2013-12-28 01:47:40 +01:00
Araq
7e0da3e8f7 case consistency part 7 2013-12-28 01:36:35 +01:00
Araq
bf205fa85d case consistency part 6 2013-12-28 01:17:02 +01:00
Araq
9c3751a37c case consistency part 5 2013-12-28 00:37:45 +01:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
706266d8b7 case consistency part 3 2013-12-27 21:46:43 +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
a427648c48 case consistency part 2 2013-12-27 16:35:21 +01:00
Araq
2df9b442c6 case consistency part 1 2013-12-27 15:48:53 +01:00
Zahary Karadjov
4eea2f17d3 forgotten modification to the news files 2013-12-27 13:00:45 +02:00
Zahary Karadjov
e2594f44bd bugfix: in some contexts, newSeq[T](n) is incorrectly inferred to have a seq[typedesc[T]] type 2013-12-26 01:09:10 +02:00
Zahary Karadjov
86108be24b test case for semistatic 2013-12-25 22:40:06 +02:00
Zahary Karadjov
edab4aaad0 better integration of tyStatic into typeRel 2013-12-25 22:29:44 +02:00
Zahary Karadjov
1d02f2ea53 wip type class reforms (the compiler bootstraps fine)
* replace tfAny and tfAll with tyAnd and tyOr
* integrate matchTypeClass into typeRel
* introduce tyBuiltInTypeClass to handle types such as tuple, object, proc, etc
2013-12-25 19:25:04 +02:00
Araq
9e92455a53 templates can access hidden fields 2013-12-25 14:53:00 +01:00
Zahary Karadjov
299cefdc98 make the current PContext accessible through TCandidate
the goal here is to remove all the hacks from ParamTypeMatch and to handle
all type matching in typeRel (the context there is required to evaluate any static
params and to run the compilation tests of user-defined type classes)
2013-12-25 00:58:22 +02:00
Zahary Karadjov
952dbc4b8f documented static params 2013-12-25 00:32:53 +02:00
Araq
4d01408a46 bootstraps with new template symbol binding rules 2013-12-24 16:42:24 +01:00
Araq
83a0a31276 attempt to merge newtempl 2013-12-24 14:04:18 +01:00
Araq
4203e8955c Merge branch 'newtempl' into devel
Conflicts:
	lib/system.nim
	tests/reject/tenummix.nim
	todo.txt
2013-12-24 02:10:59 +01:00
Araq
84e4710320 bugfix: InvalidSockets needs to be a let variable 2013-12-24 01:39:33 +01:00
Araq
1081c104d0 Merge branch 'vm2' of github.com:Araq/Nimrod into vm2 2013-12-24 01:30:48 +01:00
Araq
feb9af48f1 NoFakeVars progress 2013-12-24 00:21:22 +01:00
Araq
32ef1f8f32 vm: FFI improvements 2013-12-23 20:12:13 +01:00
Araq
4447c1b7e3 tcnstseq works again 2013-12-23 08:28:32 +01:00