Commit Graph

91 Commits

Author SHA1 Message Date
Araq
2aaa8f7909 implemented dataflow analysis; activate via --warning[Uninit]:on 2013-06-04 21:58:39 +02:00
Araq
9fc98cefda Merge branch 'master' into newparser 2013-05-07 18:44:24 +02:00
Zahary Karadjov
f52ea04d22 support suggest after compile in caas mode 2013-05-05 15:12:50 +03:00
Zahary Karadjov
519d5b834a experimental support for answering idetools --def requests from
an in-memory index built during compilation in caas mode
2013-05-04 23:02:03 +03:00
Araq
23bd3ccd8b Merge branch 'master' into newparser 2013-05-04 19:10:12 +02:00
Zahary Karadjov
89f9772f15 nimrod dump can now produce a machine readable json report
The data in the report includes necessary information for starting
the compiler service and setting up the project paths in the IDE.

the default verbosity of 1 is now set in the compiler code to fix an
issue with verbosity being temporary set to 1 during config parsing
even when it's explicitly overridden on the command-line.

compiler/lexbase was temporary renamed to nimlexbase as a
work-around for a codegen naming conflict with lib/pure/lexbase
resulting in linking errors (further investigation needed).
2013-05-01 20:46:05 +03:00
Araq
03764f0aba new parser works 2013-04-20 18:46:08 +02:00
Araq
7e329db45f next steps for the new parser 2013-04-20 03:03:12 +02:00
Zahary Karadjov
e7581e7b9b experimental support for outputting code snippets in error messages; implements #301
see #301 for description.
currently, the feature is activated by setting the verbosity level to 2 or more
2013-04-09 00:15:43 +03:00
Grzegorz Adam Hankiewicz
72a3e21f28 Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
Simon Hafner
cc893b968b added isServing parameter 2013-02-26 14:36:33 -06:00
Zahary Karadjov
81a3585872 merged upstream master 2013-01-27 23:41:45 +02:00
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