2013-10-10 13 views
7

Dodano propozycję z Alain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extensions making use of the -ppx flag dodaną w OCaml 4.00. W tym czasie wspomniał, że jest jeszcze trochę pracy do wykonania (atrybuty, cytaty itp.), Ale było to już w pewnym sensie użyteczne. Czy OCaml 4.01 ma ulepszoną obsługę tego stylu pisania rozszerzeń składni? Czy ktokolwiek używa tego mechanizmu teraz zamiast camlp4, czy też camlp4 nadal jest zalecanym sposobem pisania rozszerzeń składni OCaml?Jaki jest stan rozszerzeń składni -ppx dla OCaml?

Odpowiedz

10

Praca nad "(atrybutami, cytatami itp.)" Została wykonana przez Alaina w formie odgałęzienia źródeł kompilatora OCaml, nazwanych punktami rozszerzeń. Postępy w tej dziedzinie były szeroko dyskutowane na publicznej liście dyskusyjnej wg-camlp4, ale nie zostały zintegrowane w wersji 4.01. Od wersji 4.01 został on zintegrowany z trunkingiem (referencyjną gałęzią rozwojową kompilatora), więc powinien być dostępny dla wersji 4.02 (zauważ, że główne wersje są obecnie wydawane co roku).

Alain utrzymuje formę dokumentacji dla punktów rozszerzenia w trunk/experimental/frisch/extension_points.txt. Oczywiście nie obejmuje to przypadków użycia Camlp4, ale wciąż jest ich duża część. Niezależnie od tego, czy wolisz używać tego, jest to osobista decyzja; obietnica jest taka, że ​​nieco bardziej niezręczna składnia zapewnia łatwiejsze wdrażanie i współdziałanie z oprzyrządowaniem i innymi rozszerzeniami.

Od wersji 4.00 lub 4.01, -ppx nie jest przystosowany do rozszerzenia składni, można przetwarzać (i ewentualnie filtrować/przekształcać) składniowo poprawny kod OCaml. Jest technicznie możliwe, aby wykasować istniejącą składnię OCaml w celu dodania nowych znaczeń, ale polecam przeciw temu. Powinieneś raczej poczekać na 4.02, jeśli chcesz go użyć do rozszerzenia składni.

Powiązane problemy