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
Zahary Karadjov
299cefdc98
make the current PContext accessible through TCandidate
...
the goal here is to remove all the hacks from ParamTypeMatch and to handle
all type matching in typeRel (the context there is required to evaluate any static
params and to run the compilation tests of user-defined type classes)
2013-12-25 00:58:22 +02:00
Zahary Karadjov
027f30610e
static params: expr[T] is now static[T]
...
This introduces tyStatic and successfully bootstraps and handles
few simple test cases. Static params within macros are no longer
treated as PNimrodNodes - they are now equivalent to constants
of the designated type.
2013-12-19 01:06:38 +02:00
Zahary Karadjov
de3b7cd413
progress towards adding negative type classes
...
[unittest bugfixes]
the block form of check now allows comments
errors when inspecting the arguments of var-accepting procs
2013-12-09 00:09:03 +02:00
Zahary Karadjov
1e26047c3b
adding some provisions for writing lower-level unit tests targeting specific sub-systems of the compiler
...
see sigmatch as an example.
tests are compiled only when the compiler is compiled with -d:selftest
to execute them, just run the resulting binary without arguments
2013-12-07 20:30:44 +02:00
Zahary Karadjov
a068aaed3c
simple unit test and better documentation for the user defined type classes
2013-11-17 22:50:26 +02:00
Zahary Karadjov
4cea15d274
improvements for the is operator; implemented the type lifting rule in user-defined type classes
2013-11-17 16:28:42 +02:00
Zahary Karadjov
31dd66acbf
support for multiple test variables and var qualifiers in user-defined type classes
2013-11-13 02:24:08 +02:00
Zahary Karadjov
6082595e96
Merge branch 'type-classes' into upstream
2013-09-03 03:14:56 +03:00
Araq
cf689f7472
bugfix: conversions to float32 are allowed again but of lower priority
2013-08-30 21:47:55 +02:00
Araq
74c24f3e6d
conversions to float32 are allowed again but of lower priority
2013-08-30 21:40:47 +02:00
Araq
8710118b2c
Merge branch 'master' of github.com:Araq/Nimrod
2013-08-30 12:44:27 +02:00
Araq
7056ceda67
float64 is now an alias to 'float'; fixes #545
2013-08-30 12:24:54 +02:00
Zahary Karadjov
01ccb52a00
minor improvement towards tgenericshardcases
2013-08-28 01:10:51 +03: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
6378fbd66e
working code for simple cases of user-defined type classes
2013-08-25 12:17:40 +03:00
Zahary Karadjov
56d75bd23b
implemented and documented the new typedesc binding rules
2013-08-23 15:43:27 +03:00
Zahary Karadjov
8682ed9bd0
pass-through of static int generic params to arrays when late instantiation is disabled
2013-08-23 01:10:20 +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
ca3a4ce672
hacky fix for generic constraints matching
2013-08-19 01:48:25 +03:00
Zahary Karadjov
3e79e9f981
some steps to improve the type mismatches with the new
...
generic instantiation logic
2013-08-19 01:45:16 +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
aa88e150da
'modules' module from 'main'; minor bugfixes
2013-07-20 20:17:23 +02:00
Araq
ed56b8c173
fixes #442
2013-06-27 08:06:55 +02:00
Araq
d4c91bbd85
improvements for 'not nil' checking
2013-06-13 01:40:11 +02:00
Araq
865a43050d
fixes #385
2013-06-03 01:21:21 +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
8fd274038e
fixes #119
2013-05-18 11:52:43 +02:00
Zahary Karadjov
289c975d85
fixes #430
2013-05-12 21:55:55 +03:00
Zahary Karadjov
b3103c4657
fixes #429 and tstmtexpr
2013-05-12 21:01:39 +03:00
Zahary Karadjov
3f1e9b3a25
Merge branch 'master' of gh:/Araq/Nimrod into upstream
2013-05-04 17:50:38 +03:00
Araq
3cb3813eed
fixes #287 ; bugfix: subrange checking is performed again
2013-04-12 16:24:58 +02:00
Araq
3051c52f51
fixes a long-standing bug about procvar checking
2013-03-25 01:44:52 +01:00
Grzegorz Adam Hankiewicz
72a3e21f28
Removes executable bit for text files.
2013-03-16 23:53:07 +01:00
Araq
5b0d8246f7
make some tests green
2013-03-03 12:05:03 +01:00
Araq
eebee0eff2
lazy operand sem'checking (beware)
2013-03-02 20:23:56 +01:00
Zahary Karadjov
0774af169b
containerID is no longer needed for generics
2013-03-01 12:12:53 +02:00
Araq
d13bcf6575
better overloading resolution for generics
2013-02-28 21:28:19 +01:00
Araq
f280ed1560
implements #295
2013-01-08 16:30:26 +01:00
Araq
a22c1f444f
fixes #271
2012-12-15 22:35:16 +01:00