Commit Graph

99 Commits

Author SHA1 Message Date
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
fd62116f6e bugfixes for generics; new threads implementation still broken 2011-09-20 00:56:48 +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
a0d172cd85 bugfix topenarrayrepr works again 2011-08-16 21:24:30 +02:00
Araq
b0742c5b27 finally got rid of nkPassAsOpenArray 2011-08-16 08:56:53 +02:00
Araq
2183bf77a6 added xmltree.innerText; fixes #49 2011-08-15 19:40:00 +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
7a6140e3a4 fixes #42 2011-08-04 19:47:35 +02:00
Araq
f0145ba7c5 anonymous procs implemented; however no closure support yet 2011-08-01 08:39:27 +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
Araq
4f7fa05911 void type improvements; documentation improvements 2011-07-31 14:57:38 +02:00
Araq
00da785f5d void type for generics 2011-07-31 01:11:34 +02:00
Araq
05cffb9370 'is' operator for generic code 2011-07-31 00:55:30 +02:00
Araq
6a8a409f1b preparation for new 'is' operator; breaks bootstrapping again, sorry (use generated C code) 2011-07-31 00:21:32 +02:00
Araq
2d62738bbb attempt to improve 'suggest' feature 2011-07-30 15:19:58 +02:00
Araq
086f0d34db Merge branch 'master' of git@github.com:Araq/Nimrod 2011-07-30 10:43:05 +02:00
Araq
6781da5215 bugfix: forwarding of generic procs now works 2011-07-30 10:42:51 +02:00
Keita Haga
19f6750b92 c2nim,pas2nim: use the stdout.writeln to display the "unknown option" message 2011-07-29 20:21:29 +09:00
Keita Haga
d1c49caa68 c2nim,pas2nim: bugfix: --out:FILE option does not work as documented 2011-07-29 20:10:55 +09:00
Araq
dce8949b9b bugfix: 'final' not passed to generic 2011-07-29 01:25:05 +02:00
Araq
2f066395ba bugfixes; step one for 'var T' as return type support 2011-07-28 00:53:52 +02:00
Araq
e7135c449d Merge branch 'master' of github.com:Araq/Nimrod 2011-07-26 00:46:55 +02:00
Araq
0e7f2ca3f1 bugfixes; added events module, sequtils module 2011-07-26 00:46:41 +02:00
Keita Haga
ba6946eca4 pas2nim: nhashes library doesn't exist 2011-07-25 23:12:28 +09:00
Araq
ef039a1325 doc improvements; added lazarus example 2011-07-24 23:07:40 +02:00
Araq
a6daf71520 old pointer deref operator completely removed 2011-07-23 20:19:05 +02:00
Araq
569c1ce5ec bugfix: proper cache for generic instantiations 2011-07-21 00:57:39 +02:00
Araq
42e6130b2c first steps to explicit channels for thread communication; added mainThreadId 2011-07-16 18:34:18 +02:00
Araq
fe5df368c1 0.8.12 bugfix: some files not in download package 2011-07-11 21:07:31 +02:00
Araq
5b96eaa953 preparations for 0.8.12 2011-07-10 15:48:13 +02:00
Araq
99bcc233cd bugfix: 'set' overloadable; further steps for multi threading support 2011-07-08 01:29:15 +02:00
Araq
170573a87f bugfix: subranges in generics properly detected 2011-06-29 19:14:35 +02:00
Araq
5c94a9e1ae tests are green again 2011-06-28 01:31:53 +02:00
Araq
3091bc4958 importCompilerProc pragma introduced because the hacks for typeinfo.nim did not suffice 2011-06-27 08:33:03 +02:00
Araq
3e91b456e5 second attempt to fix code gen for pegs.nim 2011-06-26 23:55:47 +02:00
Araq
aa14667ca1 bugfix: pegs.nim compiles again 2011-06-26 22:43:38 +02:00