www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Mono-D v1.2.7 - Completion, ldc2 compatibility, dub fixes

reply "Alexander Bothe" <info alexanderbothe.com> writes:
Hi everyone,

Just wrote annotated v1.2.7 of Mono-D:
http://mono-d.alexanderbothe.com/completion-ldc2-compatibility-dub-fix-v1-2-7

I'm too lazy to mention every part of it again over here - if 
there are questions: Here, in #d.mono-d, on the blog, on github - 
you know the usual places where to find me :)



Cheers mates,
Alex
Jan 12 2014
parent reply "evilrat" <evilrat666 gmail.com> writes:
On Sunday, 12 January 2014 at 23:40:33 UTC, Alexander Bothe wrote:
 Hi everyone,

 Just wrote annotated v1.2.7 of Mono-D:
 http://mono-d.alexanderbothe.com/completion-ldc2-compatibility-dub-fix-v1-2-7

 I'm too lazy to mention every part of it again over here - if 
 there are questions: Here, in #d.mono-d, on the blog, on github 
 - you know the usual places where to find me :)



 Cheers mates,
 Alex
after about half year i tried it again on OS X, and Mono-D is quite good for writing the code, but... the debug!!11 can we haz some GDB or LLDB(or both :)) support please? it shouldn't be that hard porting linux code to OS X. it may already doing something useful but it simply doesn't start... p.s. also, why at first launch it can't just fetch default phobos location for DMD? it's quite annoying adding this paths in settings and it may revolve unaware users from using it(like it was for me about year ago).
Jan 12 2014
next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Monday, 13 January 2014 at 05:25:31 UTC, evilrat wrote:
 On Sunday, 12 January 2014 at 23:40:33 UTC, Alexander Bothe 
 wrote:
 Hi everyone,

 Just wrote annotated v1.2.7 of Mono-D:
 http://mono-d.alexanderbothe.com/completion-ldc2-compatibility-dub-fix-v1-2-7

 I'm too lazy to mention every part of it again over here - if 
 there are questions: Here, in #d.mono-d, on the blog, on 
 github - you know the usual places where to find me :)



 Cheers mates,
 Alex
after about half year i tried it again on OS X, and Mono-D is quite good for writing the code, but... the debug!!11 can we haz some GDB or LLDB(or both :)) support please? it shouldn't be that hard porting linux code to OS X. it may already doing something useful but it simply doesn't start... p.s. also, why at first launch it can't just fetch default phobos location for DMD? it's quite annoying adding this paths in settings and it may revolve unaware users from using it(like it was for me about year ago).
It happened to me yesterday as well after the update. Is this some regression? It worked out of the box previously. -- Paulo
Jan 12 2014
prev sibling next sibling parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Monday, 13 January 2014 at 05:25:31 UTC, evilrat wrote:
 after about half year i tried it again on OS X, and Mono-D is
 quite good for  writing the code, but... the debug!!11

 can we haz some GDB or LLDB(or both :)) support please? it
 shouldn't be that hard porting linux code to OS X. it may 
 already
 doing something useful but it simply doesn't start...
I've got no OSX but erm, what tool is required to have lldb information generated? ldc2? On the other side, which tool is then required to get gdb debug info?
 p.s. also, why at first launch it can't just fetch default 
 phobos
 location for DMD? it's quite annoying adding this paths in
 settings and it may revolve unaware users from using it(like it
 was for me about year ago).
Despite it's clearly explained in the set up guide it sounds quite reasonable to do this automatically, you're right.
Jan 13 2014
next sibling parent reply "evilrat" <evilrat666 gmail.com> writes:
On Monday, 13 January 2014 at 11:03:45 UTC, Alexander Bothe wrote:
 On Monday, 13 January 2014 at 05:25:31 UTC, evilrat wrote:
 after about half year i tried it again on OS X, and Mono-D is
 quite good for  writing the code, but... the debug!!11

 can we haz some GDB or LLDB(or both :)) support please? it
 shouldn't be that hard porting linux code to OS X. it may 
 already
 doing something useful but it simply doesn't start...
