데이터 구조를 마샬링하는 데 오류가 있습니다 (오류 추상 형식 (사용자 지정)). 사용되는 알려진 추상 유형은 Big_int입니다. 그러나 마샬은 괜찮습니다. 응용 프로그램에는 사용자 지정 C 코드가 없습니다. Nums 외에도 Unix 라이브러리도 사용됩니다 (그러나이 유형의 활성 객체가 있다고는 생각하지 않습니다). 우린 마샬링 오브 클로저입니다.어떤 OCaml 표준 라이브러리 유형을 정렬 할 수 없습니까?
OCS Scheme (Scheme 인터프리터, 순수 Ocaml) 및 Dypgen (확장 가능한 GLR 파서, 순수 Ocaml) 두 개의 타사 라이브러리가 사용 중입니다. 문제는 동적으로 확장 된 구문 분석기를 저장하는 Dypgen의 새로운 기능입니다.
Ocaml 오류 메시지는 쓸모가 없습니다 (사용자 정의 태그가있는 추상 유형이 범인인지 식별하지 못합니다).
우리는 Ocaml 채널을 통해 클로저를 포함하고 있기 때문에 Lexbuf가 범죄자로 의심되어 Marshaled 될 수 없지만 이것이 문제가 아닌 것으로 보입니다. 그래서 내 질문은 :
마샬 할 수없는 표준 라이브러리 구성 요소는 무엇입니까?
맞춤 값은 custom_ops (마샬링 태그로 사용)의 이름을 가리키는 포인터를 가질 수 있습니다. – ygrek
흠, 약한 배열을 마샬링하려고하면 어떻게됩니까? 나는 확실히 진단에서 (Custom)을 얻고있다. – Yttrill
@Yttrill "Marshal.to_string (Weak.create 3) [] ;;". 결과 : "예외 : Invalid_argument"output_value : 추상 값 (초록) " –