Commit Graph

31 Commits

Author SHA1 Message Date
Araq
b5d8e8bfaa '+=' etc for all floating point types 2012-05-29 00:42:28 +02:00
Araq
7a249eb8c1 bugfix: field names of tuples are treated consistently in the C backend 2012-05-27 14:57:12 +02:00
Zahary Karadjov
efb53233cb the foundations of a type traits module; better error messages for expr, typedesc and typeclasses params 2012-04-06 13:46:31 +03:00
Zahary Karadjov
8d698b2bdd Merge branch 'master' of github.com:Araq/Nimrod into upstream 2012-03-31 18:51:11 +03: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
Araq
5c33f76517 bugfix: GC marker procs; making tests green again 2012-03-23 09:29:53 +01:00
Zahary Karadjov
296ef07955 tyOrdinal now means "integral types". tyTypeClass created to take care of type constraints 2012-03-22 16:24:12 +02:00
Araq
c25ffbf262 first steps for cleaner static/const distinction 2012-03-13 02:01:56 +01:00
Araq
632aece191 further steps to closure support 2012-02-06 00:19:56 +01:00
Araq
4f1b89c30c year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
Araq
cd83cc81aa code gen can generate code to keep alive stack roots 2011-12-22 15:04:00 +01:00
Araq
2962ca7890 alias analysis as required for the code gen and the HLO 2011-12-08 23:21:08 +01:00
Araq
7fcbdc6d42 implemented 'let' statement 2011-11-29 17:27:48 +01:00
Araq
62aa8bed3b tester: threading tests added 2011-11-19 02:05:16 +01: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
1f6725e59e small bugfixes to make more tests green 2011-11-02 02:28:18 +01:00
Araq
abe9dfafe8 compilation cache: DLL interfacing now works 2011-10-27 18:02:01 +02:00
Araq
90db9171a2 compilation cache: various bugfixes; works for the compiler itself 2011-10-27 00:41:42 +02:00
Zahary Karadjov
e3deb5b502 Cleaned up the circular dependecies and remaining issues
Changed: The []= operator for strings and sequences is now capable of splicing
2011-10-07 17:10:04 +03:00
Araq
42516c0086 code generator supports constant sequences; more consistent compile time evaluation 2011-10-07 09:02:08 +02:00
Araq
6023e994fb beginning of a taint mode; type system enhancements 2011-09-24 00:46:41 +02:00
Araq
fd62116f6e bugfixes for generics; new threads implementation still broken 2011-09-20 00:56:48 +02:00
Araq
7a6140e3a4 fixes #42 2011-08-04 19:47:35 +02:00
Araq
6a8a409f1b preparation for new 'is' operator; breaks bootstrapping again, sorry (use generated C code) 2011-07-31 00:21:32 +02:00
Araq
2f066395ba bugfixes; step one for 'var T' as return type support 2011-07-28 00:53:52 +02:00
Araq
0e7f2ca3f1 bugfixes; added events module, sequtils module 2011-07-26 00:46:41 +02:00
Araq
99bcc233cd bugfix: 'set' overloadable; further steps for multi threading support 2011-07-08 01:29:15 +02:00
Araq
ade67f1abc intsets are now a proper module and part of the stdlib 2011-06-14 01:36:49 +02:00
Araq
6ff8752be5 cleaned up the tests; fixes #30; fixes #26 2011-05-01 20:11:55 +02:00
Araq
cd292568d7 big repo cleanup 2011-04-12 01:13:42 +02:00