-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of William Gallafent Sent: 14 July 2015 11:10 To: boost@lists.boost.org Subject: Re: [boost] Boost.DLL formal review is ongoing
On 13 July 2015 at 21:24, Antony Polukhin
wrote: I was trying to keep namings platform neutral: "dynamic library" is too Windows specific, "shared object" is too POSIX specific... Let it bee DLL for library abbreviation and "shared object" mostly in docs and source codes.
On Mac OS, the files in question are generally named “libSomething.dylib”, whereas on Windows the equivalent file would be “something.dll”. That seems to directly contradict your assertion that “dynamic library” is more Windows-specific, since “dylib” looks more like a contraction of that phrase than “dll” to me.
More generally, and fwiw, in my mind I connect “DLL” very tightly to Windows, to the extent that if somebody says “DLL” I think “we're talking about something which is exclusively related to Windows”. I tend to use instead the term “shared library” when referring to these files in a platform-neutral way (in other words, when I say “shared library” I mean .dll on Windows, .dylib on Mac OS, and .so on Linux, for example). In that way (none of these platforms uses a contraction of “shared library” as its way of visually identifying these files in the filesystem) I try to separate cross-platform discussion from platform-specific discussion. To me, “shared object” feels, as you say, very POSIX-specific.
By way of comparison, the “file” utility on this Mac OS machine returns, for example, “/opt/local/lib/libgtk-3.0.dylib: Mach-O 64-bit dynamically linked shared library x86_64”. A similar example on Ubuntu Linux: “/lib/libfuse.so.2.8.6: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x8776ddf840d71df11e0f99388074338a4dbc05c7, stripped”. Finally, on Windows I see of course “/cygdrive/c/Windows/System32/ntdll.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows”.
There is in fact no /shared/ nomenclature between all three at all there (because DLLs /are/ executables on Windows!). Something which has the right connotations but which isn't the terminology returned by that utility, or used as a filesystem contraction, for any specific platform seems ideal.
Of course - but Bill clearly demonstrates that there is no perfect answer to this. Any new 'portable' term would just confuse everyone! But DLL is short and sweet, and a glance at the documentation will reveal that the library is *not* Windows specific. Perhaps it stands for Dynamic Linked-things Loader? Paul --- Paul A. Bristow Prizet Farmhouse Kendal UK LA8 8AB +44 (0) 1539 561830
Apologies for the fact that my comments are purely in the area of nomenclature!
Ditto.