Error after installing DMD v2.063

Jonathan M Davis jmdavisProg at gmx.com
Mon Jun 3 17:25:44 PDT 2013


On Monday, June 03, 2013 11:42:53 Jacob Carlborg wrote:
> On 2013-06-03 10:34, Jonathan M Davis wrote:
> > Well, part of the problem is that the zip is inherently broken for *nix
> > systems due to the fact that symlinks don't work properly. So, now that we
> > have an so version of Phobos, the zip just isn't going to work properly
> > anymore. And while we aren't really looking to break DVM, AFAIK, there
> > would be no other reason to keep the zip around other than for DVM. And
> > since the zip isn't going to work properly on *nix systems anyway, I'm
> > not sure that keeping it around for DVM really solves much.
> 
> *nix is really not correct to say. Currently only Linux 64bit supports
> shared libraries. It's not like it's broken on all platforms, just one.
> Sure, it will break once we get support for share libraries on
> additional platforms.
> 
> If static linking is default nothing is broken.

By default sure, but people can now use Phobos as a shared library if they so 
choose, and at some point, it will probably change to be the default. And the 
symlinks _are_ broken thanks to zip. And the problems will only get worse as 
we add more platforms. There's really no reason to stick with zip files other 
than avoiding breaking something like DVM, and the zip files are inherently 
broken at this point anyway. And that breakage will only get worse as we add 
more shared library support.

> Which format can we use for these platform specific packages?

We'd probably use tar.gz or tar.bz2, which are incredibly standard. Mac OS X 
might want something different (I don't use it, so I don't know), but it's 
based on the BSDs, so it probably uses tar.gz like the rest (I'm sure that it 
at least supports it). zip is too Windows-specific.

> For which of these are there existing bindings or libraries?

I'm sure that there are C bindings for tar and gz, but I've never used them, 
and worst case, it's trivial to use std.process.system to decompress the 
package.

- Jonathan M Davis


More information about the Digitalmars-d mailing list