Estoy intentando compilar el paquete double-conversion
de Hackage. Construye bien pero ghci no puede cargarlo. La queja es:Símbolo no definido en un paquete de Hackage `conversión doble`
Loading package double-conversion-0.2.0.0 ... linking ... <interactive>:
/home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o:
unknown symbol `_ZNK17double_conversion6Double5valueEv'
La salida nm
muestra que el símbolo es débil:
nm /home/me/.cabal/lib/double-conversion-0.2.0.0/ghc-7.0.4/HSdouble-conversion-0.2.0.0.o \
| grep _ZNK17double_conversion6Double5valueEv
00000000 W _ZNK17double_conversion6Double5valueEv
Este es el único símbolo débil en el archivo, y de hecho, por lo que yo puedo decir, en el mundo entero de paquetes compilados por GHC.
La función problemática es aparentemente una FFI, escrita en C++ y definida en línea en double-conversion/src/double.h
. No es la única función en línea allí, pero solo esta se etiqueta como débil.
Como medida provisional, he movido la función fuera de línea y el paquete ahora se carga. Pero obviamente hay algún problema en algún lugar allí. ¿Por qué esta función es débil? ¿Por qué otras funciones no lo son? ¿Debería ghc quejarse de símbolos débiles? ¿Debo presentar una falla y, de ser así, quién debería obtenerla (conversión doble, gcc, ghc, otra persona?)
Datos del sistema: Gentoo Linux, gcc-4.4.5, ghc-7.0.4, cabal -1.10.2.0.
¿Qué error obtienes si intentas instalar 'text-format'? ¿Tal vez Yesod intenta usar doble conversión de Template Haskell? –
¿Ha intentado usar la plantilla? – alternative
@monadic: en realidad estoy usando la superposición, solo después de que falló probé la instalación local 'cabal '. El mensaje de error es el mismo @Mikhail Glushenkov: en realidad puedo instalar 'text-format', pero no' yesod'. El mensaje de error es el mismo –