{"push_id":727980917,"size":2,"distinct_size":2,"ref":"refs/heads/vulcan/2590","head":"ed97f715dc263d6e47d1a0effb4493a5ea1f0d65","before":"9a78dea1fbf3d983cb111f303847516fedadf9a1","commits":[{"sha":"1479e2cff707f41ff4d70a0bf4c90456b78a2266","author":{"email":"c39cdf47ebd3805046046e3cf5e8a60cea038498@livecode.com","name":"Peter TB Brett"},"message":"libfoundation: Add new MC_DLLEXPORT_DEF macro.\n\nThe `used` attribute is needed for Emscripten builds to ensure that\nnative functions accessed by name via dlsym() and/or from JavaScript\nkeep their names and are not removed even when aggressive optimisation\nis used.\n\n`used` can only be attached to definitions, so it cannot be added to\n`MC_DLLEXPORT`, because that is attached to declarations.  It is also\nnot possible to move `MC_DLLEXPORT` from declarations to definitions,\nbecause on Windows, the `dllexport` attribute must be attached to\ndeclarations (it changes the storage type of the symbol to which it is\nattached).\n\nThis patch therefore adds a new `MC_DLLEXPORT_DEF` macro that must be\nattached to the definitions of exported functions or variables, while\n`MC_DLLEXPORT` is reserved for advance declarations (e.g. in header\nfiles).\n\nAll symbols that are declared `MC_DLLEXPORT` are now defined with\n`MC_DLLEXPORT_DEF`, and all uses of `MC_DLLEXPORT` on definitions are\nreplaced with `MC_DLLEXPORT_DEF`.","distinct":true,"url":"https://api.github.com/repos/runrev/livecode/commits/1479e2cff707f41ff4d70a0bf4c90456b78a2266"},{"sha":"ed97f715dc263d6e47d1a0effb4493a5ea1f0d65","author":{"email":"966032eab6276624119a49080934e3936d2976f7@livecode.com","name":"LiveCode Build System"},"message":"Auto-merge pull request #2590 from peter-b/export-defs-2\n\nlibfoundation: Add new MC_DLLEXPORT_DEF macro.\n\nThe `used` attribute is needed for Emscripten builds to ensure that\r\nnative functions accessed by name via dlsym() and/or from JavaScript\r\nkeep their names and are not removed even when aggressive optimisation\r\nis used.\r\n\r\n`used` can only be attached to definitions, so it cannot be added to\r\n`MC_DLLEXPORT`, because that is attached to declarations.  It is also\r\nnot possible to move `MC_DLLEXPORT` from declarations to definitions,\r\nbecause on Windows, the `dllexport` attribute must be attached to\r\ndeclarations (it changes the storage type of the symbol to which it is\r\nattached).\r\n\r\nThis patch therefore adds a new `MC_DLLEXPORT_DEF` macro that must be\r\nattached to the definitions of exported functions or variables, while\r\n`MC_DLLEXPORT` is reserved for advance declarations (e.g. in header\r\nfiles).\r\n\r\nAll symbols that are declared `MC_DLLEXPORT` are now defined with\r\n`MC_DLLEXPORT_DEF`, and all uses of `MC_DLLEXPORT` on definitions are\r\nreplaced with `MC_DLLEXPORT_DEF`.\r\n\r\nSupercedes #2579.","distinct":true,"url":"https://api.github.com/repos/runrev/livecode/commits/ed97f715dc263d6e47d1a0effb4493a5ea1f0d65"}]}