Tengo un error Alinear una estructura de datos (tipo de error abstracto (Personalizado)). Hay un tipo abstracto conocido en uso, a saber, Big_int. Sin embargo, eso Marshals bien. No hay un código C personalizado en la aplicación. Además de Nums, también se usa la biblioteca de Unix (sin embargo, no creo que haya ningún objeto activo de ese tipo). Estamos mariscalizando con Closures.¿Qué tipos de biblioteca estándar de OCaml no se pueden ordenar?
Dos (solo) bibliotecas de terceros están en uso: OCS Scheme (intérprete de esquema, Ocaml puro) y Dypgen (analizador de GLR extensible, también Ocaml puro). El problema es con una nueva característica de Dypgen, guardando un analizador extendido dinámicamente.
El mensaje de error Ocaml es inútil (no identifica qué tipo de resumen con la etiqueta personalizada es el culpable).
Sospechamos Lexbuf como el culpable porque contiene un cierre sobre un canal Ocaml, y no puede ser Marshal'ed, pero parece que este no es el problema. Entonces mi pregunta es:
¿Qué componentes de la biblioteca estándar no pueden ser Marshall?
Los valores personalizados pueden tener un puntero para nombrar en custom_ops (utilizado como etiqueta de clasificación). – ygrek
Hm, entonces, ¿qué ocurre si intentas ordenar una matriz débil? Definitivamente estoy recibiendo (personalizado) en el diagnóstico. – Yttrill
@Yttrill "Marshal.to_string (Weak.create 3) [] ;;". Resultado: "Excepción: Invalid_argument" output_value: abstract value (Abstract) " –