Successivo: Altre scelte progettuali per le estensioni, Precedente: Problemi con le vecchie estensioni, Su: Progetto delle estensioni [Contenuti][Indice]
Alcuni obiettivi per la nuova API sono:
gawk
.
Le modifiche alla struttura interna di gawk
dovrebbero essere
irrilevanti per chi scrive una funzione di estensione.
gawk
, se la stessa API rimane invariata.
awk
. Questo vuol dire che le
estensioni dovrebbero avere:
gawk
).
Alcuni ulteriori obiettivi rilevanti sono:
gawk
è un
programma scritto in C. Al momento in cui queste note sono scritte, la cosa
non è stata verificata).
gawk
126 da parte del
linker statico, usato in fase di compilazione, o di quello dinamico,
in modo da rendere possibile la creazione di estensioni che funzionino anche
in ambiente MS-Windows.
In fase di sviluppo, è apparso evidente che dovevano essere disponibili alle estensioni anche altre funzionalità, che sono state successivamente implementate:
gawk
. In particolare, gli sviluppatori di
xgawk
hanno programmato un cosiddetto “gancio aperto” (open
hook) per gestire autonomamente la lettura dei record. In fase di sviluppo,
questo meccanismo è stato generalizzato, per consentire alle estensioni di
agganciarsi sia all’elaborazione dell’input, che a quella dell’output, nonché
all’I/O bidirezionale.
gawk
.
gawk
possa informare anche sulle versioni delle estensioni.
Il vincolo di evitare di accedere ai simboli di gawk
può parere a
prima vista piuttosto difficile da rispettare.
Un tipo di architettura, apparentemente usato da Perl e Ruby e forse da altri
programmi, potrebbe consistere nel mettere il codice principale di
gawk
in una libreria, limitando il programma di utilità
gawk
a una piccola funzione main()
in C che richiamerebbe
dinamicamente la libreria.
Questo inverte i ruoli del programma principale e della sua estensione, e
complica sia la compilazione che l’installazione, trasformando la semplice
copia del programma eseguibile gawk
da un sistema all’altro (o da una
posizione all’altra all’interno dello stesso sistema) in un’operazione ad alto
rischio.
Pat Rankin ha suggerito la soluzione che è stata adottata. Vedi la sezione Una panoramica sul funzionamento ad alto livello, per maggiori dettagli.
I simboli sono le variabili e le funzioni
definite all’interno di gawk
. Accedere a questi simboli da parte
di codice esterno a gawk
caricato dinamicamente al momento
dell’esecuzione è problematico in ambiente MS-Windows.
Successivo: Altre scelte progettuali per le estensioni, Precedente: Problemi con le vecchie estensioni, Su: Progetto delle estensioni [Contenuti][Indice]