Lost a new commercial user this week :(
Sönke Ludwig via Digitalmars-d
digitalmars-d at puremagic.com
Sun Dec 14 07:03:28 PST 2014
I agree about the general debugging experience on Windows. It's
improving (at least with Mago), but still not where it should be.
Partially this would be easy to remedy, such as in case of omitted stack
frames in Phobos, as mentioned in Vladimir's recent thread that I just
skimmed through.
Just quickly commenting on the vibe.d specific issues. If you have filed
any recent bug reports and I didn't respond, this is because I way
barely able to work on a computer at all during the past weeks. I'll try
to start catching up a little bit now.
Am 14.12.2014 09:37, schrieb Manu via Digitalmars-d:
> We were trying to use vibe.d, and we encountered bugs.
>
> We were unable to build Win64 code (vibe.d doesn't support Win64 it
> seems), and the 32bit compiler produces useless OMF output. We
> couldn't link against any of our existing code which was a serious
> inconvenience, but they were understanding and we worked around it.
It does, either by using the "win32" configuration instead of
"libevent", or by manually providing a pre-compiled version of libevent
for Win64 (I'd be happy to accept a PR, too). I didn't build it for a
while though, so it may be that something is broken.
>
> The real trouble hit when vibe.d's WebSocket support didn't work as
> advertised; it crashed in various circumstances, and debugging was
> impossible.
> vibe.d uses exceptions everywhere, which caused an office full of
> C/C++ programmers to explode with terror, and Visual Studio completely
> craps itself when there are exceptions being thrown.
If you set a breakpoint at __dthrow_c, at least you get a proper call
stack. It still doesn't enable accessing the exception internals, but
usually those are less important.
Regarding exceptions themselves, it looks like the mindset of those C++
programmers is quite fixed, not the best premise for embracing D (but
yeah, changing this usually requires some time/effort). Coming from a C
and C++ without exceptions/RTTI background myself, I understand very
well where that reaction comes from. However, IMO exceptions as a
mechanism are very well suited for server environments especially
because they cannot be (accidentally) ignored, and they often help a lot
to make the code more readable. In a language that has them as a
mandatory feature and uses them extensively in its standard library, I
simply saw no reason to carry the no-exception rule over to D.
Of course they must be used accordingly (only for exceptional
situations) and the debugger has to properly support them to make the
debugging experience bearable. Having said that, a call stack + error
message dumped to stderr is usually all that is needed, so the last
point is more of a convenience factor when running from within VS.
Lastly, when judging all these things, please always try to remember
that almost all the work that goes into D (and vibe.d) is non-profit and
everyone usually only contributes what (s)he is missing. If I would get
payed through a support contract for my work on vibe.d, I could adjust
my priorities to suit the requirements of others more, but like this I
still have to somehow make sure to be able to pay my bills and can't
just work full time to help other (commercial) projects (although I
always try to help as far as possible).
Sönke
More information about the Digitalmars-d
mailing list