<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 6 February 2014 20:21,  <span dir="ltr"><<a href="mailto:"Ola Fosheim Grøstad\" <ola.fosheim.grostad+dlang@gmail.com>"@puremagic.com" target="_blank">"Ola Fosheim Grøstad\" <ola.fosheim.grostad+dlang@gmail.com>"@puremagic.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Thursday, 6 February 2014 at 09:27:19 UTC, Paulo Pinto wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So what do you do when different libraries require different runtimes?<br>
</blockquote>
<br></div>
I guess a given compiler could have a "cross compiler option" that generates libraries for all the available runtimes the compiler supports?<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To be more specific to my previous comment. Objective-C GC required special compilation flags and care needed to be taken in GC enabled code, like in C GCs.<br>
</blockquote>
<br></div>
I understand. I am not sure if having multiple flags that creates a combinatorial explosion would be a good idea. I think you should have a set of invidual runtimes targeting typical scenarios, supporting different sets of functionality. (embedded, kernel, multimedia, server, batch, hpc…)<br>

<br>
However, I think it would only work for the same compiler, because you really don't want to prevent innovation…<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So no distinct runtimes were required as the generated code is no different than an Objective-C developer would have written by hand.<br>
</blockquote>
<br></div>
You might be able to design the runtime/object code in such a way that you get link errors.<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In any case there isn't a standard C++ ABI defined. Well, there are a few, but vendors don't use them.<br>
</blockquote>
<br></div>
Yeah, well I am not personally bothered by it. The only time I consider using binary-only libraries is for graphics and OS level stuff that is heavily used by others so that it is both well tested and workaround is available on the net. (OpenGL, Direct-X, Cocoa etc)<br>

<br>
Not having the source code to a library is rather risky in terms of having to work around bugs by trail and error, without even knowing what the bug actually is.<br>
<br>
Thankfully, most useful libraries are open source.<br>
</blockquote></div><br></div><div class="gmail_extra">Some that I regularly encounter: system libs, opengl, directx, fmod, physics (havok, phyzx, etc), animation (euphoria, natural motion), bink, lip-sync libraries, proprietary engine libraries, art-package integration libraries (3ds max, maya, photoshop), fbx, and many, many more.</div>
<div class="gmail_extra">Yes these are C libs, but the idea that people don't regularly use proprietary libs is fantasy.</div></div>