Commit graph

295 commits

Author SHA1 Message Date
Zahary Karadjov
02533c260b fixed #597 2014-01-02 17:55:18 +02:00
Zahary Karadjov
8e0941576f clean-up some obsolete code; close #602 2013-12-31 12:39:43 +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
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
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
2df9b442c6 case consistency part 1 2013-12-27 15:48:53 +01:00
Araq
4ffe6a8282 new VM: passes more tests 2013-12-06 01:48:02 +01:00
Araq
5eba93d584 Merge branch 'master' into vm2
Conflicts:
	compiler/sem.nim
2013-12-05 00:03:27 +01:00
Araq
5dcfa97fb9 fixes #696 2013-12-01 17:02:56 +01:00
Araq
cd1f96d421 fixes #663 2013-11-19 15:11:44 +01:00
Andreas Rumpf
fb810e25c4 Merge pull request #680 from Varriount/core/fix-generic-crashes
Prevent lambdas from crashing if given implicit generic parameters.
2013-11-19 02:34:22 -08:00
Clay Sweetser
f279d465d0 Prevent lambdas from crashing if given implicit generic parameters.
Fixes issues #599 and #641 (and possibly other generic-related issues)
2013-11-18 17:26:53 -05:00
Zahary Karadjov
a068aaed3c simple unit test and better documentation for the user defined type classes 2013-11-17 22:50:26 +02:00
Araq
4cda0861f5 tcnstseq works again 2013-11-07 00:25:54 +01:00
Araq
6a9baf3fd7 compiler bootstraps with new VM 2013-10-15 08:06:54 +02:00
Araq
9de3bc8ef6 improvements for TR macros 2013-09-17 23:43:07 +02:00
Zahary Karadjov
6082595e96 Merge branch 'type-classes' into upstream 2013-09-03 03:14:56 +03:00
Araq
b40ab4dc9e fixes #554, fixes #179 2013-08-31 11:49:33 +02:00
Araq
4d9b2f671a fixes #578 2013-08-30 22:47:14 +02:00
Zahary Karadjov
28d9398de7 implemented delegators and improved the error messages of unmatched type classes 2013-08-26 23:29:24 +03:00
Zahary Karadjov
89086a8e19 prevent eval crashes due to PContext-dependent ops not being available in evalConstExpr 2013-08-25 18:11:28 +03: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
f760bc243b Revert "Revert "static and default params for generics""
This reverts commit 0662ec4a43.
2013-08-19 01:29:37 +03:00
Araq
731c6f9083 'nimrod pretty' usable 2013-07-31 20:35:04 +02:00
Araq
1bdc0d1dd3 fixes lots of regressions 2013-06-29 10:04:18 +02:00
Araq
2ca05eeb16 var tuple unpacking works at compile time 2013-06-28 08:40:49 +02:00
Araq
d4c91bbd85 improvements for 'not nil' checking 2013-06-13 01:40:11 +02:00
Araq
23ef565a3c implemented large parts of the 'not nil' checking 2013-06-09 23:29:43 +02:00
Araq
2aaa8f7909 implemented dataflow analysis; activate via --warning[Uninit]:on 2013-06-04 21:58:39 +02:00
Araq
2f5d5e3ba7 fixes #451 2013-06-04 07:48:46 +02:00
Araq
0662ec4a43 Revert "static and default params for generics"
This reverts commit 46813bbe4e.
2013-05-27 23:18:38 +02:00
Zahary Karadjov
46813bbe4e static and default params for generics 2013-05-26 13:59:39 +03:00
Araq
1c9b4e5d33 made some tests green; implemented 'from module import nil' 2013-05-19 23:17:16 +02:00
Araq
7b36d3d6ff made some tests green 2013-05-19 17:06:11 +02:00
Araq
9f6547ba63 fixes #433 2013-05-18 23:41:44 +02:00
Araq
635ad3b336 Merge branch 'master' of github.com:Araq/Nimrod 2013-05-14 00:59:07 +02:00
Araq
9b9a180947 'inject' for 'for' loop variables 2013-05-14 00:41:07 +02:00
Zahary Karadjov
1d29d24465 documented the `noforward` pragma 2013-05-12 16:14:28 +03:00
Zahary Karadjov
14b5d5f262 merged the persistent scopes work with the delayed proc compilation strategy 2013-05-12 14:41:32 +03:00
Zahary Karadjov
f317807a89 final fixes giving us a working compiler 2013-05-12 02:19:17 +03:00
Zahary Karadjov
7a2b1a7520 get rid of ImportTablePos and ModuleTablePos 2013-05-12 01:20:40 +03:00
Zahary Karadjov
3d1c6de638 get rid of the SymTab* procs in astalgo 2013-05-12 00:49:00 +03:00
Zahary Karadjov
9a6f47ae69 switch to a linked list of scopes 2013-05-11 23:45:20 +03:00
Zahary Karadjov
f44a4362bb added a `noforward` pragma that enables a new compilation strategy
not requiring forward declarations on a per-module basis
2013-05-11 22:47:37 +03:00
Araq
9fc98cefda Merge branch 'master' into newparser 2013-05-07 18:44:24 +02:00
Araq
4de6d1be72 fixed void context detection 2013-05-07 13:54:38 +02:00
Araq
cb51c1a0e7 more intelligent handling of 'discardable' 2013-05-07 11:13:29 +02:00
Araq
635469ec45 fixes #121 2013-05-06 20:36:03 +02:00