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
Araq
2f066395ba
bugfixes; step one for 'var T' as return type support
2011-07-28 00:53:52 +02:00
Araq
569c1ce5ec
bugfix: proper cache for generic instantiations
2011-07-21 00:57:39 +02:00
Araq
42e6130b2c
first steps to explicit channels for thread communication; added mainThreadId
2011-07-16 18:34:18 +02:00
Araq
5b96eaa953
preparations for 0.8.12
2011-07-10 15:48:13 +02:00
Araq
c3f11d1637
bugfix: invoking a generic iterator twice triggers a code gen bug (titer2)
2011-06-20 01:28:41 +02:00
Araq
18bec94e22
bugfix: typeinfo generation for tuples
2011-06-19 15:47:10 +02:00
Araq
cd292568d7
big repo cleanup
2011-04-12 01:13:42 +02:00