Commit Graph

150 Commits

Author SHA1 Message Date
Andreas Rumpf
50f62ff44a distinguish between 'reorder' and 'noforward' 2017-07-26 08:20:11 +02:00
Andreas Rumpf
d66a920447 fixes #5846 2017-06-29 18:16:00 +02:00
Zahary Karadjov
74a80988d9 proper error reporting for concepts and the introduction of the {.explain.} pragma 2017-03-24 16:59:47 +02:00
Araq
142b604c13 fixes #5529; don't merge type visibility flags 2017-03-14 15:55:23 +01:00
Arne Döring
92c2a51bf7 removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
Fabian Keller
ce4587d7b7 Enabled explicitly unknown lock levels (#5409)
* enabled explicitly unknown lock levels
* allowing "unknown" as locks pragma
* added test case for locks pragma
* updated docs on locks pragma
2017-02-20 09:31:52 +01:00
Araq
8f426b974a new feature: .used pragma to suppress declared-but-not-used warning 2017-02-17 18:03:56 +01:00
Andreas Rumpf
fab69661ad new name mangling rules for easier debugging 2017-02-02 16:27:48 +01:00
Andreas Rumpf
56aa1ac5bc new name mangling scheme implemented 2017-02-02 10:30:01 +01:00
Araq
0c49ee25a9 fixes serious regression that was introduced in the handling of .compile pragma 2017-01-28 20:37:23 +01:00
Araq
03a1c3b077 .compile pragma supports patterns and actions 2017-01-28 08:54:53 +01:00
Araq
27bc6c1974 .compile pragma supports wildcards 2017-01-27 09:15:42 +01:00
Andreas Rumpf
2f08fdf623 implements {.gcsafe.} enforcement as a pragma block 2017-01-18 12:55:33 +01:00
Araq
45001632ce fixes #3848 2016-12-30 01:51:37 +01:00
Araq
24239c2361 Merge branch 'devel' into sighashes 2016-12-17 23:04:34 +01:00
Andreas Rumpf
b013430929 reworked emit pragma; fixes #4730 2016-12-17 14:20:57 +01:00
Araq
42ae2064dd more tests work 2016-12-02 11:44:28 +01:00
Araq
20cf28adde fixes the regressions introduced by fix for #5076 2016-11-30 19:03:04 +01:00
Andreas Rumpf
02a2180a6a first version of the new memory tracking feature 2016-11-21 12:10:44 +01:00
Andreas Rumpf
479373ad79 fixes #4088 2016-09-11 23:48:59 +02:00
Araq
884d5518dd Merged 2016-08-27 20:52:26 +02:00
Andreas Rumpf
f439a2f25f fixes #4579 2016-08-23 10:13:37 +02:00
Araq
a13cb26c40 next steps in getting symbol files to work again 2016-08-16 20:04:27 +02:00
Andreas Rumpf
9f0899da12 fixes a regression involving the .compile and .link pragmas 2016-08-05 15:14:08 +02:00
Andreas Rumpf
de6198c747 fixes #4555 2016-08-02 12:47:02 +02:00
Andreas Rumpf
60b187513e stdlib and compiler don't use .immediate anymore 2016-07-29 23:51:01 +02:00
Andreas Rumpf
34afaeeedd .base pragma works for generic methods 2016-07-28 20:23:24 +02:00
Jeff Ciesielski
16f2808439 Fix typo. Remove unnecessary proc 2016-07-05 08:26:12 -04:00
Jeff Ciesielski
4f4aafda6c Plumb {.intdefine.} and {.strdefine.} pragmas.
Shorthand so that users won't need to use the .magic pragma
2016-07-04 22:52:24 -04:00
Andreas Rumpf
4ebd7d0744 fixes #1262 2016-05-31 03:04:45 +02:00
Andrei Formiga
c439ef2e71 Fix issue #4001: invalid pragma {. hint[]: off .}
The bug was in processNote, module pragmas. The code assumed that
a nkBracketExpr AST node always had two children (without testing
this), and tried to access elements with index 0 and 1 in the sons
array of the nkBracketExpr node.

The code that triggered the bug was just {. hint[]: off .}
by itself in a module; in this case the nkBracketExpr has only
one children in the sons array, so the code in processNote caused
an out-of-bounds array access.

This commit also adds a test to guarantee that this pragma is
rejected, as is.
2016-05-27 19:03:15 -03:00
Andreas Rumpf
fbedb6c655 fixes #3646 2016-04-04 11:16:20 +02:00
Andreas Rumpf
0baa1d9955 first version of .partial objects 2016-02-28 23:22:47 +01:00
Andreas Rumpf
1afdefcbe9 added experimental .this pragma 2016-02-28 03:17:20 +01:00
Yuriy Glukhov
83607e5c64 Dont warn about unused symbol if its used in emit 2016-02-15 22:58:08 +02:00
Araq
a2c040e3bd added undocumented exportNims pragma for Nimscript support 2015-10-03 23:19:15 +02:00
Aman Gupta
5e9ce88daf implement bitsize pragma for bitfields 2015-09-28 14:34:36 -07:00
Araq
dc047931bb fixes #2590; methods now require a .base annotation 2015-09-06 02:31:28 +02:00
rku
24ad2cb392 Merge branch 'devel' into coroutines 2015-08-20 17:54:55 +03:00
Araq
bd786812e7 fixes #3171 2015-08-02 02:55:59 +02:00
rku
626226efa4 {.compile.} pragma accepts paths relative to file pragma is in. 2015-07-31 15:57:10 +03:00
Araq
d3255f708c small steps for making --symbolFiles:on work again 2015-07-20 13:43:59 +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
Araq
751232dc7c implements .goto support for variables 2015-04-19 02:42:40 +02:00
def
39049e151f Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
Andreas Rumpf
99e0fb90e0 Merge pull request #2428 from arnetheduck/comp-lib-ropes
Comp lib ropes
2015-04-06 00:32:08 +02:00
Araq
d5f40ee70d better error message for implicit pragmas 2015-04-04 01:19:29 +02:00
Jacek Sieka
c40249cd43 compiler_ropes: ropeToStr -> $ 2015-04-01 22:32:15 +08:00
Araq
910ef7b2d1 'constructor' pragma for C++ support 2015-03-18 11:42:37 +01:00
Araq
1fc590b6ea don't generate memset calls for C++ objects 2015-03-18 11:42:36 +01:00