> Are the changes for FLAC/ordinals.h really necessary? Yhe FLAC/*.h > header files specify libFLAC's public API. In a previous thread on > this mailing list back in February we decided that for compilers > that didn't supply <stdint.h> the developer should supply something > suitable. Here's the commit:Yes, they are necessary. Here is the rationale 1) FLAC/ordinals.h is a public header file, so replacing this file with an MSVC-compatible version is not only the responsibility of a developer building libFLAC, but also a developer using libFLAC. 2) Mistakes made by a developer supplying a custom implementation of FLAC/ordinals.h and trying to link against a pre-built libFLAC.dll can lead to ABI incompatibility. 3) I understand requiring developers to provide an implementation for lesser-used niche compilers and development environments, such as embedded systems, but Visual Studio 2008 and prior represent a huge portion of developers. -Ben Allison
Ben Allison wrote:> Yes, they are necessary. Here is the rationale > > 1) FLAC/ordinals.h is a public header file, so replacing this file with an > MSVC-compatible version is not only the responsibility of a developer > building libFLAC, but also a developer using libFLAC.I was aware of that.> 2) Mistakes made by a developer supplying a custom implementation of > FLAC/ordinals.hThe comments in that file specifically pointed to two known good BSD licensed stdint.h implementations.> and trying to link against a pre-built libFLAC.dll can > lead to ABI incompatibility.That can happen any time people use a prebuilt binary produced by a different compiler.> but Visual Studio 2008 and prior represent a huge portion of > developers.I find it difficult to believe that developers sophisticated enough to actually use the FLAC API, are not smart enough to read the comments above the <stdint.h> include and grab one of the linked implementations. Anyway, regardless of all that, I have relented and included an MSVC < 2010 section in that file with the logic switched around a bit and some comments. I would like to know how many years I have to wait before we can ditch this stuff. I intend to do some testing on platforms I have available today and roll a second pre-release after my testing. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
On 09-03-13 01:01, Erik de Castro Lopo wrote:> I would like to know how many years I have to wait before we can ditch > this stuff. I intend to do some testing on platforms I have available > today and roll a second pre-release after my testing.Talking about ditching, there are still .dsp files in the repository, these are MSVC 6 files. I haven't seen anyone on the list testing the source with that version (MSVC 2005 was the first version to have a free express version so this one hasn't) so these are probably broken as well. MSVC 6 was released in 1998 and was succeeded by MSVC .NET in 2002, so maybe these files (all.dsp, all_static.dsp, all_dynamic.dsp and flac.dsw if I'm correct) should be removed from the repository? Someone spotting them might think MSVC 6 is still supported.
Reasonably Related Threads
- Updated MSVC patch
- [LLVMdev] Using C++'11 language features in LLVM itself
- [LLVMdev] [cfe-dev] RFC: A proposal to move toward using C++11 features in LLVM & Clang / bounding support for old host compilers
- Vorbis Beta 2 MSVC Files
- MSVS: debug flac.exe uses release libogg_static.lib