Commit Graph

1048 Commits

Author SHA1 Message Date
Zahary Karadjov
d0edb1826b adds an option to interleave the generated code with snippets from the original source
Lines from the original source are outputted as comments next to line directives.
Hopefully, this will make debugging codegen problems easier.

Other changes:
The frame setup code now uses a single-line C macro. My motivation was to reduce
the noise in the generated output and make it easier to step over the boiler-plate
code, but counter-intuitively this also improved the overall compilation speed a
little bit so I applied the same treatment to line tracking too (this reduces the size of
the generated files and the explanation is that probably the I/O overhead dominates
the macro expansion costs).
2012-12-02 20:36:29 +02:00
Araq
c98e3d2c27 implements 'export' feature 2012-12-01 19:10:47 +01:00
Araq
92e10e4b18 implemented 'import except' 2012-11-28 23:54:23 +01:00
Zahary Karadjov
091c1b3075 caas is now drivable through stdin
* added idetools --eval
* streams.readLine recognises and applies the backspace character
2012-11-28 01:15:13 +02:00
Araq
2591ac0ada 'return' for first class iterators 2012-11-26 08:47:57 +01:00
Araq
ccd2934e4a first steps for 'not nil' annotation 2012-11-25 11:03:14 +01:00
Araq
f610d2d221 'iterator' as type description 2012-11-22 08:31:40 +01:00
Araq
d0de1fc336 made 'shared' a keyword 2012-11-22 07:53:50 +01:00
Araq
3d40842088 doc2 improvements; small lexer bugfix: backslashes in comments 2012-11-20 17:46:11 +01:00
Araq
14fc0631d7 fixes #250 2012-11-19 00:16:25 +01:00
Araq
48a62af3b1 implemented 'tags' pragma 2012-11-11 22:03:41 +01:00
Araq
6cfbfc43a4 Merge branch 'master' of github.com:Araq/Nimrod 2012-11-08 19:43:18 +01:00
Grzegorz Adam Hankiewicz
790df95072 Updates docs about exceptions being on the stack/heap. 2012-11-08 17:37:55 +01:00
Araq
ed28f3c8dc documented 'mixin' declaration 2012-11-08 08:32:08 +01:00
Grzegorz Adam Hankiewicz
42f6cb465a Adds to the tutorial some info about exception tracking. 2012-11-08 00:02:09 +01:00
Araq
35f61e1997 documented Nimrod's effects system 2012-11-06 17:31:43 +01:00
Araq
e54425b068 system.onRaise improvements 2012-11-05 19:48:49 +01:00
Araq
865d9cc6e6 added system.onRaise to support a condition system 2012-11-05 08:36:44 +01:00
Araq
172b6aacf8 fixes #230; fixes #227 2012-10-19 20:45:26 +02:00
Araq
d43febf81e first version of a memory profiler 2012-10-10 00:41:34 +02:00
Araq
c2b8669e04 Merge branch 'master' of github.com:Araq/Nimrod 2012-10-03 20:51:22 +02:00
Araq
9fbee85cc9 first steps for compiler as a service 2012-10-03 20:49:43 +02:00
Zahary Karadjov
770d4a997e implemented case expressions 2012-10-03 01:59:49 +03:00
Zahary Karadjov
92f70b08f9 table constructors now mimic more closely the syntax of case... of...
see the safePrintF example in the manual as a motivation
2012-10-03 01:59:49 +03:00
Zahary Karadjov
7e44015491 implemented return type inference
Other fixes:
* bind once is now the default for type classes as documented in the manual
* fixes an issue in template overloading (erroneous  ambiguity when different typedesc params were used)
2012-10-03 01:59:49 +03:00
Zahary Karadjov
88ea9073c3 missing documentation added to the manual
documented:
* closures and the do notation
* type classes
* return type inference
* typedesc parameters and values
* destructor pragma
* fixed a number of typos
2012-09-27 22:44:52 +03:00
Zahary Karadjov
04c5f58ce4 normalized the line endings in the manual 2012-09-27 22:44:52 +03:00
Araq
3ef146b0ea 'mixin' and 'interface' are now keywords 2012-09-22 10:04:31 +02:00
Araq
75abf72503 profiler improvements 2012-09-17 00:31:41 +02:00
Araq
ad6ee9e857 profiler documentation 2012-09-15 01:27:53 +02:00
Araq
d336cb4957 bugfix: echo vs debugEcho 2012-09-13 17:33:20 +02:00
Araq
a783077cfd splitted echo into echo/debugEcho 2012-09-13 08:46:24 +02:00
Araq
d48d3d0bd1 small bugfixes; reactivated tests/compile 2012-09-11 23:21:02 +02:00
Araq
64c638a9dc first steps for overloading support of passing blocks; bugfix: test results of 'compile' are not overwritten 2012-09-11 08:09:34 +02:00
Araq
92b449562e tr macros now documented 2012-09-10 19:34:16 +02:00
Araq
580d85d233 implemented 'pure' enums 2012-09-08 20:51:50 +02:00
Araq
b4cd119800 Merge branch 'master' of github.com:Araq/Nimrod 2012-09-03 00:56:06 +02:00
Araq
af7c92c003 term rewriting macros fully implemented; still buggy 2012-09-03 00:55:44 +02:00
Dominik Picheta
223b4f45ed Added fsmonitor module. 2012-09-02 23:26:49 +01:00
Araq
1d14cb1ad8 next steps towards term rewriting macros; simple examples work 2012-08-30 22:55:32 +02:00
Araq
b4844a189d parameter passing works the same for macros and templates; use callsite magic to access the invokation AST 2012-08-28 22:15:29 +02:00
Araq
b5b5e6e76d distinguish properly between nkOpen and nkClosedSymChoice 2012-08-26 02:47:17 +02:00
Araq
9a7f0cd851 bindSym suffices; no 'bind' for macros anymore 2012-08-25 01:34:50 +02:00
Araq
d17caa86e8 objects with no ancestor are not implicitely final 2012-08-24 17:33:04 +02:00
Araq
afcff024a1 documented bind in macros 2012-08-24 08:18:48 +02:00
Araq
bdf3bee055 implemented backslash for continuation comments 2012-08-23 08:45:40 +02:00
Araq
f893179889 documented hygienic templates; made tests green; fixed system.clamp 2012-08-22 22:46:02 +02:00
Araq
5e15dec175 first steps to make templates hygienic 2012-08-20 01:13:13 +02:00
Araq
e4c432387e bycopy/byref for object/tuple types 2012-08-16 17:54:11 +02:00
Araq
0171566c98 openarray/varargs split; breaks bootstrapping 2012-08-16 08:34:33 +02:00