2013-10-10 2 views
7

OCaml 4.00에 추가 된 Alain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extensions making use of the -ppx flag의 제안이있었습니다. 그 당시에 그는 끝내야 할 일 (속성, 인용문 등)이 있었지만 이미 유용하다고 언급했다. OCaml 4.01은이 스타일의 문법 확장 스타일에 대한 지원이 향상 되었습니까? 이제 camlp4 대신이 메커니즘을 사용하는 사람이 있습니까? 아니면 camlp4가 OCaml의 구문 확장을 작성하는 데 여전히 권장되는 방법입니까?OCaml을위한 -ppx 구문 확장의 상태는 어떻습니까?

답변

10

"(속성, 인용문 등)"에 대한 작업은 확장 점이라는 OCaml 컴파일러 소스의 한 형태로 Alain에 의해 수행되었습니다. 이 지점에 대한 진행 상황은 공개 wg-camlp4 메일 링리스트에서 광범위하게 논의되었지만 4.01에서는 통합되지 않았습니다. 4.01의 릴리스 이후, 트렁크 (컴파일러의 레퍼런스 개발 브랜치)에 통합되었으므로 4.02에서 사용할 수 있어야합니다 (주요 버전은 현재 매년 릴리스되는 경향이 있습니다).

알랭은 연장 점에 대한 문서 양식을 trunk/experimental/frisch/extension_points.txt으로 유지합니다. 모두 Camlp4의 사용 사례는 분명히 다루지 않지만 여전히 상당 부분을 차지합니다. 당신이 오히려 그것을 사용하고자하든간에 그것은 개인적인 결정입니다. 약간 더 어색한 구문을 사용하면 툴링 및 기타 확장과 함께 쉽게 배포하고 상호 운용성을 확보 할 수 있습니다.

4.00 또는 4.01에서 -ppx은 구문 확장에 적합하지 않으므로 구문 적으로 유효한 OCaml 코드 만 처리 (가능하면 필터링/변환) 할 수 있습니다. 기술적으로 새로운 의미를 추가하기 위해 기존의 OCaml 문법을 뒤바꿀 수는 있지만, 반대 의견을 제시하고자합니다. 구문 확장을 위해 사용하려면 4.02를 기다려야합니다.

관련 문제