Andreas Rumpf
fc967cc715
custom pragmas: proper error handling
2018-02-12 16:40:27 +01:00
Andreas Rumpf
212457f5e0
the .deprecated pragma for procs now supports a user-definable deprecation message
2018-02-02 12:53:38 +01:00
Yuriy Glukhov
02c1f120eb
Fixes nimsuggest#78 ( #7151 )
2018-01-29 23:41:32 +01:00
cooldome
27aab0be16
Custom pragmas in procs bug fix ( #7086 )
2018-01-18 10:38:55 +01:00
cooldome
2c9e56a783
Implement custom annotations ( #6987 )
2018-01-09 15:25:22 +01:00
Andreas Rumpf
c19c6b1fae
Merge branch 'devel' of github.com:nim-lang/Nim into devel
2017-12-27 12:23:17 +01:00
Andreas Rumpf
7b5448c755
introduce 'core' as an alias for 'compilerproc'
2017-12-27 12:23:12 +01:00
cooldome
53cf0b2c24
Allow noreturn procs with void type ( #6973 )
2017-12-27 10:09:24 +01:00
cooldome
2b3ec0a7c6
Implement language feature #6885 ( #6954 )
2017-12-24 22:22:03 +01:00
Araq
a22dba4a8b
newruntime: removed old way of writing destructors
2017-11-28 17:34:30 +01:00
Andreas Rumpf
58187f2120
added a warning that the .deprecate statement is unreliable for routines
2017-11-21 11:27:35 +01:00
Andreas Rumpf
bd19b5f4d3
implemented undocumented '.liftLocals' feature
2017-11-02 10:42:19 +01:00
Andreas Rumpf
70ea45cdba
deprecated unary '<'
2017-10-29 08:37:13 +01:00
Andreas Rumpf
7889692523
first implementation of package level types that allow forwarding across module boundaries
2017-10-28 15:28:59 +02:00
Andreas Rumpf
c6235920cb
backend preparations for incomplete/forwarded object types
2017-10-28 13:46:43 +02:00
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