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
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
70f5236d48
untyped proc/template/macro params default to expr
2012-03-20 17:44:30 +02:00
Zahary Karadjov
e43f8d842b
merged branch overloading-for-macros
2012-03-19 12:06:38 +02:00
Araq
be1154106a
clean separation of PNimrodNode and tyExpr
2012-03-16 19:33:24 +01:00
Zahary Karadjov
e5bd3b5b97
bootstraps fine with overloadable templates
2012-03-14 21:00:42 +02:00
Araq
8d19a93f1a
pragma on/off improvements; endb rewritten
2012-01-28 23:22:44 +01:00
Araq
7f3b3298b4
fixes #33
2012-01-07 20:30:51 +01:00
Araq
20843b7c1a
bugfix: tester should compile again
2012-01-03 01:20:47 +01:00
Araq
bcbfa3aaa4
C sources regenerated for new len(openarray) header that catches more bugs; symbol files should work again
2012-01-03 00:21:12 +01:00
Araq
4f1b89c30c
year 2012 for most copyright headers
2012-01-02 23:07:35 +01:00
Araq
0d8e6dda69
new len(openarray) implementation
2011-12-31 18:15:20 +01:00
Araq
d25fefc0ff
make trecinca|b tests green
2011-12-31 10:23:56 +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
7fcbdc6d42
implemented 'let' statement
2011-11-29 17:27:48 +01:00
Araq
72651de710
bugfix: 'when' sections in generic objects now work, so TThread[void] compiles
2011-11-20 16:13:03 +01:00
Zahary Karadjov
12bac28d23
macros and templates can be expanded anywhere where a type is expected.
...
This allows for various type selection algorithms to be implemented.
See tests / accept / compile / ttypeselectors.nim for examples.
2011-11-18 02:11:15 +02:00
Araq
47f523cfb8
bugfix: template t(f_no_Type) does not crash the compiler anymore in 'check' mode
2011-10-30 21:27:02 +01: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
7ad5cab17e
added system.running for threads
2011-08-11 21:22:23 +02:00
Araq
5131b3cea4
support for C++ code generation; importcpp and importobjc pragmas
2011-08-07 21:02:09 +02:00
Araq
7a6140e3a4
fixes #42
2011-08-04 19:47:35 +02:00
Araq
dd99fe61c0
documentation for 'var T' as return type
2011-08-01 00:21:16 +02:00
Araq
4f7fa05911
void type improvements; documentation improvements
2011-07-31 14:57:38 +02:00
Araq
00da785f5d
void type for generics
2011-07-31 01:11:34 +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
8b6f9ef5e8
case branches support constant sets for convenience
2011-06-19 17:45: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
6ff8752be5
cleaned up the tests; fixes #30 ; fixes #26
2011-05-01 20:11:55 +02:00
Araq
8dda362fa6
slices are first class citizens
2011-04-22 10:53:43 +02:00
Araq
cd292568d7
big repo cleanup
2011-04-12 01:13:42 +02:00