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