On Sun, 23 Nov 2003 at 21:00 (+0100), Thomas Hertweck wrote:
Bernhard Walle schrieb:
[...] Es kommt auf die Dokumentation an. Wenn dokumentiert ist, dass HZ eine Konstante ist, dann kann man davon ausgehen. Wenn nicht, dann ist es ein Implementierungsdetail auf das man sich nicht verlassen kann genauso wenig wie man sich darauf verlassen kann, dass unter Linux 'char' signed ist, auch wenn es derzeit so ist und wohl auch bleiben wird. Laut Spezifikation von C oder C++ [1] ist darüber nichts ausgesagt. Jeder Code, der davon ausgeht ist zum Scheitern verurteilt.
Etwas anderes ist es, wenn eine Schnittstelle geaendert wird. Wenn eine Bibliothek z.B. eine Funktion bla(int a, int b) hat und nun eine Person daher kommt und das in bla(const int a, const int b) ab- aendert, so ist es nicht verwunderlich, dass es evtl. zu Compilier- problemen kommt.
Wobei man hier zwischen öffentlichen und privaten Schnittstellen unterscheiden muss. Diese Unterscheidung muss nicht durch Sprachmittel wie in C++ und Java möglich geschehen sondern dies kann auch durch textuelle Beschreibung in der Dokumentation erfolgen. Und da es beim Kernel allgemein an Dokumentation mangelt und man anscheinend oftmals seine Information nicht aufgrund der Dokumentation sondern aufgrund von Quellcodeinsicht gewinnt kann dies der wahre Auslöser des Problems sein.
Was genau im Falle von HZ beim SuSE-Kernel passiert ist, weiss ich nicht.
Ich auch nicht. Deshalb ja der zweite Satz. Gruß, Bernhard -- Es ist nicht schwer, Menschen zu finden, die mit 60 Jahren zehnmal so reich sind, als sie es mit 20 waren. Aber nicht einer von ihnen behauptet, er sei zehnmal so glücklich. -- George Bernard Shaw