I've got no OSX but erm, what tool is required to have lldb information generated? ldc2? On the other side, which tool is then required to get gdb debug info?
i don't know about other tools, so basically i just build with "dmd files.d -gc" and debug using console lldb, of course it was mangled but it is better than nothing.
Jan 13 2014
parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Monday, 13 January 2014 at 11:49:57 UTC, evilrat wrote:
 On Monday, 13 January 2014 at 11:03:45 UTC, Alexander Bothe 
 wrote:
 On Monday, 13 January 2014 at 05:25:31 UTC, evilrat wrote:
 after about half year i tried it again on OS X, and Mono-D is
 quite good for  writing the code, but... the debug!!11

 can we haz some GDB or LLDB(or both :)) support please? it
 shouldn't be that hard porting linux code to OS X. it may 
 already
 doing something useful but it simply doesn't start...
I've got no OSX but erm, what tool is required to have lldb information generated? ldc2? On the other side, which tool is then required to get gdb debug info?
i don't know about other tools, so basically i just build with "dmd files.d -gc" and debug using console lldb, of course it was mangled but it is better than nothing.
Fortunately I implemented demangling already, so that's not a real problem. So according to Jacob's comment it's actually possible to get gdb on OSX - but probably just with a wrong build configuration, i.e. the mi2 interface for gdb is not available - or is it? Just try executing gdb --interpreter=mi2 to see whether Mono-D is able to handle its output properly.
Jan 13 2014
parent reply "evilrat" <evilrat666 gmail.com> writes:
On Monday, 13 January 2014 at 14:50:05 UTC, Alexander Bothe wrote:
 So according to Jacob's comment it's actually possible to get 
 gdb on OSX - but probably just with a wrong build 
 configuration, i.e. the mi2 interface for gdb is not available 
 - or is it? Just try executing gdb --interpreter=mi2 to see 
 whether Mono-D is able to handle its output properly.
running "gdb --interpreter=mi2" launches it without any warnings and errors. (my gdb version is 7.6)
Jan 13 2014
next sibling parent reply "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 04:10:03 UTC, evilrat wrote:
 On Monday, 13 January 2014 at 14:50:05 UTC, Alexander Bothe 
 wrote:
 So according to Jacob's comment it's actually possible to get 
 gdb on OSX - but probably just with a wrong build 
 configuration, i.e. the mi2 interface for gdb is not available 
 - or is it? Just try executing gdb --interpreter=mi2 to see 
 whether Mono-D is able to handle its output properly.
running "gdb --interpreter=mi2" launches it without any warnings and errors. (my gdb version is 7.6)
but running mono-d debug gives following error message "ApplicationName='gdb', CommandLine=-quiet -fullname -i=mi2', CurrentDirectory=", NativeError= Cannot find the specified file
Jan 13 2014
parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Tuesday, 14 January 2014 at 04:15:50 UTC, evilrat wrote:
 "ApplicationName='gdb', CommandLine=-quiet -fullname -i=mi2', 
 CurrentDirectory=", NativeError= Cannot find the specified file
Okay, I think I'm gonna make a separate option panel then for setting up the path to gdb.
Jan 13 2014
parent "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 05:04:42 UTC, Alexander Bothe 
wrote:
 On Tuesday, 14 January 2014 at 04:15:50 UTC, evilrat wrote:
 "ApplicationName='gdb', CommandLine=-quiet -fullname -i=mi2', 
 CurrentDirectory=", NativeError= Cannot find the specified file
Okay, I think I'm gonna make a separate option panel then for setting up the path to gdb.
ok, thanks.
Jan 13 2014
prev sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2014-01-14 05:10, evilrat wrote:

 running "gdb --interpreter=mi2" launches it without any warnings and
 errors.

 (my gdb version is 7.6)
I have GNU gdb 6.3.50-20050815 (Apple version gdb-1824). And when I launch it with --interpreter=mi2 I get some extra symbols in the output, like this: ~"GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Wed Feb 6 22:51:23 UTC 2013)\n" -- /Jacob Carlborg
Jan 14 2014
parent reply "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 08:07:57 UTC, Jacob Carlborg wrote:
 On 2014-01-14 05:10, evilrat wrote:

 running "gdb --interpreter=mi2" launches it without any 
 warnings and
 errors.

 (my gdb version is 7.6)
