On Saturday, 9 December 2017 at 00:32:36 UTC, Timothee Cour wrote:
They are on LDC; would be interesting to see whether the problem occurs there as well (I'm having issues with my Mac right now, so can't check myself until later).

just updated bug report: same issue with ldc!

Only if not linking against the shared runtime libraries, which is always required to get shared library support in LDC. (We should probably figure out a way to warn about this.)

a lot of things work with shared libraries on OSX, it would be great if this worked too. It's not because shared libraries are not 100% fully officially supported that we should ignore this issue. Certain use cases are impossible without using shared libraries.

Solution: Use LDC and be happy. ;)

As far as partial support goes, you can't really build parts of a house without pouring the foundation first. Unit test support is one of the "upper storey" language niceties without too many cross-dependencies, but it builds on the underlying runtime machinery. Are you sure your program can work sensibly when the GC starts collecting random live objects? Or thread-local storage doesn't work from shared libraries? When module constructors aren't run? Do your tests comprehensively detect any sporadic issues with these?

If you find any dylib-related bugs in LDC, it will be easily possible to fix them, since all the groundwork is in place. But you can't expect to paper over a hole in the floor and then continue to build on top of that; that is to just hack unit test support into DMD in a sensible fashion without supporting the rest of it.

(Feel free to just port "my" LDC/macOS implementation to DMD, though; the hardest work has already been done, especially given Jacob's (?) recent work on native TLS for DMD.)

 —David

Reply via email to