2013-12-17 2 views
3

나는 하스켈의 간단한 텍스트 편집기에서 작업하고 있는데, 사용자가" 검사."GHC API를 사용하여 코드 편집 수행 "

GHC-API를 사용하여 실제로 컴파일하지 않고 haskell 파일을 컴파일하는 "dry-run"을 수행하는 방법이 있습니까? 문자열을 가져 와서 일반 컴파일의 모든 검사를 수행 할 수는 있지만 출력은 없어도됩니다. GHC-API는 오류를 강조하기 위해 GHC의 명령 행 출력을 구문 분석 할 필요가 없기 때문에 이상적입니다.

또한 파일 대신이 문자열에 대해이 검사를 수행 할 수 있습니까? (그렇지 않은 경우 임시 파일에이 파일을 쓸 수 있습니다.이 파일은 대단히 효율적이지는 않지만 작동합니다).

가능한 경우이를 제공하는 방법에 대한 예를 제공하거나 가르쳐 주시겠습니까?

This question 3 년 전의 대답은 "GHC-API가 새롭고 아직 좋은 문서가 없습니다." 그래서 나의 희망은 상태가 바뀌 었다는 것입니다.

EDIT : 웹 기반 설정에서 컴파일 작업이 서버 측에서 발생하기 때문에 "dry-run"제한이 있습니다. 따라서 불필요한 디스크 읽기/쓰기가 발생하지 않도록하고 싶습니다. 검사". 실행 파일을 실행할 준비가 될 때까지 실행 파일은 버려집니다.

+1

주석이 달린 두 가지 오류를 모두 얻고 * 내 IDE에서 실행 가능한 실행 파일을 얻는 데 추가 된 * 기능 *으로 생각할 수 있습니다. 그러나 단지 저입니다. – jamshidh

+0

좀 더 복잡합니다. 나는 편집기에서 코드를 작성하고 데이터베이스에 저장되는 브라우저 기반의 작업을 수행하고 있습니다. 너무 많이 공개 할 수는 없지만 IDE는 적지 만이 프로젝트는 사용자가 서버 측에서 실행되는 코드를 제출하는 것과 관련됩니다. (SafeHaskell은 안전하고 멋지게 만든다.) 그래서 나는 그것을 컴파일하고 실행 파일을 버리는 것만으로도 충분할 것이라고 생각한다.하지만 여분의 오버 헤드처럼 보인다. 특히 여러 컴파일을 한꺼번에 실행할 수있는 서버 측 앱에서 그렇다. – jmite

+1

ghc-mod를 살펴보십시오. 이것만으로 설계된 것입니다. – jozefg

답변

4

그냥 답변으로 이동하려면 ghc-mod으로 이미 존재합니다. 여기에 homepage이 있습니다. 이미 Emacs, Sublime, Vim을위한 프론트 엔드가 있습니다. 사용 방법의 예제가 필요하다면 충분히 있습니다. 본질적으로 ghc-mod는 단지 편집자를 위해 설계된 GHC API를 둘러싼 래퍼입니다.