Für ein Release mit großem Trara reicht es zwar noch nicht, doch möchte ich heute dennoch meine neueste Kreation vorstellen: Objective-CL, eine portable Objective-C-Brücke für Common Lisp. Sie ermöglicht es dem Anwender, Objective-C-Instanzen zu erzeugen und diesen sowie ihren Klassen Nachrichten zu schicken. Eine Möglichkeit, eigene Objective-C-Klassen von Lisp aus zu definieren, ist fest geplant, kann aber noch eine Weile auf sich warten lassen.
Das nicht mehr gerade brandaktuelle Referenzhandbuch, das bookzumarken womöglich noch keine gute Idee ist, weil sich die Adresse jederzeit ändern kann, sollte für die geschwinde Verwendung der aktuellen Version ausreichen.
Die Hauptentwicklungsplattform ist SBCL/x86 unter Debian GNU/Linux. Die Objective-C-Runtime, für die Objective-CL öfter ausgiebiger getestet wird, ist daher naheliegenderweise die GNU-Runtime zusammen mit den GNUstep-Foundation-Klassen. Ich versuche jedoch, die Bridge auch regelmäßig mit der Apple-Runtime unter Mac OS X zu testen, und werde das wohl stets tun, bevor ich meine Änderungen der Öffentlichkeit zugänglich mache. (Gebt mir einfach einen Schubser, wenn ich es mal vergessen sollte.)
Der Code ist zurzeit ausschließlich in einem Darcs-Repository zu finden:
darcs get http://matthias.benkard.de/code/objective-cl
Ich möchte darauf hinweisen, daß es sich hierbei um ausgesprochen unvollständige, wahrscheinlich von Fehlern durchsetzte Vorschausoftware handelt. Wie üblich gebe ich keine Garantie für das Funktionieren des Codes, auch nicht dafür, daß er Computern und Daten keinen Schaden zufügt. Patches werden gern entgegengenommen, und wenn mir jemand mit Objective-C-bezogenem Wissen dienen kann, wird er sicherlich ebenfalls in den CREDITS
Erwähnung finden werden. (Wer mir verständlich erklären kann, wie Metaklassen in Objective-C funktionieren, was genau ihre Aufgabe ist und wie sie erzeugt und verwendet werden, der hat diesbezüglich momentan bereits gute Karten.)
Wie dem auch sei. Ich wünsche viel Spaß mit meinem Code!
Comments
Submit a comment
Note: This website uses a JavaScript-based spam prevention system. Please enable JavaScript in your browser to post comments. Comment format is plain text. Use blank lines to separate paragraphs.