Tôi có một sự cố Cố định cấu trúc dữ liệu (loại tóm tắt lỗi (Tùy chỉnh)). Có một loại trừu tượng được sử dụng, cụ thể là Big_int. Tuy nhiên, Marshal vẫn ổn. Không có mã C tùy chỉnh trong ứng dụng. Ngoài Nums, thư viện Unix cũng được sử dụng (tuy nhiên tôi không tin rằng có bất kỳ đối tượng hoạt động nào thuộc loại đó). Chúng tôi đang Marshal'ing với đóng cửa.Loại thư viện chuẩn nào của OCaml không thể được sắp xếp lại?
Hai (chỉ) thư viện của bên thứ ba đang được sử dụng: Lược đồ OCS (Trình thông dịch lược đồ, Ocaml tinh khiết) và Dypgen (trình phân tích cú pháp GLR mở rộng, cũng là Ocaml thuần túy). Vấn đề là với một tính năng mới của Dypgen, lưu một trình phân tích cú pháp mở rộng động.
Thông báo lỗi Ocaml bên cạnh vô dụng (nó không xác định loại trừu tượng nào với thẻ Tùy chỉnh là thủ phạm).
Chúng tôi nghi ngờ Lexbuf là thủ phạm vì nó chứa một đóng cửa trên một kênh Ocaml, và không thể được Marshal'ed, nhưng có vẻ như đây không phải là vấn đề. Vì vậy, câu hỏi của tôi là:
Thành phần thư viện chuẩn nào không thể là Marshall'd?
Giá trị tùy chỉnh có thể có con trỏ để đặt tên trong custom_ops (được sử dụng làm thẻ marshalling). – ygrek
Hm, vậy điều gì sẽ xảy ra nếu bạn cố gắng Soạn một mảng yếu? Tôi chắc chắn nhận được (Custom) trong chẩn đoán. – Yttrill
@Yttrill "Marshal.to_string (Yếu. 3) [] ;;". Kết quả: "Ngoại lệ: Invalid_argument" output_value: giá trị trừu tượng (Tóm tắt) " –