Successivo: , Precedente: , Su: Note   [Contenuti][Indice]


C.6 Compatibilità per le vecchie estensioni

Estensioni dinamiche, descrive le API supportate e i meccanismi per scrivere estensioni per gawk. Quest’API è stata introdotta nella versione 4.1. Peraltro, già da molti anni gawk metteva a disposizione un meccanismo di estensione che richiedeva una familiarità con la struttura interna di gawk e che non era stato progettato altrettanto bene.

Per garantire un periodo di transizione, gawk versione 4.1 continua a supportare il meccanismo di estensione originale. Questo rimarrà disponibile per la durata di una sola versione principale. Il supporto cesserà, e sarà rimosso dal codice sorgente, al rilascio della prossima versione principale.

In breve, le estensioni in stile originale dovrebbero essere compilate includendo il file di intestazione awk.h nel codice sorgente dell’estensione. Inoltre, va definito l’identificativo ‘GAWK’ durante la preparazione (si usi ‘-DGAWK’ con compilatori in stile Unix). Se non lo si fa, le definizioni in gawkapi.h risulteranno in conflitto con quelle in awk.h e l’estensione non sarà compilabile.

Come nelle versioni precedenti, un’estensione vecchio stile sarà caricata usando la funzione predefinita extension() (che non viene ulteriormente documentata). Questa funzione, a sua volta, trova e carica il file oggetto condiviso che contiene l’estensione e chiama la sua routine C dl_load().

Poiché le estensioni in stile originale e quelle nello stile nuovo usano differenti routine di inizializzazione(dl_load() e dlload(), rispettivamente), esse possono tranquillamente essere installate nella stessa directory (il cui nome deve essere contenuto nella variabile AWKLIBPATH) senza problemi di conflitti.

Il team di sviluppo di gawk raccomanda caldamente di convertire ogni estensione del vecchio tipo ancora in uso, in modo da utilizzare la nuova API descritta in Estensioni dinamiche.


Successivo: , Precedente: , Su: Note   [Contenuti][Indice]