10.01.2013 18:17, Max Kellermann пишет:
>> If new functions would be implemented as static+inline wouldn't it
>> break the ABI for already compiled programs? Because such functions
>> exist only at compilation stage and are not present in the compiled
>> .DLL
>
> True, this is where it gets hairy.  There must be three versions of
> mpd_async_new():
>
> - the new symbol "mpd_async_new_SOCKET" with "SOCKET" parameter (shall
>    never be explicitly called by applications, part of the ABI but not
>    the API)
>
> - the inline function "mpd_async_new" with "SOCKET" which calls
>    mpd_async_new_SOCKET (this being the only caller of
>    mpd_async_new_SOCKET)
>
> - the old symbol "mpd_async_new" with "int" which also calls
>    mpd_async_new_SOCKET (after casting to SOCKET) - to satisfy the old
>    ABI

Good, this would require some preprocessor hardcore but looks doable.
GLib sources seem to have lots of such hacks I'll consider them as an 
example.

Could the suffix be something like _win32_socket instead of _SOCKET 
which is ugly and anyway does not clarify what it's for?

-- 
Denis

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to