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?

Reply via email to