Nächste Seite: Das Laufzeitsystem LArts
Aufwärts: Der Library-Linker (M2LibLink)
Vorherige Seite: Resources
Der Library-Linker erzeugt nach der Option ,,+m`` automatisch
aus dem Definitionsmodul ein Schnittstellen-Modul. Der Name
des erzeugten Moduls ist der Modulname ohne die spezielle Endung.
Aus ,,MyTestLib`` wird also ,,MyTest``, die Datei wird als
txt/MyTest.def angelegt.
M2LibLink geht hierbei wie folgt vor:
- Für Libraries wird ein Library-Kopf erzeugt, z.B.
DEFINITION MODULE MyTest{"mytest.library",33};
Für Devices und Resources erstellt der Library-Linker ein implementationsloses
Modul, z.B.
(*$ Implementation:=FALSE *)
DEFINITION MODULE MyTest;
- Es wird die Deklaration einer Zeichenkettenkonstanten eingefügt,
die den Namen des Objektes angibt.
- Die Definitionen der Pflichtprozeduren werden gelöscht.
- An alle anderen Prozeduren wird eine CODE-Anweisung angefügt.
Die Offsets vermindern sich dabei fortlaufend um 6, deshalb ist es
sehr wichtig, dass die Pflichtprozeduren ganz am Anfang und in
der richtigen Reihenfolge stehen.
- Der Modulname am Schluss wird geändert.
Nach dieser automatischen Bearbeitung sollte das Schnittstellen-Modul
sofort übersetzbar sein. Es kann jedoch zunächst nachbearbeitet
werden, um z.B. nicht-öffentliche Deklarationen zu löschen,
die Prozeduren alphabetisch zu sortieren oder den in Abschnitt
4.5.7 beschriebenen ,,Trick`` mit den Register-Parametern
anzuwenden.
Claudio Nieder
2000-11-12