Commit Graph

76 Commits

Author SHA1 Message Date
Araq
3ccc9c467d 'with' and 'without' are not keywords anymore 2017-09-30 18:32:44 +02:00
Andreas Rumpf
50f62ff44a distinguish between 'reorder' and 'noforward' 2017-07-26 08:20:11 +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
8f426b974a new feature: .used pragma to suppress declared-but-not-used warning 2017-02-17 18:03:56 +01:00
Andreas Rumpf
02a2180a6a first version of the new memory tracking feature 2016-11-21 12:10:44 +01:00
Araq
773d17cd14 big refactoring: step 1 2016-10-31 15:34:44 +01:00
Jeff Ciesielski
94d1aa5109 Add the ability to pass a value with the -d flag
This allows the end user to use the {.magic: "IntDefine"/"StrDefine"}
pragmas to pass values into code at compile time.  This has a nice side
effect of also allowing/requiring a default value to be assigned in the
code (see osalloc.nim/StandaloneHeapSize for an example)
2016-07-04 18:11:25 -04:00
Andreas Rumpf
c9966a3e17 use 'using' instead of 'sig' keyword; cleans up new features a bit 2016-02-29 12:19:54 +01:00
Andreas Rumpf
0baa1d9955 first version of .partial objects 2016-02-28 23:22:47 +01:00
Andreas Rumpf
38dee2095c added 'sig' feature; removed tfShared support in the compiler 2016-02-28 19:56:41 +01: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
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
f6ff01572e breaking change: 'concept' is now a keyword and used instead of 'generic' 2015-03-23 13:10:18 +01:00
Araq
910ef7b2d1 'constructor' pragma for C++ support 2015-03-18 11:42:37 +01:00
Guillaume Gelin
3119fe087d Happy new year! 2015-01-06 15:26:33 +01:00
Araq
85cc5a6a1f destuctors are experimental; 'func' is now a keyword 2014-12-10 01:57:08 +01:00
Araq
4b7de4dc5e implemented 'experimental' switch 2014-12-05 10:09:29 +01:00
Araq
e27ab36731 implements 'defer' 2014-12-04 10:12:32 +01:00
Araq
7916b1f9aa implemented 'guard' annotation 2014-09-21 18:39:00 +02:00
Araq
2781fea9e2 Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
Araq
057b53e139 'lambda' is no keyword anymore 2014-08-08 02:24:19 +02:00
Araq
9673e4f2df progress on deepCopy 2014-08-01 23:40:48 +02:00
Araq
3b69a8d27a New concurrency model: next steps 2014-04-19 22:24:43 +02:00
Araq
8e08ff559f first version of 'spawn' 2014-04-16 08:44:57 +02:00
Araq
b961e47bfe new concurrency model: first steps; shared is not a keyword anymore 2014-04-14 08:45:43 +02:00
Audun Wilhelmsen
1e45bb79ab Added support for {.packed.} pragma on objects
Added tests for packed and union pragmas
2014-03-18 21:11:57 +01:00
Araq
5506e8491d implemented 'union' and 'unchecked' pragmas 2014-03-05 20:19:04 +01:00
Araq
ab72377ce6 renamed noStackFrame to asmNoStackFrame 2014-02-18 09:57:59 +01:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
b76729df1c Merge branch 'master' of https://github.com/Araq/Nimrod into vm2
Conflicts:
	web/news.txt
2013-12-23 01:23:16 +01:00
Araq
132b6b3efe implemented 'injectStmt'; more debug support 2013-12-16 22:26:17 +01:00
Araq
c0a3d44060 bugfix: keywords are sorted 2013-12-05 10:45:36 +01:00
Zahary Karadjov
b5d833b329 implemented the using statement 2013-08-31 19:40:36 +03:00
Zahary Karadjov
28d9398de7 implemented delegators and improved the error messages of unmatched type classes 2013-08-26 23:29:24 +03:00
Araq
d53f313599 implemented computed goto support 2013-08-13 11:21:02 +02:00
Araq
139562cc64 implements the 'codegenDecl' pragma 2013-06-27 18:13:11 +02:00
Araq
23ef565a3c implemented large parts of the 'not nil' checking 2013-06-09 23:29:43 +02:00
Zahary Karadjov
f44a4362bb added a `noforward` pragma that enables a new compilation strategy
not requiring forward declarations on a per-module basis
2013-05-11 22:47:37 +03:00
Grzegorz Adam Hankiewicz
72a3e21f28 Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
Araq
d0de1fc336 made 'shared' a keyword 2012-11-22 07:53:50 +01:00
Araq
48a62af3b1 implemented 'tags' pragma 2012-11-11 22:03:41 +01:00
Araq
2133fbfcce bugfix: wrong assertions for C++ code generation; some solaris support; first steps to an effect system 2012-10-30 22:29:03 +01:00
Araq
3ef146b0ea 'mixin' and 'interface' are now keywords 2012-09-22 10:04:31 +02:00
Araq
1d14cb1ad8 next steps towards term rewriting macros; simple examples work 2012-08-30 22:55:32 +02:00
Araq
da190876de next steps to hygienic templates 2012-08-20 08:44:17 +02:00
Araq
5e15dec175 first steps to make templates hygienic 2012-08-20 01:13:13 +02:00
Araq
0b509127d2 documentation improvements; added system.gorge (for Araq's fun) 2012-06-22 08:30:55 +02:00
Zahary Karadjov
ce933c90a4 destructor pragma 2012-06-07 03:32:40 +03:00