Commit graph

542 commits

Author SHA1 Message Date
Araq
8413772063 optimizations for system.compiles 2012-07-20 16:23:07 +02:00
Araq
c9513c2e5a bugfix: constraint matching for tyGenericInst; implements #130 2012-07-19 08:41:57 +02:00
Araq
8d99753d63 preparations for making 'closure' the default calling convention for proc types 2012-07-16 23:00:57 +02:00
Araq
b4084df434 improved unsigned support 2012-07-14 14:03:13 +02:00
Araq
e2f8d91290 overloading resolution finally takes inheritance depth into account 2012-07-11 00:10:24 +02:00
Araq
95faae2c0a some more bugfixes for the integer promotion rules 2012-07-10 01:12:03 +02:00
Araq
121d4e0fc2 'addSon' for types deprecated for 'int literal type' analysis 2012-07-09 08:09:00 +02:00
Araq
4fbba0a65a changed integer promotion rules; breaks bootstrapping and lots of code 2012-07-08 21:03:47 +02:00
Araq
36247e0947 added devel/logging; weakrefs test; next steps for proper unsigned support 2012-07-05 00:03:33 +02:00
Araq
2900ceae35 changed integer promotion rules; added math.fmod 2012-06-28 08:33:25 +02:00
Zahary Karadjov
b11fe5d0b4 more uint related fixes 2012-06-14 17:33:00 +03:00
Zahary Karadjov
e2d38a57ec better support for unsigned integers. 2012-06-11 21:38:01 +03:00
Zahary Karadjov
251c44ff04 implicit generics types as return types. removed the error message for capturing incorrect uses of `proc` 2012-04-21 03:24:32 +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
Zahary Karadjov
296ef07955 tyOrdinal now means "integral types". tyTypeClass created to take care of type constraints 2012-03-22 16:24:12 +02:00
Zahary Karadjov
3a5cf3d63a expr params implemented for procs; paving the way for type classes 2012-03-22 03:27:00 +02:00
Zahary Karadjov
d1d5fc8254 allowing definitions of procs and templates to be overridden in local scopes 2012-03-14 21:01:18 +02:00
Zahary Karadjov
e5bd3b5b97 bootstraps fine with overloadable templates 2012-03-14 21:00:42 +02:00
Araq
2633e3fb27 closure implementation: first steps 2012-02-04 15:47:48 +01:00
Araq
92e1a21b26 further steps to eliminate generics bugs 2012-01-11 08:52:50 +01:00
Araq
7405278138 bugfix: type alias to generic; generic type not stripped away from for loop variable 2012-01-07 20:03:41 +01:00
Araq
4f1b89c30c year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
Araq
d25fefc0ff make trecinca|b tests green 2011-12-31 10:23:56 +01:00
Zahary Karadjov
e4e74034c2 path canonicalization and proper project relative paths 2011-12-09 04:40:59 +02:00
Araq
70cf34cbdc 'assert' is now implemented without compiler magic 2011-12-04 20:14:50 +01:00
Araq
bec06a0649 bugfix: s[1..n] = @[] produced wrong C code 2011-11-14 08:33:44 +01:00
Araq
cacb200eff fixes #2 2011-11-02 02:47:34 +01:00
Araq
90db9171a2 compilation cache: various bugfixes; works for the compiler itself 2011-10-27 00:41:42 +02:00
Araq
9fb36bd20c compilation cache: mostly working; generics not yet 2011-10-25 15:26:36 +02:00
Araq
da6046dcba bugfix: overloading resolution for typeof 2011-09-27 00:27:51 +02:00
Araq
fd62116f6e bugfixes for generics; new threads implementation still broken 2011-09-20 00:56:48 +02:00
Araq
b0742c5b27 finally got rid of nkPassAsOpenArray 2011-08-16 08:56:53 +02:00
Araq
12f22ba68a fixes #35, fixes #43 2011-08-08 01:15:09 +02:00
Araq
5131b3cea4 support for C++ code generation; importcpp and importobjc pragmas 2011-08-07 21:02:09 +02:00
Araq
99bcc233cd bugfix: 'set' overloadable; further steps for multi threading support 2011-07-08 01:29:15 +02:00
Araq
849208d779 got rid of unsound co/contravariance in procvars 2011-06-17 01:04:33 +02:00
Araq
ade67f1abc intsets are now a proper module and part of the stdlib 2011-06-14 01:36:49 +02:00
Araq
3e9dcc8be5 deprecated system.copy: use system.substr instead 2011-05-14 01:13:44 +02:00
Araq
32241aa9fe got rid of isLifted 2011-05-14 00:24:52 +02:00
Araq
36c67455d4 got rid of some arcane module names 2011-04-21 00:54:44 +02:00
Araq
cd292568d7 big repo cleanup 2011-04-12 01:13:42 +02:00
Renamed from rod/sigmatch.nim (Browse further)