Sorry about the nonsensical reply, the web interface was acting
up... this is the intended reply.
On Sunday, 1 September 2013 at 02:05:51 UTC, Manu wrote:
The only compiler you can realistically use productively in
windows is
DMD-Win64, and that doesn't work out of the box.
Why didn't you go with DMD-Win32? Because of OMF? implib and/or
objconv is a hassle but probably less of a hassle than using the
nascent DMD-Win64.
Overwhelmingly, the biggest complaint was a lack of symbolic
information to
assist with auto-completion. Visual-D tries valiantly, but it
falls quite
short of the mark.
This goes back to the threads where the IDE guys are writing
their own
parsers, when really, DMD should be able to be built as a lib,
with an API
designed for using DMD as a lib/plugin.
Although I'm not convinced auto-completion is a vital feature
(Microsoft's C++ IntelliSense is shit too), I agree that any time
spent on custom parsers and best-effort semantic analysis is a
complete waste of time. The only semantic analysis engine that is
going to be sufficiently good for D is one from a compiler
front-end. Apart from DMD, it's worth taking a look at SDC for
this.
some windows dev's want a CHM that looks like
the typical Microsoft doc's people are used to. Those that
aren't familiar
with the CHM viewer; it's just HTML but with a nice index +
layout tree.
dmd2\windows\bin\d.chm
The question came up multiple times; "I don't think this should
be an
array... what containers can I use, and where are they?"...
Also, nobody could work out how to remove an arbitrary item
from an array,
or an item from an AA by reference/value (only by key).
This code:
foreach(i, item; array)
if(item == itemToRemove)
array = array[0..i] ~ array[i+1..$];
Got a rather 'negative' reaction from the audience to put it
lightly...
`std.algorithm.remove` provides both stable (preserves order,
shuffles entire array down) and unstable (swaps with last element
and shrinks by one) removal. However, Phobos does not make a
habit of providing helpers for strictly O(n) algorithms, so the
O(n) nature has to be made explicit by first getting the index
with `std.algorithm.countUntil`.
Removing a pair from an AA by value is also an exercise in linear
search, and as such will not get a deceptive helper function.
However, once range interfaces for AAs mature, such an algorithm
can be composed trivially.
Yes, we hit DMD bugs, like the one with opaque structs which
required
extensive work-arounds.
struct MyStruct;
MyStruct*[] = new MyStruct*[n];
I'm not sure this is a bug. How do you default initialize an
array of structs you don't know the .init values of?