2011-10-20 3 views
1

공유 Haskell 라이브러리 (Linux)가 있다고 가정 해 봅시다. 어떻게 든 실제로 System.Posix.DynamicLinker (dlopen 및 dlsym)를 호출하여 실제로 호출 가능한 하스켈 함수를 얻을 수 있습니까? 그렇다면 어떤 문자열을 dlsym으로 전달할 것인가? (하스켈 함수 이름이 어떻게 든 엉망이라고 생각한다.) 그리고 반환 된 FunPtr을 어떻게 하스켈 함수로 변환 할 수 있을까? 적어도 Haskell 런타임은 이와 비슷한 것을해야한다고 생각합니다.Haskell 공유 라이브러리에서 System.Posix.DynamicLinker를 사용하는 방법

누군가 이렇게 했습니까?

+0

전화 할 기능을 '해외로 내보내기'해야합니다. – augustss

+1

FFI 사양을 읽으십시오. – augustss

+0

고마움, 나는 그것을 두려워했다. – MOswald

답변

1

내 생각에 당신이 원하는 것 같아 http://hackage.haskell.org/package/plugins

+0

글쎄, 일종의. 그것은 현재 내 컴퓨터에서 컴파일되지 않습니다 : src/System/Plugins/Load.hs : 87 : 35 : 모듈'GHC '는'defaultCallbacks'를 내 보내지 않으며 또한 객체 파일 인. 안녕하세요 파일과 package.conf. 이것은 일반적으로 괜찮을 것입니다 (내가 컴파일하면 되겠지요), 나는 또한 낮은 수준의 것들을 알고 궁금합니다. – MOswald

관련 문제