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 구문 확장의 상태는 어떻습니까?
7
A
답변
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를 기다려야합니다.
관련 문제
- 1. Mercurial Shallow Clone 확장의 상태는 어떻습니까? 얕은 복제 확장의
- 2. Scala.React의 상태는 어떻습니까?
- 3. PHPDoc의 상태는 어떻습니까?
- 4. Spring.Net의 상태는 어떻습니까?
- 5. Ruby의 컴파일 언어로의 상태는 어떻습니까?
- 6. C++ TR2 Filesystem 라이브러리의 상태는 어떻습니까?
- 7. 브라우저 간 IndexDB 지원 상태는 어떻습니까?
- 8. 형식이있는 ASCII로 PDF 변환 - 현재 상태는 어떻습니까?
- 9. Internet Explorer의 TTF 지원 상태는 어떻습니까?
- 10. Mac OS X에서 ZFS의 상태는 어떻습니까?
- 11. PHP 5.4 용 컴파일러의 현재 상태는 어떻습니까?
- 12. LevelDB의 상태는 어떻습니까? 생산에 사용하는 것이 안전합니까?
- 13. 레일스의 네임 스페이스 모델 : 노조의 상태는 어떻습니까?
- 14. 이전 JSF 버전의 지원 상태는 어떻습니까?
- 15. TCL에서 C10K와 유사한 이벤트 기반 서버 개발 상태는 어떻습니까?
- 16. TSX 관련 Skylake 에라타 SKL-105의 상태는 어떻습니까?
- 17. Neo4j의 수평 확장 프로젝트 인 Rassilon의 상태는 어떻습니까?
- 18. 기기가 절전 모드로 전환 될 때의 활동 상태는 어떻습니까?
- 19. git reset --mixed HEAD ~ 1을 사용할 때 파일의 상태는 어떻습니까?
- 20. gdi에서 푸시, 번역, 회전 및 팝 상태는 어떻습니까?
- 21. 현재 (2009 년 중반) GCJ의 현재 상태는 어떻습니까?
- 22. 숨겨진 마코프 모델의 다음 상태는 이전 한 상태에만 의존합니까? 이전 n 개 상태는 어떻습니까?
- 23. VS 편집기 확장의 평행도
- 24. 왜 Win64에서 OCaml을위한 바이너리 배포판이 없습니까?
- 25. OCaml을위한 parsec과 같은 라이브러리는 실제 사용을 권장합니까?
- 26. OCaml을위한 향상된 인터프리터 토플 루프가 있습니까?
- 27. 확장의 초점
- 28. Sencha 또는 Extjs는 어떻습니까?
- 29. 여러 상태는
- 30. 확장의 (a)와 패키지