22886 Commits

Author SHA1 Message Date
Zahary Karadjov
d541815e4b Added AST introspection routines as a part of the standard library 2011-09-20 14:13:45 +03:00
Zahary Karadjov
0b197ade6c Multiple C lines corresponding to a single nimrod line are joined together
This patch greatly improves the "step over" operation available in debuggers.
In practice, there are often 4-8 lines of C code generated for each nimrod line
Each such line will be responsible to a single step in the debugger that is
a) not expected by the user
b) taking the user to an incorrect line in the nimrod code

To keep this working, all code generation should use the rope formatting
facilities when producing new lines (i.e. $n and $N).
New semantics for the format string are introduced:
$n means "soft new line" that could be joined/broken when lineDir is enabled.
$N means "hard new line" that will always appear as a new line.

As an alternative to this approach, I also tested producing code like this:
#line "code.nim" 154
foo = bar; \
foo(bar) \

This is better for readability of the final output, but unfortunately it didn't
produce the desired result across all compilers/debuggers.
2011-09-20 14:11:06 +03:00
Zahary Karadjov
0f0dfd6379 Nimrod can now compile itself with --lineDir enabled 2011-09-20 14:11:06 +03:00
Araq
daa2c8732d Merge branch 'master' of github.com:Araq/Nimrod 2011-09-20 00:57:06 +02:00
Araq
fd62116f6e bugfixes for generics; new threads implementation still broken 2011-09-20 00:56:48 +02:00
Araq
c2d9e27f7d Merge pull request #56 from keitahaga/doc-fixes
Typo fix
2011-09-10 11:20:53 -07:00
Keita Haga
8fa8ab5960 lib/wrappers/sphinx.nim: fix typo, use 'shpinx' instead of 'sphinx' 2011-09-09 19:03:33 +09:00
dom96
4896f63129 Some improvements relating to the IRC module. 2011-09-04 20:28:32 +01:00
dom96
fd01772634 Added IRC module. 2011-09-04 19:47:46 +01:00
Araq
dc3ace4f37 Merge branch 'master' of git@github.com:Araq/Nimrod 2011-08-29 01:15:42 +02:00
Araq
b9d0806e3b added actors.nim file; compiler not up for this task 2011-08-29 01:15:29 +02:00
Araq
4839800c22 new actors implementation for nimrod; compiler's generics still not up for the task though 2011-08-29 01:14:26 +02:00
Araq
5112677904 attempt to fix tester.nim file handle leak 2011-08-29 01:13:38 +02:00
Araq
a191fba6f1 Merge pull request #53 from keitahaga/doc-fixes
Fix typo in strutils.splitLines doc comment
2011-08-28 06:08:11 -07:00
Keita Haga
15b1bda82b lib/pure/strutils.nim: fix doc comment for splitLines 2011-08-25 21:04:55 +09:00
Araq
82af6387d9 bugfix: fixed built-in 'reset' 2011-08-20 15:36:26 +02:00
Araq
dd190a5c01 more occurences of 'pure' proc pragma fixed 2011-08-20 01:01:46 +02:00
Araq
d560e84fcc locks now in their own core module 2011-08-20 00:24:02 +02:00
Araq
5cba831c88 'pure' is now 'noStackFrame' for procs 2011-08-19 19:11:58 +02:00
Araq
ffefb736d9 small bugfix for eval 2011-08-19 09:07:23 +02:00
Araq
15440ec745 documentation for --nimcache option 2011-08-19 01:52:14 +02:00
Araq
c7b130b4e2 implemented --nimcache config option; big clean up of magic words 2011-08-19 01:46:24 +02:00
Araq
257b16ca34 inlining of 'var openarray' iterators now work 2011-08-18 18:52:05 +02:00
Araq
f8ac84f863 Merge branch 'master' of git@github.com:Araq/Nimrod 2011-08-16 21:24:42 +02:00
Araq
a0d172cd85 bugfix topenarrayrepr works again 2011-08-16 21:24:30 +02:00
Araq
dd9a591f7a Merge pull request #51 from keitahaga/fix-typo
Fix typo in cgi module; many thanks to keitahaga
2011-08-16 11:50:34 -07:00
Keita Haga
9da77eb5cb lib/pure/cgi.nim: fix typo 'passwort' instead of 'password' 2011-08-17 02:08:49 +09:00
Araq
b0742c5b27 finally got rid of nkPassAsOpenArray 2011-08-16 08:56:53 +02:00
Araq
f3007cbd72 Merge branch 'master' of git@github.com:Araq/Nimrod 2011-08-15 19:40:12 +02:00
Araq
2183bf77a6 added xmltree.innerText; fixes #49 2011-08-15 19:40:00 +02:00
Araq
bbbdea244a Merge pull request #50 from keitahaga/terminal
Fixed bug where the styleReverse doesn't work on Unix-like systems
2011-08-15 10:37:00 -07:00
Keita Haga
b40d55b68e lib/pure/terminal.nim: fixed bug where the styleReverse doesn't work on Unix-like systems 2011-08-16 01:48:56 +09:00
Araq
c6038dda04 bugfix: running for threads 2011-08-12 01:24:47 +02:00
Araq
7ad5cab17e added system.running for threads 2011-08-11 21:22:23 +02:00
Araq
a1cdd6e7ff bugfix: #line generation for windows 2011-08-11 01:28:37 +02:00
Araq
d5dd4669df further tests for var T result type; ttables test now fails :-( 2011-08-10 01:16:32 +02:00
Araq
72e7a98543 added system.slurp for easy embedding of resources 2011-08-10 00:43:58 +02:00
Araq
7000cf51b7 modifyable results for generics; teventemitter works 2011-08-09 01:40:12 +02:00
Araq
12f22ba68a fixes #35, fixes #43 2011-08-08 01:15:09 +02:00
Araq
cb21fd4f8f json code generation works again 2011-08-07 23:54:03 +02:00
Araq
5131b3cea4 support for C++ code generation; importcpp and importobjc pragmas 2011-08-07 21:02:09 +02:00
Araq
7748dbc0b2 Merge branch 'master' of github.com:Araq/Nimrod 2011-08-04 19:47:47 +02:00
Araq
7a6140e3a4 fixes #42 2011-08-04 19:47:35 +02:00
dom96
3e660efeb4 Fixed osproc.terminate for posix and improved some other osproc posix functions. 2011-08-03 22:38:21 +01:00
Araq
7670466d43 Merge pull request #46 from keitahaga/examples
Fixed examples/keyval2.nim
2011-08-02 12:55:56 -07:00
Keita Haga
74947d0185 examples/keyval2.nim: the indices of the elements of a sequence are numbered starting with zero 2011-08-02 16:59:23 +09:00
Araq
f0145ba7c5 anonymous procs implemented; however no closure support yet 2011-08-01 08:39:27 +02:00
Araq
00a4e19e8f clean exit codes for all the tools 2011-08-01 07:56:10 +02:00
Araq
dd99fe61c0 documentation for 'var T' as return type 2011-08-01 00:21:16 +02:00
Araq
3e806a374a 'var T' for iterators 2011-07-31 22:39:17 +02:00