Commit Graph

2303 Commits

Author SHA1 Message Date
Andreas Rumpf
62376c0657 Merge pull request #2824 from yglukhov/js-ct-lambda-lifting
Perform lambda lifting for compile-time stuff when targeting JS.
2015-06-05 13:04:02 +02:00
Andreas Rumpf
f8326ad4c0 Merge pull request #2859 from nanoant/patch/norewrite-pragma
{.noRewrite.} pragma for term rewriting
2015-06-05 12:53:15 +02:00
Dominik Picheta
16da925a0a Removed nimsuggest from this repo. 2015-06-04 23:25:29 +01:00
Dominik Picheta
2d9a24f3f6 Hopefully fixes nimsuggest building against the compiler package. 2015-06-04 23:07:57 +01:00
pdw
9764ba933b Dropped 'T' from types 2015-06-04 13:15:07 +02:00
Andreas Rumpf
51488ebd12 Merge pull request #2848 from ozra/bugfix-2523-number-literal-lexing
Bugfix #2523 number literal lexing
2015-06-04 11:40:00 +02:00
Andreas Rumpf
8264c3cbee Merge pull request #2849 from ozra/feature-2811-hump-snake-dash
Feature #2811 hump, snake and now dash
2015-06-04 11:37:26 +02:00
yglukhov
e9a57e9706 Fixed codegen for DotDot magic 2015-06-04 12:00:27 +03:00
Oscar Campbell
44b0bf59d9 Change const def to cleaner code per suggestion. 2015-06-02 22:22:27 +02:00
Adam Strzelecki
b0db8126a5 Parser: Inline expr pragmas with parenthesis
Previously pragmas could be attached only to whole statements, this change
allows attaching pragmas to inline statements, eg.:

  template rewriteAdd{a + b}(a: expr, b: expr): expr =
    ({.noRewrite.}: a + b) + 1

Code above will cause a + b to be rewritten once, because rewriteAdd attaches
{.noRewrite.} to resulting a + b expr.
2015-06-02 21:58:14 +02:00
Adam Strzelecki
2f5ed17cfe Parser: Properly represent parsePar in grammar 2015-06-02 21:53:46 +02:00
Adam Strzelecki
13b57dbc2f Introduce {.noRewrite.} expr pragma disabling TR
Term rewriting macros/templates are currently greedy and they will rewrite as
long as there is a match. So there was no way to ensure some rewrite happens
only once, eg. when rewriting term to same term plus extra content.

With new macro we can actually prevent further rewriting on marked expr or
stmts, eg. with given example echo(...) will be rewritten just once:

  template pwnEcho{echo(x)}(x: expr) =
    {.noRewrite.}: echo("pwned!")

  echo "ab"
