2010/2/22 Jon Cruz <jon@...18...>:
That proposed "fix" on the wiki really appears to be a work-around.
I do not agree with your definition of "fix" and "workaround". For me: Fix: something that removes the issue. Workaround: something that doesn't fix the issue but allows the program to function correctly.
Given those definitions, adding ifdefs to use some different hash implementation is a workaround, while the user replacing his broken header with a working one is a fix.
More important is that we should only use an optimized data structure when required.
What is the difference between a normal data structure and "optimized" data structure? In my book, the standard hash set and hash map are normal data structures. Are you suggesting we should use structures that do not correctly represent the semantics of data (e.g. storing set elements in a vector) because it is somehow simpler, or that using the correct structure is premature optimization?
More important is that we should only use an optimized data structure when required. This includes measuring performance before and after the switch.
I replied to this before. I don't need any justification for using the theoretically optimal structure, but you do need benchmark data to demonstrate that some other theoretically suboptimal structure is better in practice.
But the *KEY* is that forcing an end user to patch their system is FAR UGLIER!!!
If the system is obviously broken, I don't see how it's ugly for the user to fix it. Apple's toolchain is not a sacred cow. Fixing the bug at its source is trivial (overwrite 1 file), and somebody who succeeded installing all the required Macports libraries that are required to build Inkscape will be perfectly capable of doing it. Please do not introduce useless cruft to fix a bug that is already fixed where it should be (GCC).
Regards, Krzysztof