js' blog

glibc-Rant & libobjfw
Created: 14.02.2009 18:19 UTC

So, ich muß mich jetzt einfach nochmal über glibc auslassen. Dieses Ding ist echt sowas von abnormal kaputt! Nachdem ich jetzt so lange dransaß, daß libobjfw auch mit glibc rennt, indem ich alle möglichen Reihenfolgen der #imports durchprobiert hatte, darf ich jetzt feststellen, daß das unter gewissen Umständen immer noch failed. Ergo habe ich jetzt alle Header der libc über #include statt über #import drin.

Klar, es läuft jetzt. Aber trotzdem: Was soll der Sch***? Warum darf ich stdarg.h nicht als 2. importen, sondern muß es zwangsweise immer als erstes, aber wenn ich stattdessen #include nehme gehts? Warum darf ich nicht in einem File wchar.h und string.h importen, sondern immer nur eins von beidem pro File? Wie kann man bitte so kaputte Header schreiben? Warum bitte schreiben die Header, die unter so vielen Umständen einfach nur die Hälfte definieren oder sogar Syntax-Error erzeugen? Und das ist ja nun wirklich nicht das einzige in glibc, das einfach nur extremst kaputt ist. Warum bitte ist das auch heute noch die Standard-libc unter Linux? Es gibt so viele bessere libcs (eigentlich so gut wie jede), aber dieser Crap muß der Standard unter Linux sein? Da bekommt nan echt Lust, den glibc-Support in all seinen Projekten einfach zu droppen - es gibt ja massig brauchbare Alternativen und wenn das genug tun, ändert sich vielleicht auch mal was dran, daß glibc unter Linux der Standard ist. Das wäre eine Win-Win-Situation für alle, wenn glibc nicht mehr der Standard wäre und immer mehr Projekte den Support dafür droppen. Dann braucht man auch keine eigene Implementation von strl* mehr mitbringen, nur, weil Drepper zu blöd für Strings ist. Denn selbst der Linux-Kernel hat strl* drin.

In libobjfw habe ich jetzt übrigens mal das OFComparable-Protokoll eingeführt. Damit kann man Objekte mittels isEqual: und compare: vergleichen - das braucht man z.B. zum Sortieren oder wenn man die Objekte in eine Hashtable packen möchte. Im Moment gibt es zwar noch keine Hashtables, aber die kommen bald ;). Eine gute Hash-Funktion habe ich auch schon. OFNumbers braucht auch noch ein isEqual: und compare:, allerdings ist das dort aufgrund der vielen Integer-Typen richtig Arbeit. Muß ich mich daher noch zu überwinden, das mal in Angriff zu nehmen ;).