Commit Graph

108 Commits

Author SHA1 Message Date
Andreas Rumpf
f5fa5dae85 generic multi-methods should work now 2016-07-28 20:23:24 +02:00
Andreas Rumpf
e9eab32e54 new language feature: explicit 'import system' statements are allowed 2016-07-07 01:02:12 +02:00
Andreas Rumpf
e52044660d Merge branch 'patch/fix-3496-generic-tmpl-args' of https://github.com/nanoant/Nim into nanoant-patch/fix-3496-generic-tmpl-args 2016-05-29 23:58:25 +02:00
Andreas Rumpf
6d76df8454 fixes #4227 2016-05-27 19:18:08 +02:00
Andreas Rumpf
38dee2095c added 'sig' feature; removed tfShared support in the compiler 2016-02-28 19:56:41 +01:00
Andreas Rumpf
1afdefcbe9 added experimental .this pragma 2016-02-28 03:17:20 +01:00
Andreas Rumpf
c1627354d1 first implementation of the new lambda-lifting pass; barely anything works 2015-12-26 00:42:30 +01:00
Adam Strzelecki
47e45dee7e fixes #3496
The problem comes from the fact that macroOrTmpl[...] is transformed by
semSubscript which is trying to evaluate macroOrTmpl identifier in place. This
is okay for non-generic macros or templates, but wrong for generic ones, that
do not have a chance to receive their generic arguments explicitly specified in
brackets.

Solution:

1. macroOrTmpl[...] where macroOrTmpl is non-generic macro or template, then
   macroOrTmpl is evaluated before applying brackets. (as before)

2. macroOrTmpl[...] where macroOrTmpl is generic macro or template, then if:

   a. It comes from macroOrTmpl[...](...) call expr (efInCall), then macroOrTmpl
      is turned into a symbol (efNoEvaluate) rather than evaluating it in place,
      then whole bracket expr is returned to semIndirectOp which transforms it
      to proper generic macro or template call with explicit generic arguments.

   b. macroOrTmpl[...] does not come from call expr, as above macroOrTmpl is
      transformed to symbol, then it is transformed into proper generic macro or
      template call with explicit generic arguments and no normal arguments.
2015-10-29 23:10:45 +01: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
e01e0a4b40 next steps in binding [] properly 2015-09-13 22:42:21 +02:00
Araq
bcd8053b23 fixes #2585 2015-04-22 20:25:11 +02:00
Araq
e55f5d1fd4 fixes #2505, fixes #1853, fixes #2522 2015-04-20 21:25:49 +02:00
Araq
49471440eb fixes #2481 2015-04-10 14:03:49 +02:00
Araq
78f371c03a first implementation of overloading of '='; missing: rewriting let/var sections 2015-04-06 23:21:51 +02:00
Araq
5d63ecb3a4 implemented a[^1] notation 2015-03-26 02:12:38 +01:00
Araq
247af96b00 cleaned up some tests 2015-02-10 20:19:45 +01:00
Araq
fe30ec83e2 nimsuggest improvements 2015-01-30 03:04:45 +01:00
Araq
b9079b8713 fixes #1915 2015-01-12 02:00:37 +01:00
Zahary Karadjov
b21b72dc14 fix #1049 2015-01-02 23:58:24 +02:00
Araq
4b7de4dc5e implemented 'experimental' switch 2014-12-05 10:09:29 +01:00
Araq
7a48942719 nicer error messages (untested) 2014-10-26 19:54:43 +01:00
Araq
1088814e56 deepCopy is instantiated when its corresponding type is instantiated 2014-09-26 09:36:09 +02: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
Andreas Rumpf
2ec1501c7a Merge pull request #1281 from Araq/new_spawn
New spawn
2014-06-16 23:03:17 +02:00
Clay Sweetser
93fa75bb07 Fixed #1172 (for real) 2014-06-01 17:40:06 -04:00
Araq
40baebebfe pi test compiles, but crashes randomly 2014-06-01 01:45:44 +02:00
Araq
be6474af63 removed flawed thread analysis pass 2014-04-20 14:00:04 +02:00
Zahary Karadjov
f6f5c9e9e6 propagate semExpr flags in macro/template expansion 2014-04-06 16:55:28 +03:00
Jimmie Houchin
c58ec376b6 fixed parens around getSysType arguments 2014-03-25 17:48:27 -05: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
cf8fe16a48 fix #715 again
the regression was caused by the introduction of "generic" lambdas
2014-03-16 20:42:06 +02:00
Zahary Karadjov
71695ab791 fix tsemistatic 2014-03-11 00:58:27 +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
Zahary Karadjov
9dd753f218 quite messy implementation of generic lambdas, needs reworking; fixes #715 2014-02-17 03:03:17 +02:00
Zahary Karadjov
c1f1f84194 fix some regressions caused by tyTypeDesc[tyNone] 2014-02-15 20:44:01 +02:00
Zahary Karadjov
a158053ae9 fixes #797; generic procs can be used in places expecting matching concrete proc types 2014-02-11 01:14:57 +02: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
47e4f9698c fixes #844 2014-02-02 10:00:10 +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
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
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
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