Araq
4196757de7
implemented region pointers
2014-04-09 00:33:51 +02:00
Araq
12e3c11eb6
fixes #911
2014-03-28 08:40:15 +01:00
Araq
31cfed0aa8
fixes a typo
2014-03-27 21:24:41 +01: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
085b339b8b
implements higher-order inline iterators and return type inference for iterators
2014-03-08 22:57:06 +02:00
Zahary Karadjov
2cbe46daff
Merge branch 'devel' of github.com:Araq/Nimrod into devel
2014-03-06 23:25:45 +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
4f946cb44e
fixes #942
2014-03-05 08:30:05 +01:00
Zahary Karadjov
5324c9ebba
iterators now return tyIter(T);
...
tyIter(T) represents an "iteration yielding values of type T"
I'm planning to use that in the context of the `is` operator
supporting predicates such as `C.items is iterator` and also
in the upcoming support for higher-order inline iterators.
2014-03-05 02:23:53 +02:00
Araq
20131c32af
Merge branch 'vm2_2' into devel
2014-02-25 01:21:00 +01:00
Araq
0c31686fec
new VM is getting stable
2014-02-24 01:30:40 +01:00
Zahary Karadjov
1a6d05515f
fix #945
2014-02-20 23:33:58 +02:00
Zahary Karadjov
765c682c92
fix #204 ;
2014-02-18 01:19:31 +02:00
Zahary Karadjov
eaab22089d
fix #807
2014-02-17 20:44:11 +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
b80503814d
fix #188
2014-02-17 00:47:45 +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
99352c1e4c
macro tests almost green
2014-02-03 17:35:03 +01:00
Araq
47e4f9698c
fixes #844
2014-02-02 10:00:10 +01:00
Zahary Karadjov
5d712e0d3f
Merge branch 'devel' of https://www.github.com/Araq/Nimrod into devel
2014-01-26 01:38:45 +02: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
Araq
37229df7fc
next steps for closure iterators
2014-01-22 17:32:38 +01:00
Araq
4a0aadef4d
parser support anon iterators
2014-01-20 20:07:44 +01:00
Araq
73c6efdf66
'nil' as a statement is deprecated, use an empty 'discard' instead
2014-01-19 16:54:59 +01:00
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