Commit graph

84 commits

Author SHA1 Message Date
Araq
f96ec25ed2 made some tests green; some small bugfixes 2012-12-09 15:53:59 +01:00
Araq
7171ae62cb constraint now part of the parameter symbol and not of the type 2012-12-05 01:39:49 +01:00
Araq
8948a97151 bugfix: 'not nil' and 'shared' types 2012-12-02 20:02:42 +01:00
Araq
92e10e4b18 implemented 'import except' 2012-11-28 23:54:23 +01:00
Araq
dd9ad9e497 next steps for first class iterators 2012-11-26 02:43:32 +01:00
Araq
ccd2934e4a first steps for 'not nil' annotation 2012-11-25 11:03:14 +01:00
Araq
019d6e4127 added missing type flags 2012-11-23 19:52:32 +01:00
Araq
9f38ff0c65 next steps for exception tracking 2012-11-03 15:57:12 +01:00
Araq
2133fbfcce bugfix: wrong assertions for C++ code generation; some solaris support; first steps to an effect system 2012-10-30 22:29:03 +01:00
Araq
3f82352c2e fixed a serious code generation bug leading to wrong RTTI 2012-10-19 01:59:28 +02:00
Zahary Karadjov
9c8bc3a244 the is operator now works with type classes and type variables
bugfixes:
the DLL tests were failing on Mac OS X, due to an incorrect DynlibFormat
2012-10-03 01:59:49 +03: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
580d85d233 implemented 'pure' enums 2012-09-08 20:51:50 +02:00
Araq
46e9ff6139 tmatrix.nim works now 2012-09-08 18:51:52 +02:00
Araq
b64eeeb430 term rewriting improvements 2012-09-08 15:43:21 +02:00
Araq
af7c92c003 term rewriting macros fully implemented; still buggy 2012-09-03 00:55:44 +02:00
Araq
b4844a189d parameter passing works the same for macros and templates; use callsite magic to access the invokation AST 2012-08-28 22:15:29 +02:00
Araq
d17caa86e8 objects with no ancestor are not implicitely final 2012-08-24 17:33:04 +02:00
Araq
da190876de next steps to hygienic templates 2012-08-20 08:44:17 +02:00
Araq
5e15dec175 first steps to make templates hygienic 2012-08-20 01:13:13 +02:00
Araq
8805829d7f first steps for varargs support 2012-08-13 18:51:06 +02:00
Araq
c7158af752 idetools: 'usages' and 'def' should work now; documented js backend 2012-08-05 12:33:23 +02:00
Araq
79aaf213d6 idetools improvements 2012-08-03 17:33:44 +02:00
Araq
7d6500f1de idetools improvements; preparation of first class iterators; fixes #183 2012-08-02 23:14:38 +02:00
Araq
674c05f426 made compiler more robust for idetools; implemented idetools.usages 2012-07-30 23:07:19 +02:00
Araq
b0c11d3efb made compiler more robust for idetools support 2012-07-30 17:43:22 +02:00
Araq
b595fc8347 better error handling for better idetools support 2012-07-29 23:08:28 +02:00
Araq
20b6dc3829 next steps for closure consistency; fixes #176 2012-07-25 21:59:31 +02:00
Araq
033dc50c69 closure is now default calling convention for proc types 2012-07-24 08:28:05 +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
049de0ef66 'addSon' for types deprecated for 'int literal type' analysis (3) 2012-07-09 20:04:19 +02:00
Araq
4fbba0a65a changed integer promotion rules; breaks bootstrapping and lots of code 2012-07-08 21:03:47 +02:00
Araq
869a5aa90d doc2 improvements 2012-06-24 02:34:11 +02:00
Araq
e0092cfae6 Merge branch 'master' of github.com:Araq/Nimrod 2012-06-19 22:38:48 +02:00
Araq
7076f07228 tinterf.nim works now 2012-06-17 02:11:13 +02:00
Zahary Karadjov
e2d38a57ec better support for unsigned integers. 2012-06-11 21:38:01 +03:00
Zahary Karadjov
65970efd97 destructors for case values 2012-06-07 02:14:25 +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
064f296213 allow the use of built-in type constraints in type sections 2012-04-20 22:28:53 +03:00
Zahary Karadjov
c1d16c5a4d made built-in types primary expressions to allow infix operators to be used with them 2012-04-20 21:35:59 +03:00
Araq
cb79bf9f16 compiler finally supports 'object {.pragma.}' syntax 2012-04-16 23:40:08 +02:00
Zahary Karadjov
238202ccbc re-enable rodfiles tests; fixes #91 2012-04-11 01:52:12 +03:00
Zahary Karadjov
e941a14767 completing the "types as first class values" reform 2012-04-06 18:14:12 +03: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
Araq
a79acb58fc attempt to fix a bug concerning implicit type conversions in case statements 2012-03-27 00:48:59 +02: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