Commit graph

229 commits

Author SHA1 Message Date
Zahary Karadjov
0d77909b17 fixed a regression in nimrod i 2013-01-27 19:52:24 +02:00
Zahary Karadjov
8be307713e fixed a regression: compiling projects not residing in the current directory 2013-01-20 22:09:07 +02:00
Araq
3af5c99336 fixes #293 2013-01-08 20:03:02 +01:00
Araq
9ef367db62 fixed a newly introduced c2nim bug; many untested improvements to the FFI at compile time 2012-12-31 17:53:37 +01:00
Araq
3020257559 implemented --listFullPaths option for aporia 2012-12-27 00:05:23 +01:00
Araq
a22c1f444f fixes #271 2012-12-15 22:35:16 +01:00
Zahary Karadjov
d0edb1826b adds an option to interleave the generated code with snippets from the original source
Lines from the original source are outputted as comments next to line directives.
Hopefully, this will make debugging codegen problems easier.

Other changes:
The frame setup code now uses a single-line C macro. My motivation was to reduce
the noise in the generated output and make it easier to step over the boiler-plate
code, but counter-intuitively this also improved the overall compilation speed a
little bit so I applied the same treatment to line tracking too (this reduces the size of
the generated files and the explanation is that probably the I/O overhead dominates
the macro expansion costs).
2012-12-02 20:36:29 +02:00
Zahary Karadjov
36e25a6849 CaaS in-memory caching
removed some redundant filepath params and variables and
switched to canonical paths in most places
2012-11-28 01:15:13 +02:00
Araq
14fc0631d7 fixes #250 2012-11-19 00:16:25 +01:00
Zahary Karadjov
32d0ac01dc AST quasi-quoting for macros 2012-11-11 17:02:13 +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
Araq
cc51581937 next steps for 'compiler as a service' 2012-10-03 21:32:06 +02:00
Zahary Karadjov
f8184e3490 always print stack traces on errors in debug builds of nimrod
I've been using this for a while and it's really more convenient than hunting the message
in msgs.nim and grepping the error code in the whole project
2012-10-03 01:59:49 +03:00
Araq
23c3af80f6 semExpr/semStmt merged 2012-09-13 08:33:55 +02:00
Araq
d3d9d32c35 first steps to deprecate 'nil' statement 2012-09-09 01:08:00 +02:00
Araq
af7c92c003 term rewriting macros fully implemented; still buggy 2012-09-03 00:55:44 +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
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
976c39cdc9 more improvements for idetools 2012-07-30 01:24:54 +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
538b06a123 implements #173 2012-07-28 14:16:08 +02:00
Araq
2ff8d17369 added warning for confusing var declarations 2012-07-26 08:47:54 +02:00
Araq
1c6f14deee added system.compiles 2012-07-20 08:49:42 +02:00
Araq
8d99753d63 preparations for making 'closure' the default calling convention for proc types 2012-07-16 23:00:57 +02:00
Araq
36247e0947 added devel/logging; weakrefs test; next steps for proper unsigned support 2012-07-05 00:03:33 +02:00
Araq
ee1bcb6414 dead code elimination for JS backend; JS improvements (but doesn't work yet) 2012-06-30 12:29:56 +02:00
Araq
2900ceae35 changed integer promotion rules; added math.fmod 2012-06-28 08:33:25 +02:00
Araq
7b4560337b bugfixes for closures 2012-06-21 08:46:56 +02:00
Zahary Karadjov
a1da1f987b Added system.staticExec proc for executing external command at compile-time 2012-06-02 19:51:49 +03:00
Araq
c323ec0155 added system.getStackTrace; docgen refactoring (incomplete) 2012-05-06 01:16:36 +02: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
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
1d8ff40f56 vars can be 'compileTime'; shallow introduced weird string aliasing bug 2012-03-11 12:01:10 +01:00
Araq
4a9e07a47c ERecoverableError exception contains the error message 2012-02-25 12:57:16 +01:00
Araq
97366d4419 bugfix: optimization of complex constant string concatenations 2012-02-17 02:16:33 +01:00
Araq
fb35b855d5 added 'system.shallow' 2012-02-09 20:13:36 +01:00
Araq
2c4a1dbc0c further steps for closure support 2012-02-08 09:10:59 +01:00
Araq
632aece191 further steps to closure support 2012-02-06 00:19:56 +01:00
Araq
78f4aacde9 pragma blocks; fixed line information issue with user defined assertions 2012-01-17 23:58:18 +01:00
Araq
e362cbbfd7 bugfix: tests/reject/tnoinst.nim is now rejected properly 2012-01-13 13:40:05 +01:00
Araq
e7e3c451ef removed '^ deprecated' message 2012-01-10 00:33:32 +01:00
Araq
7f3b3298b4 fixes #33 2012-01-07 20:30:51 +01:00
Araq
4f1b89c30c year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
Araq
9fdfda136c critbits added to stdlib 2011-12-30 21:01:50 +01:00