Araq
cd00679289
some fixes for generic first class iterators
2012-12-15 23:39:27 +01:00
Araq
a22c1f444f
fixes #271
2012-12-15 22:35:16 +01:00
Zahary Karadjov
32d0ac01dc
AST quasi-quoting for macros
2012-11-11 17:02:13 +02:00
Araq
9f38ff0c65
next steps for exception tracking
2012-11-03 15:57:12 +01:00
Araq
42d0911d6a
nimbuild should work again
2012-11-01 01:11:48 +01:00
Araq
7e31134ff6
cas improvements
2012-10-24 08:43:17 +02:00
Araq
de338526ec
caas barely works now
2012-10-24 01:13:44 +02:00
Zahary Karadjov
d9d82fb0af
syntax compatibility between do blocks and stmt blocks
...
See the section `do notation` in the manual for more info.
* nkMacroStmt has been removed
Macro statements are now mapped to regular nkCall nodes.
The support for additional clauses (such as else, except, of, etc)
have been restored - they will now appear as additional arguments
for the nkCall node (as nkElse, nkExcept, etc nodes)
* fixed some regressions in the `is` operator and semCompiles
2012-10-04 15:37:26 +03:00
Zahary Karadjov
2e5265bef5
experimental support for querying the type of expressions within macros
...
normalised the line endings of macros.nim (minor edits otherwise)
2012-10-03 01:59:50 +03:00
Zahary Karadjov
2aabae702d
fixes ttypeselectors
2012-09-28 14:30:48 +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
cb6ad8cb74
bugfix: 'nimrod i' works again
2012-09-18 20:59:14 +02:00
Araq
391fb89a3e
some support for passing blocks to overloaded templates/macros
2012-09-17 20:30:15 +02:00
Araq
23c3af80f6
semExpr/semStmt merged
2012-09-13 08:33:55 +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
af7c92c003
term rewriting macros fully implemented; still buggy
2012-09-03 00:55:44 +02:00
Araq
1d14cb1ad8
next steps towards term rewriting macros; simple examples work
2012-08-30 22:55:32 +02:00
Araq
1786e30991
first steps towards term rewriting macros
2012-08-30 10:55:40 +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
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
5e15dec175
first steps to make templates hygienic
2012-08-20 01:13:13 +02:00
Araq
1215193010
bugfix: typo in actors.nim
2012-08-15 08:13:31 +02:00
Araq
991b3096e8
made tests green again
2012-08-14 00:09:06 +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
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
087b8621d3
improvements for idetools; system.compiles improved
2012-07-29 02:45:50 +02:00
Araq
4d9a5dc8ff
fixes #140
2012-06-21 19:08:39 +02:00
Zahary Karadjov
a1da1f987b
Added system.staticExec proc for executing external command at compile-time
2012-06-02 19:51:49 +03:00
Zahary Karadjov
e941a14767
completing the "types as first class values" reform
2012-04-06 18:14:12 +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
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
c25ffbf262
first steps for cleaner static/const distinction
2012-03-13 02:01:56 +01:00
Araq
ec0f982ed4
attempt to make tests green again
2012-03-11 01:46:37 +01:00
Araq
8d19a93f1a
pragma on/off improvements; endb rewritten
2012-01-28 23:22:44 +01:00
Araq
69997af8e9
bugfix: endless recursion in 'semAfterMacroCall'
2012-01-13 15:17:43 +01:00
Araq
071b1e3957
test t99bott.nim works now
2012-01-06 00:29:18 +01:00
Araq
4f1b89c30c
year 2012 for most copyright headers
2012-01-02 23:07:35 +01:00
Araq
2962ca7890
alias analysis as required for the code gen and the HLO
2011-12-08 23:21:08 +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
c517639155
lazy loading of body ast implemented
2011-10-30 20:53:04 +01:00
Araq
78f37b2336
compilation cache: slurped files are a dependency too
2011-10-30 01:02:15 +02:00
Araq
a0a8934a4f
eval context for macros lives as long as the current module is compiled
2011-10-28 01:38:41 +02:00
Araq
9fb36bd20c
compilation cache: mostly working; generics not yet
2011-10-25 15:26:36 +02:00