Object-Cache fr H„nisch-Modula =============================== ½ 1989, Andreas Alich Rittergasse 4 8700 Wrzburg KontoNr. 5102900 St„dtische Sparkasse Wrzburg BLZ 790 500 00 EMail: Maus Wrzburg, 0931/201 39 25 Dieses Programm ist Public-Domain. Es darf zu nicht kommerziellen Zwecken frei kopiert und weitergegeben werden, jedoch nur in unver„nderter Form und zusammen mit diesem Text. Sollte jemand dieses Programm ntzlich finden und fr wertvoll halten, so freue ich mich trotzdem ber Spenden ('Kleinvieh macht auch Mist!'). Zweck: Das Programm puffert die Object-Files, auf die nur lesend zugegriffen wird, und auf Wunsch auch die Ausgabe (besonders beim Linken vorteilhaft). Dadurch wird der Compilierungs- und Linkvorgang bei H„nisch-Modula erheblich beschleunigt. Besonders praktisch ist der Cache in der Entwicklungsphase eines Moduls, solange sich noch Syntax-Fehler im Quellcode befinden, da ab dem zweiten Compilieren nicht mehr auf die Festplatte (bzw. Diskette) zugegriffen wird, sofern der Puffer grož genug ist. Das Programm wurde fr Festplatte entwickelt, kann aber auch als teilweiser Ersatz fr eine Ramdisk dienen. Objects, an denen man nicht arbeitet, sollten dann auf Diskette zur Verfgung gestellt werden, die anderen Files sollten sich auf der Ramdisk befinden. Der Object-Cache hat gegenber einer Ramdisk den Vorteil, daž er nur die ben”tigten Files puffert. Sollte der Puffer nicht ausreichen, so kann trotzdem weitergearbeitet werden (wenn auch langsamer). Der Write-Cache drfte beim Arbeiten mit Ramdisk keinen Geschwindigkeitsvorteil bringen. Zu beachten ist beim Arbeiten mit Disketten, daž das Wechseln der Diskette die gepufferten Files nicht ungltig macht. Installation: Um den Object-Cache zu installieren, gibt man dem Compiler zun„chst eine neue Extension (z. B. .OC). Dann meldet man OC.PRG als Anwendung fr diese Extension an. (Im Desktop OC.PRG selektieren und im EXTRAS-Men 'Anwendung anmelden' w„hlen. Abspeichern des DESKTOP.INF nicht vergessen!). Der Compiler l„žt sich danach wie gewohnt durch Doppelklick auf seinen Namen starten. Dabei wird nun zun„chst OC.PRG gestartet und dann der Compiler. Einstellen der Parameter: Wird beim Starten von OC.PRG eine der Tasten Shift, Control oder Alternate gedrckt oder ist CapsLock aktiv, so werden die Parameter fr den Object-Cache erfragt. Die eingestellten Parameter werden dann im Programm selbst abgespeichert (dazu muž es den Namen OC.PRG haben). Die Werte k”nnen mit den Tasten '+', '-' und 'Esc' ver„ndert werden. Die Tasten '+' und '-' erh”hen bzw. erniedrigen den Wert um 1 (zusammen mit Shift um 10). 'Esc' setzt den Wert auf Null. Setzt man die Object-Cache-Gr”že auf Null, so wird der Cache nicht installiert. Die Installation eines Write-Caches ist dann nicht m”glich. Ebenso wird kein Write-Cache installiert, falls man die Write-Cache-Gr”že auf Null setzt. Funktion: Der Object-Cache puffert alle Files mit der Extension .OBJ, auf die nur lesend zugegriffen wird (d. h. die mit Fopen Modus 0 ge”ffnet werden). Dabei werden nur solche Files gepuffert, deren L„nge h”chstens die halbe Pufferl„nge betr„gt. Ist der Puffer voll, so werden soviele alte Files aus dem Puffer entfernt, bis das neue File in den Puffer pažt. Dabei wird ein File jedoch mindestens solange gepuffert, wie bei 'minimale Pufferzeit' angegeben wird. Die minimale Pufferzeit sollte deshalb mindestens so grož gew„hlt werden, daž w„hrend eines Compilierungs- bzw. Linkvorganges kein File aus dem Puffer entfernt wird. (Ansonsten werden die Files immer wieder neu in den Puffer gelesen, falls dieser nicht grož genug ist, alle Objects auf einmal zu puffern). Wird ein File, das sich im Puffer befindet, zum Schreiben ge”ffnet, so wird es aus dem Puffer entfernt. Der Write-Cache kann nur dann installiert werden, wenn ein Object-Cache installiert wurde. Er puffert alle Files, die mit Fcreate erzeugt werden. Der Programmteil, der fr die Installation zust„ndig ist (Einstellen der Werte usw.), wird als Pufferbereich genutzt. Steht nach der Installation des Caches nicht genug Speicher zur Verfgung, um den Compiler zu starten, so bricht das Programm ab. PS.: Da jedes Programm mindestens noch einen Fehler enth„lt, wird wohl auch in diesem Programm noch ein Fehler versteckt sein. Sollte ihn jemand entdecken, so w„re ich fr eine Mitteilung dankbar.