I have GNU gdb 6.3.50-20050815 (Apple version gdb-1824). And when I launch it with --interpreter=mi2 I get some extra symbols in the output, like this: ~"GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Wed Feb 6 22:51:23 UTC 2013)\n"
i have that too, plus additional info and license info
Jan 14 2014
parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Tuesday, 14 January 2014 at 08:50:09 UTC, evilrat wrote:
 On Tuesday, 14 January 2014 at 08:07:57 UTC, Jacob Carlborg 
 wrote:
 On 2014-01-14 05:10, evilrat wrote:

 running "gdb --interpreter=mi2" launches it without any 
 warnings and
 errors.

 (my gdb version is 7.6)
I have GNU gdb 6.3.50-20050815 (Apple version gdb-1824). And when I launch it with --interpreter=mi2 I get some extra symbols in the output, like this: ~"GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Wed Feb 6 22:51:23 UTC 2013)\n"
i have that too, plus additional info and license info
k, released an update. Please tell me whether it works or if another exception is getting thrown!
Jan 14 2014
parent reply "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 12:06:36 UTC, Alexander Bothe 
wrote:
 On Tuesday, 14 January 2014 at 08:50:09 UTC, evilrat wrote:
 On Tuesday, 14 January 2014 at 08:07:57 UTC, Jacob Carlborg 
 wrote:
 On 2014-01-14 05:10, evilrat wrote:

 running "gdb --interpreter=mi2" launches it without any 
 warnings and
 errors.

 (my gdb version is 7.6)
I have GNU gdb 6.3.50-20050815 (Apple version gdb-1824). And when I launch it with --interpreter=mi2 I get some extra symbols in the output, like this: ~"GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Wed Feb 6 22:51:23 UTC 2013)\n"
i have that too, plus additional info and license info
k, released an update. Please tell me whether it works or if another exception is getting thrown!
gdb plugin version 0.2.5 still gives the same error.
Jan 14 2014
parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Tuesday, 14 January 2014 at 13:06:05 UTC, evilrat wrote:
 gdb plugin version 0.2.5 still gives the same error.
Ah, sorry, I should've mentioned it: There's an option panel called "Gdb.D" now where you can put in a custom gdb command.
Jan 14 2014
parent reply "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 13:16:12 UTC, Alexander Bothe 
wrote:
 On Tuesday, 14 January 2014 at 13:06:05 UTC, evilrat wrote:
 gdb plugin version 0.2.5 still gives the same error.
Ah, sorry, I should've mentioned it: There's an option panel called "Gdb.D" now where you can put in a custom gdb command.
it now starts, but in terminal started by xamarin studio it prints: &"warning: GDB: Failed to set controlling terminal: Operation not permitted\n" Hello World! --- in output panel: "Couldn't inject exception handler breakpoint - no finddata symbol found!" and after clicking step through it adds: Single stepping until exit from function _Dmain,\nwhich has no line number information. i have tried compiling with both -g and -gc any suggestions?
Jan 14 2014
parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Tuesday, 14 January 2014 at 13:55:10 UTC, evilrat wrote:
 On Tuesday, 14 January 2014 at 13:16:12 UTC, Alexander Bothe 
 wrote:
 On Tuesday, 14 January 2014 at 13:06:05 UTC, evilrat wrote:
 gdb plugin version 0.2.5 still gives the same error.
Ah, sorry, I should've mentioned it: There's an option panel called "Gdb.D" now where you can put in a custom gdb command.
it now starts, but in terminal started by xamarin studio it prints: &"warning: GDB: Failed to set controlling terminal: Operation not permitted\n"
Known issue, is probably unfixable.
 Hello World!
 ---
 in output panel:
 "Couldn't inject exception handler breakpoint - no finddata 
 symbol found!"
Could you locate the binary libphobos file, open it e.g. with SciTE and look for some mangled string that contains 'finddata', such as _D2rt15deh_win64_posix13__eh_finddataFPvZPyS2rt15deh_win64_posix9FuncTable - something like this is required to have proper exception hooking :)
 and after clicking step through it adds:
 Single stepping until exit from function _Dmain,\nwhich has no 
 line number information.
Okay, this means dmd won't generate file/offset associations and/or thus can't be loaded in gdb. If you tried running your D programw with gdb, made a breakpoint at _Dmain and stepped through the method's code - could you tell me whether it's actually possible to step through the lines? Or is it just telling the same? If so, we can forget about having the gdb addin on OSX as the most essential parts of debugging aren't supported (again, just as on Windows) due to mysterious reasons..
Jan 14 2014
next sibling parent reply "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 14:12:54 UTC, Alexander Bothe 
wrote:
 If you tried running your D programw with gdb, made a 
 breakpoint at _Dmain and stepped through the method's code ...
