And as I noted on my post, Windows is not alone in this regard.

Many other OS follow the same explicit export principle, AIX
being one of them.

Linux != UNIX

--
Paulo

On Wednesday, 11 April 2012 at 11:29:53 UTC, Manu wrote:
On 11 April 2012 13:50, Jonathan M Davis <[email protected]> wrote:

On Wednesday, April 11, 2012 11:56:00 deadalnix wrote:
> Le 10/04/2012 19:44, Jonathan M Davis a écrit :
> > On Tuesday, April 10, 2012 19:36:06 deadalnix wrote:
> >> On this newsgroup with Jonathan M Davis, we started > >> discussing export. > >> As it was off topic, and as it was interesting, I wish to > >> bring it
here.
> >>
> >> As most of you know, all symbol on posix systems are > >> export, but not
on
> >> windows. As D have an export keyword, the question is > >> what to do with
it.
> >>
> >> The need for change in the UNIX world of this behavior > >> exists, and
some
> >> move has been made in direction of explicitly hiding > >> symbols ( see
> >> http://gcc.gnu.org/wiki/Visibility ).
> >
> > As I said in the other thread, I _hate_ export. It's one > > of Windows
> > largest
> > misfeatures IMHO. It drives me nuts when I have to deal > > with it in C++.
> > The
> > fact that Linux exports everything is _fantastic_. It's so > > much easier
to
> > deal with. I'd _hate_ to see Linux or anything we do move > > in the
> > direction of what Windows has done.
> >
> > - Jonathan M Davis
>
> It isn't a misfeature. The link explain why it is > interesting :
>   - It improves load time of DSO.
>   - Allow more optimizations.
> - Reduce DSO size by 5% to 20% for C++. Considering how > long mangling
> are in D, probably more for us.
> - Reduce name collision (this one poorly apply to D, > because the
> module system handle that quite nicely).
>
> Additionally, it allow automatic finalization for non > exported methods
in D.
>
> The drawback is having to explicitely export. I think it > worth it, > especially considering « export: » is an available > solution. A compiler
> switch is also an option.
>
> BTW, Linux is moving in that direction, for the advantages > given above.
> Some other posix systems also does that already.

Honestly, I don't care what list of benefits you can come up with for
having to
explicitly export symbols. I am sick and tired of having to deal with build breakages due to unexported symbols in C++ on Windows. It is really,
reallly,
really annoying. It's a usability nightmare as far as I'm concerned, and I don't want to see it spread any more than I want to see cancer spread.

As far as I'm concerned, Linux got this _right_ and Windows got it
completely
wrong, and I do _not_ want to see export being used in D any further than
it
is. It's bad enough that the export keyword exists at all.


Apply the same rules to Linux, and it'll never bother you again. It's the only solution, you can't possibly influence Microsoft to apply the inverse. As far as I'm concerned windows got it _right_ and linux got it... 'linux'. I like DLL's being self contained modules with tightly controlled
interfaces. And deadalnix lists important points.


Reply via email to