2015-06-02 21:38:53 +02:00
Oscar Campbell
dd30bab480 Restructure branching slighty. Fix error message. 2015-06-01 23:49:04 +02:00
Oscar Campbell
4a1e45e3f8 Remove forgotten debug echo statement. 2015-05-31 03:11:44 +02:00
Oscar Campbell
6a43b0e817 Clean up to compiler style. Refine error-msg for illegal octal 'O' 2015-05-31 02:55:06 +02:00
Oscar Campbell
1b4db5a34c Implement #2811 - Unicode en-dash (U+2013) as hump/snake alt. 2015-05-31 01:31:06 +02:00
Oscar Campbell
49b953533a Fix #2523 - first commit. Needs some cleanup. 2015-05-31 00:56:27 +02:00
yglukhov
c5f7d553e9 Perform lambda lifting for compile-time stuff when targeting JS. Enable unittest test. 2015-05-29 10:48:14 +03:00
yglukhov
eec76cfc6b Fixed renderer for asm node in JS 2015-05-28 10:23:09 +03:00
Andreas Rumpf
14b2bbc24c Merge pull request #2695 from transfuturist/devel
Add path directive to allow inclusion of config file's path itself
2015-05-26 21:13:52 +02:00
Andreas Rumpf
3db13ba0e0 Merge pull request #2804 from yglukhov/minor-cosmetics
Minor cosmetic changes.
2015-05-26 21:12:13 +02:00
Andreas Rumpf
aa66dfd5a7 Merge pull request #2810 from yglukhov/js-codegen-obj-field-byvar
Fixes #2798. Passing arguments by var in certain cases leads to invalid JS.
2015-05-26 21:11:32 +02:00
yglukhov
d3c4c7c52f Fixes #2798 2015-05-26 16:00:48 +03:00
Sergey Avseyev
b8fbe6c711 Ship all testdata with dist 2015-05-26 15:46:57 +03:00
yglukhov
1156e8ef9d Minor cosmetic changes. 2015-05-26 11:32:07 +03:00
Simon Hafner
4cc722a414 now nimsuggest works on the first sug 2015-05-24 17:47:51 -05:00
Simon Hafner
928b730d1b fixes #2694 2015-05-24 14:52:16 -05:00
Andreas Rumpf
5d4ee87f3b Merge pull request #2754 from def-/intval
Intval
2015-05-19 14:36:03 +02:00
Andreas Rumpf
d7c0b269cb Merge pull request #2734 from def-/stdin-fix
Clean up stdin file reading of compiler.
2015-05-19 14:35:18 +02:00
yglukhov
4439b00b19 Fixed JS call codegen, when first parameters are compile-time. 2015-05-19 13:41:18 +03:00
def
2076e14a09 Update ast spec about uint literals 2015-05-18 21:34:26 +02:00
def
51de44be79 Make intVal work for uint literals in the VM 2015-05-18 21:31:24 +02:00
def
2613110015 Use gProjectIsStdin instead 2015-05-17 16:10:46 +02:00
def
def61c9fcd Clean up stdin file reading of compiler.
Uses "stdinfile" as the module identifier now, which prevents problems
with - colliding with the minus operator. This fixes #2422 and #2702.
2015-05-16 12:38:53 +02:00
transfuturist
8fc53f2952 Add path directive to allow inclusion of config file's path itself 2015-05-14 12:52:43 -07:00
Andreas Rumpf
c30d7c3208 Merge pull request #2680 from reactormonk/epc
Implements EPC for nim-mode in nimsuggest
2015-05-14 02:16:12 +02:00
Adam Strzelecki
179d82c55b Fix #2662: Don't convert subtype typedesc params
There is no point to issue implicit HiddenStdConv encountering subtype of
typedesc[Base] parameter on overload resolution, since this will anyway never
reach codegen. This change effectively fixes compiler bug for:

  iterator it(T: typedesc[Base]) = ...
  for s in it(SubclassOfBase): ...

Where HiddenStdConv triggered implicit instantiation of variable of type
typedesc[Base] in for transform, that eventually fails at getUniqueType, that
refuses to work for typedesc.
2015-05-13 19:10:54 +02:00
Simon Hafner
5e97780a94 changed from parseEnum to direct copy
Let's hope this doesn't break anything
2015-05-13 18:34:29 +05:00
Simon Hafner
c56a005238 nextFreePort -> connectToNextFreePort 2015-05-13 18:19:39 +05:00
Simon Hafner
13e8547fa7 hardcoded order 2015-05-08 19:47:34 +05:00
Simon Hafner
c06672451a removed unnecessary deps 2015-05-08 19:47:17 +05:00
Simon Hafner
f5cca89610 merged devel into epc 2015-05-08 06:40:34 +05:00
Simon Hafner
2474c1bb11 import sigmatch, not suggest in nimsuggest 2015-05-08 06:32:58 +05:00
Andreas Rumpf
9422dbf337 Merge pull request #2657 from def-/noreturn
Pass noReturn pragma to C code.
2015-05-08 02:08:32 +02:00
def
4a2a0894ae Implicitly assume compilers to know naked and noreturn attributes 2015-05-07 22:31:45 +02:00
def
a7b39e3ebf Improve code style a bit 2015-05-07 20:35:16 +02:00
def
81cff0908e Fix the lib path used with --app:staticlib
For example if gProjectName is "src/false.nim" the old static lib name
was "libsrc/false.nim.a", now it is "libfalse.a".
2015-05-07 02:29:31 +02:00
def
78c26cbf18 Distinguish only between __declspec and __attribute__ 2015-05-05 20:35:43 +02:00
def
a9fe618756 Pass noReturn pragma to C code.
With GCC and Clang this generates __attribute__((noreturn)) in the
function declaration. (both tested) With VCC __declspec(noreturn) is
used.
2015-05-05 00:02:09 +02:00
Araq
3bef848a2c added missing stuff for the release 2015-05-04 19:40:11 +02:00