2013-10-10 8 views
7

C'è stata una proposta da Alain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extensions making use of the -ppx flag aggiunta in OCaml 4.00. A quel tempo ha detto che c'era ancora del lavoro da fare (attributi, citazioni, ecc.) Ma che era già abbastanza usabile. OCaml 4.01 ha migliorato il supporto per questo stile di scrittura delle estensioni della sintassi? Qualcuno sta usando questo meccanismo ora invece di camlp4 o è ancora camlp4 il modo consigliato per scrivere le estensioni di sintassi per OCaml?Qual è lo stato delle estensioni della sintassi di -ppx per OCaml?

risposta

10

Il lavoro su "(attributi, citazioni, ecc.)" È stato eseguito da Alain sotto forma di un ramo delle origini del compilatore OCaml, denominato estensione-punti. I progressi su questo ramo sono stati ampiamente discussi sulla mailing list pubblica wg-camlp4, ma non sono stati integrati in 4.01. Dal rilascio di 4.01, è stato integrato nel trunk (il ramo di sviluppo di riferimento del compilatore), quindi dovrebbe essere disponibile per 4.02 (si noti che le versioni principali tendono ad essere rilasciate ogni anno).

Alain conserva una documentazione per i punti di estensione in trunk/experimental/frisch/extension_points.txt. Chiaramente non copre tutti i i casi d'uso di Camlp4, ma ancora una grande parte di essi. Se preferiresti usarlo è una decisione personale da prendere; la promessa è che la sintassi un po 'più scomoda consente di semplificare la distribuzione e l'interoperabilità con strumenti e altre estensioni.

A partire da 4.00 o 4.01, -ppx non è adatto per l'estensione della sintassi, è possibile elaborare (e possibilmente filtrare/trasformare) codice OCaml valido sintatticamente. È tecnicamente possibile sovvertire la sintassi OCaml esistente per aggiungere nuovi significati, ma mi sento di raccomandare contro questo. Dovresti invece aspettare 4.02 se vuoi usarlo per l'estensione della sintassi.

Problemi correlati