Araq
39e4e3f205
fixes OR for int8|int16 etc
2014-04-20 13:59:38 +02:00
Araq
c80d563afb
actors compile again
2014-04-20 12:10:23 +02:00
Araq
3b69a8d27a
New concurrency model: next steps
2014-04-19 22:24:43 +02:00
Araq
8e08ff559f
first version of 'spawn'
2014-04-16 08:44:57 +02:00
Araq
d0f013477b
refined and documented regionized pointers
2014-04-09 08:37:08 +02:00
Araq
4196757de7
implemented region pointers
2014-04-09 00:33:51 +02:00
Araq
cf7e83ecc5
fixes #913
2014-04-06 17:26:20 +02:00
Zahary Karadjov
8ba062d952
fix #1016
2014-03-20 23:24:25 +02:00
Zahary Karadjov
8a0509b3b2
implements `distinct with/without X, Y`
...
This still doesn't work quite right, because some common operations like array
indexing lay completely outside the scope/symbol lookup system - they are not
even magics.
2014-03-20 01:16:50 +02:00
Zahary Karadjov
d508384d39
fix #1013
2014-03-20 01:16:50 +02: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
49b0440c47
make some tests green
2014-03-16 20:42:49 +02:00
Zahary Karadjov
f0953db3ba
handle arbitrary expressions dependent on static input params in proc signatures
2014-03-16 20:42:06 +02:00
Zahary Karadjov
ac271e76b1
more robust handling of proc signatures containing inter-param type references
2014-03-16 20:42:06 +02:00
Zahary Karadjov
7dcf6ff50b
fix #997
2014-03-16 20:42:06 +02:00
Zahary Karadjov
37b199d34a
first phase of tyGenericParam reforms needed for static params
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
249dd70273
test cases for the new handling of iterators by the is operator
2014-03-06 23:03:02 +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
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
Zahary Karadjov
e6b0b7ecc9
some fixes for static params usage in macros
2014-02-25 01:36:08 +02:00
Zahary Karadjov
4d3846e26b
fix tbindtypedesc and tactiontable2
2014-02-18 01:37:00 +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
74f4901430
fix argument_parser
2014-02-16 02:23:06 +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
dbc8aa60e3
fixes 'newSeq[T]' instantiation bug
2014-02-09 00:41:53 +01: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
Zahary Karadjov
5a6030a16b
the is operator now uses exactly the same algorithm as proc signature matching
2014-01-26 00:45:50 +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
Zahary Karadjov
a6a18be089
support for parametric user-defined type classes
2014-01-24 14:13:32 +02:00
Zahary Karadjov
a09ddfa099
fix the segfault in #827
2014-01-20 15:22:44 +02:00
Araq
73c6efdf66
'nil' as a statement is deprecated, use an empty 'discard' instead
2014-01-19 16:54:59 +01:00
Zahary Karadjov
1280c56f38
fix bootstrapping on windows
2014-01-06 00:16:16 +02:00
Zahary Karadjov
789ba107cf
introduce tyFromExpr; fixes #618
2014-01-04 13:10:52 +02:00
Zahary Karadjov
8e0941576f
clean-up some obsolete code; close #602
2013-12-31 12:39:43 +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
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
Zahary Karadjov
66a2556525
make more tests green
2013-12-29 00:00:37 +02:00
Zahary Karadjov
5d75ce2f2e
fix tclosure4
2013-12-28 15:07:30 +02:00
Araq
92b8fac94a
case consistency part 4
2013-12-27 23:10:36 +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
2df9b442c6
case consistency part 1
2013-12-27 15:48:53 +01: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
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