gdb test run (idk why i run with mi2 :( ) http://pastebin.com/U7UTNfxM lldb just to compare =0 http://pastebin.com/AxLUTuwy
Jan 14 2014
parent reply "Alexander Bothe" <info alexanderbothe.com> writes:
On Tuesday, 14 January 2014 at 14:25:31 UTC, evilrat wrote:
 On Tuesday, 14 January 2014 at 14:12:54 UTC, Alexander Bothe 
 wrote:
 If you tried running your D programw with gdb, made a 
 breakpoint at _Dmain and stepped through the method's code ...
gdb test run (idk why i run with mi2 :( )
No need for having the weird mi2 interface :D
 http://pastebin.com/U7UTNfxM
Okay, so it actually is working - but only partwise. As I just executed that program, I was able to jump into stdin.readln(); as well. Dunno what reason this could have. Could try to extend the sample application to see whether it's skipping everything else either? Btw, could we meet in the irc #d or #d.mono-d ? I'm alex|D-Guy over there, it would be nice to see you there and have little more direct conversation than 'chatting' via the NG/Forum
 lldb just to compare =0
 http://pastebin.com/AxLUTuwy
Okay.
Jan 14 2014
parent reply "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 14:43:26 UTC, Alexander Bothe 
wrote:
 On Tuesday, 14 January 2014 at 14:25:31 UTC, evilrat wrote:
 On Tuesday, 14 January 2014 at 14:12:54 UTC, Alexander Bothe 
 wrote:
 If you tried running your D programw with gdb, made a 
 breakpoint at _Dmain and stepped through the method's code ...
gdb test run (idk why i run with mi2 :( )
No need for having the weird mi2 interface :D
 http://pastebin.com/U7UTNfxM
Okay, so it actually is working - but only partwise. As I just executed that program, I was able to jump into stdin.readln(); as well. Dunno what reason this could have.
stepping through stops on lots of functions down to main(), but no sources and lines. maybe i forgot something.
 Could try to extend the sample application to see whether it's 
 skipping everything else either?

 Btw, could we meet in the irc #d or #d.mono-d ? I'm alex|D-Guy 
 over there, it would be nice to see you there and have little 
 more direct conversation than 'chatting' via the NG/Forum
sure, just not today, too busy at this moment.
Jan 14 2014
parent "Alexander Bothe" <info alexanderbothe.com> writes:
On Tuesday, 14 January 2014 at 15:03:01 UTC, evilrat wrote:
 stepping through stops on lots of functions down to main(), but 
 no sources and lines. maybe i forgot something.
http://mono-d.alexanderbothe.com/big-question-to-you-do-gdblldb-work-for-you-on-osx/ Woohoo, it's not my fault :-D
Jan 17 2014
prev sibling parent "evilrat" <evilrat666 gmail.com> writes:
On Tuesday, 14 January 2014 at 14:12:54 UTC, Alexander Bothe 
wrote:
 Could you locate the binary libphobos file, open it e.g. with 
 SciTE and look for some mangled string that contains 
 'finddata', such as
 _D2rt15deh_win64_posix13__eh_finddataFPvZPyS2rt15deh_win64_posix9FuncTable

 - something like this is required to have proper exception 
 hooking :)
it's in there
Jan 14 2014
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2014-01-13 12:03, Alexander Bothe wrote:

 I've got no OSX but erm, what tool is required to have lldb information
 generated? ldc2?
 On the other side, which tool is then required to get gdb debug info?
With DMD I get the line numbers in a backtrace, both in gdb and lldb. I compiled with -g. You won't get any demangling with lldb or gdb supplied by Apple. -- /Jacob Carlborg
Jan 13 2014
prev sibling parent "Alexander Bothe" <info alexanderbothe.com> writes:
On Monday, 13 January 2014 at 05:25:31 UTC, evilrat wrote:
 p.s. also, why at first launch it can't just fetch default 
 phobos
 location for DMD? it's quite annoying adding this paths in
 settings and it may revolve unaware users from using it(like it
 was for me about year ago).
Okay, implemented it in v1.3
Jan 13 2014