Zahary Karadjov
ca3a4ce672
hacky fix for generic constraints matching
2013-08-19 01:48:25 +03:00
Zahary Karadjov
b01d9b6181
work-in-progress for compiling generics in their owner module
2013-08-19 01:45:16 +03:00
Zahary Karadjov
c6d0611112
Revert "Revert "made some tests green""
2013-08-19 01:35:33 +03:00
Zahary Karadjov
a453d8d64d
Revert "Revert "further fixes for void stripping. fixes tvoid.""
...
This reverts commit d11cf5d191 .
2013-08-19 01:30:17 +03:00
Zahary Karadjov
cefa16ae77
Revert "Revert "fix threading tests""
...
This reverts commit 9c45e33d8c .
2013-08-19 01:29:58 +03:00
Zahary Karadjov
fc858927f0
Revert "Revert "fix tforwardgeneric""
...
This reverts commit e3f93241c3 .
2013-08-19 01:29:47 +03:00
Zahary Karadjov
dfb5cb3c5d
remerge "Fixes #267 "
2013-08-19 01:26:37 +03:00
Araq
a8ba628bcd
Revert "fixes #267 "
...
This reverts commit 7fccdedcb5 .
2013-05-27 23:20:41 +02:00
Araq
e3f93241c3
Revert "fix tforwardgeneric"
...
This reverts commit d82a032566 .
2013-05-27 23:18:15 +02:00
Araq
9c45e33d8c
Revert "fix threading tests"
...
This reverts commit d5fffc032f .
2013-05-27 23:17:48 +02:00
Araq
d11cf5d191
Revert "further fixes for void stripping. fixes tvoid."
...
This reverts commit 4ae4005f80 .
2013-05-27 23:17:18 +02:00
Araq
c67abd7e61
Revert "more test made green"
...
This reverts commit 911e6e710f .
2013-05-27 23:16:56 +02:00
Zahary Karadjov
911e6e710f
more test made green
...
the lambda lifting was trying too hard to ignore generic prods
isGenericRoutine was producing false-negatives and only
this allowed for some of the warning and error messages
to be triggered.
some files with mixed line endings were fixed
2013-05-26 21:06:39 +03:00
Zahary Karadjov
4ae4005f80
further fixes for void stripping. fixes tvoid.
2013-05-26 18:06:01 +03:00
Zahary Karadjov
d5fffc032f
fix threading tests
...
* more type names are valid expressions now
* void is properly stripped off during generic instantiation
2013-05-26 16:23:23 +03:00
Zahary Karadjov
d82a032566
fix tforwardgeneric
2013-05-26 15:12:09 +03:00
Zahary Karadjov
7fccdedcb5
fixes #267
2013-05-26 11:14:23 +03:00
Zahary Karadjov
9a6f47ae69
switch to a linked list of scopes
2013-05-11 23:45:20 +03:00
Grzegorz Adam Hankiewicz
72a3e21f28
Removes executable bit for text files.
2013-03-16 23:53:07 +01:00
Zahary Karadjov
81a3585872
merged upstream master
2013-01-27 23:41:45 +02:00
Zahary Karadjov
55f8ed2452
remove any traces of the old global generics cache
2013-01-27 21:28:34 +02:00
Araq
c43697b59a
implemented generic multi methods
2013-01-16 08:42:30 +01:00
Araq
cd00679289
some fixes for generic first class iterators
2012-12-15 23:39:27 +01:00
Zahary Karadjov
e6f3f46cd9
store the instantiation cache in the generic symbol
2012-11-28 01:15:13 +02:00
Zahary Karadjov
7e44015491
implemented return type inference
...
Other fixes:
* bind once is now the default for type classes as documented in the manual
* fixes an issue in template overloading (erroneous ambiguity when different typedesc params were used)
2012-10-03 01:59:49 +03:00
Zahary Karadjov
badb6c0f66
improved support for typedesc values
...
* can be stored in constants and variables (including in containers like sequences)
* can be passed to and returned from macros
2012-09-25 02:03:15 +03:00
Araq
759b3201ad
proc bodies can be expressions with a type
2012-09-22 22:43:36 +02:00
Araq
043921c7a7
fixes #194
2012-09-20 23:44:52 +02:00
Araq
a59abdf8e4
made more tests green; fixes #201
2012-09-12 21:48:37 +02:00
Araq
b64eeeb430
term rewriting improvements
2012-09-08 15:43:21 +02:00
Araq
6bcdb9c8f4
implemented generic templates
2012-08-27 01:59:14 +02:00
Araq
da190876de
next steps to hygienic templates
2012-08-20 08:44:17 +02:00
Araq
244c14db0b
top level closures should work; transf is not a pass anymore; next steps for first class iterator support
2012-08-13 17:07:49 +02:00
Araq
c7158af752
idetools: 'usages' and 'def' should work now; documented js backend
2012-08-05 12:33:23 +02:00
Araq
121d4e0fc2
'addSon' for types deprecated for 'int literal type' analysis
2012-07-09 08:09:00 +02:00
Araq
b5d34242ca
added proc annotations: macros invoked as pragmas
2012-06-26 01:00:32 +02:00
Araq
f191059e56
somewhat working closures
2012-06-19 22:37:00 +02:00
Zahary Karadjov
22dc76a361
typedesc and expr params
...
types are now valid proc/template/macro params and you can overload over them:
proc foo(T: typedesc) # accept any type
proc foo(T: typedesc{int}) # overload specifically for int
proc foo(T: typedesc{int or float or Callable}) # overload for any type matching the constraints
expr{type} is a param expecting compile time value of the designated type (or type class).
when typedesc or expr params are used with a proc, the proc will be instantiated once
for each unique type/value used as parameter.
2012-03-31 18:50:48 +03:00
Zahary Karadjov
bc2eb0ea9b
generic types can be used like type classes. distinct can be applied to type classes.
2012-03-25 20:55:21 +03:00
Zahary Karadjov
3a5cf3d63a
expr params implemented for procs; paving the way for type classes
2012-03-22 03:27:00 +02:00
Araq
be1154106a
clean separation of PNimrodNode and tyExpr
2012-03-16 19:33:24 +01:00
Araq
4f1b89c30c
year 2012 for most copyright headers
2012-01-02 23:07:35 +01:00
Zahary Karadjov
de4b894541
proc arguments are in scope when the result type definition is being processed
...
This is intended for type deduction depending on the arguments
proc foo(x: type): type(expr(x))
2011-12-09 16:05:51 +02:00
Araq
7819b84475
bugfixes: objects still invalid for constants; fixed a typo concerning 'high' in eval context
2011-11-15 23:03:14 +01:00
Araq
c517639155
lazy loading of body ast implemented
2011-10-30 20:53:04 +01:00
Araq
9fb36bd20c
compilation cache: mostly working; generics not yet
2011-10-25 15:26:36 +02:00
Araq
fd62116f6e
bugfixes for generics; new threads implementation still broken
2011-09-20 00:56:48 +02:00
Araq
7000cf51b7
modifyable results for generics; teventemitter works
2011-08-09 01:40:12 +02:00
Araq
12f22ba68a
fixes #35 , fixes #43
2011-08-08 01:15:09 +02:00
Araq
6781da5215
bugfix: forwarding of generic procs now works
2011-07-30 10:42:51 +02:00