Igor Kovalenko <kovalenko@attbi.com> wrote:
However Armin has one point, even while having problematic code. The track
record of QNX on compatibility between even minor versions has been less
than spotless.
I agree that the release notes from QSS are often lacking the level of detail
that I expect, especially in this regard. I don’t think that is the real
issue that you are raising though.
If any change in QNX makes a previously working code (library call) to fail,
for users that’s a failure of the library call.
I would normally agree with you, but in this case you are wrong. Armin is
using a library call incorrectly, the documentation says it will not work
with address ranged >4G, and Armin assumed that the MMU would never generate
an address above that on a system with less than that memory. THAT is not
a valid assumption.
What happened to Armin is simple, he used an library function wrong, and he
got lucky that on previous versions of QNX6, the library function was
technically “broken” in that it never returned values >4G. It’s fixed and
now it does. The result is that Armin’s broken code no longer works, and
his luck has run out.
This is NO DIFFERENT than writing code that uses shared memory but without
properly using semaphores. It will typically run perfectly fine on a single
processor machine, and then crap out on an SMP machine. It’s NOT the SMP
machine that is broken, it’s the code. This is no different.
I DO NOT expect QSS to document all the case where “improper code would
work prior to us fixing this bug”. Sure, they changed/improved the functionality
and I expect them to document that… but not the fact that BAD CODE used to
work as a SIDE EFFECT of the previous buggy behavior of that library function.
If they had to document all the instances where a bug of theirs would allow
a programmer to “get away with” bad code, and then document again when they
fixed (and therfore broke the bad code) function… that’s lunacy.
Armin is being stubborn, and foolish. He has so far had it pointed out to
him that he has made TWO mistakes in his code:
- assumed that an error result code would be NULL, when in fact it is not.
- assumed that result values would remain <4G
Instead of being polite, and thanking the individuals that tried to help
him (despite his rude and stubborn behaviour and refusal to admit he made
a coding error), he has only berated those that tried to help him…
That is just stupid, rude, etc.
So lets be blunt: Armin stop being a dick.
Cheers,
Camz.
\
Martin Zimmerman camz@passageway.com
Camz Software Enterprises www.passageway.com/camz/qnx/
QNX Programming & Consulting www.qnxzone.com