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