Commit graph

57 commits

Author SHA1 Message Date
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