Preguntas con respuestas sobre "ffi"

161 preguntas, página #1

6

votos

1

respuestas

vistas 236

¿Cuánto tiempo debo esperar que tome una recolección de elementos no utilizados antes de eliminar un objeto FFI opaco? ¿Es posible acelerarlo de alguna manera?

Considero escribir enlaces de Haskell a una biblioteca de mecánica cuántica escrita en C ++ (escribiría un contenedor C simple) y CUDA. Un cuello de botella importante siempre es la memoria de la GPU utilizada por las piezas de CUDA. En C ++, esto se maneja de manera bastante eficiente porque todos los objetos tienen administración automática de memoria, es decir, son ...

preguntado 10 años, 8 meses

6

votos

2

respuestas

vistas 714

Acceso rápido a arreglos usando Racket FFI

Estoy tratando de escribir OpenCV FFI en Racket y llegué a un punto en el que las matrices deben manipularse de manera eficiente. Sin embargo, todos mis intentos de acceder a las matrices usando Racket FFI resultaron en un código muy ineficiente. ¿Hay alguna manera de acceder rápidamente a los arreglos C usando FFI? ...

preguntado 10 años, 8 meses

21

votos

4

respuestas

vistas 3,633

¿Puede la FFI lidiar con matrices? ¿Si es así, cómo?

Estoy bastante seguro de que es posible enviar matrices a través de FFI, pero no puedo encontrar ningún ejemplo. Por ejemplo, tengo un arreglo Haskell que envío a una función int foo(int*), o tengo un arreglo C int bar[64]; que envío a Haskell. ...

preguntado 10 años, 10 meses

7

votos

1

respuestas

vistas 231

haskell genera código contenedor de exportación FFI

Estoy escribiendo un código en haskell que debe poder llamarse desde C. ¿Hay alguna herramienta o biblioteca en Haskell que simplifique la escritura del código contenedor FFI para las funciones de haskell que deben exportarse? ...

preguntado 10 años, 10 meses

4

votos

1

respuestas

vistas 664

Conversión de un objeto de archivo Lua a un ARCHIVO C *

Estoy construyendo un contenedor usando LuaJIT y FFI. Tengo una biblioteca C con una función que toma un ARCHIVO* como parámetro. En una función Lua dentro de la cual abro un archivo usando io.open(). ¿Hay alguna forma de convertir, convertir o extraer del objeto de archivo Lua a un ARCHIVO C*? Esto parece que debería ser...

preguntado 10 años, 10 meses

3

votos

2

respuestas

vistas 403

c2hs no se instala / registra correctamente

Cuando ejecuto cabal install c2hs, parece que finaliza correctamente, pero no registra el paquete. Parece que el paquete ni siquiera está instalado: no aparece en la lista ghc-pkg, y volver a ejecutar cabal install c2hs pasa por el mismo procedimiento de instalación, en lugar de decir "Todos los paquetes solicitados ...

preguntado 10 años, 11 meses

3

votos

1

respuestas

vistas 1,411

rubysdl frente a ruby-sdl-ffi

¿Alguien aquí podría decirme la diferencia entre las gemas Ruby rubysdl y ruby-sdl-ffi, como variaciones de velocidad? Si es así, ¿cuál preferirías? Me pregunto por el bien de mi joya que estoy escribiendo, Rubydraw (ubicado aquí). ...

preguntado 10 años, 11 meses

7

votos

1

respuestas

vistas 1,867

Devolución de llamada de FFI Haskell con estado

Mi pregunta es sobre cómo escribir interfaces amigables de Haskell que modelen devoluciones de llamada que se pueden invocar desde el código C. Las devoluciones de llamada se abordan aquí (HaskellWiki), sin embargo, creo que esta pregunta es más compleja que el ejemplo de ese enlace. ...

preguntado 10 años, 11 meses

2

votos

1

respuestas

vistas 458

Pasar vectores almacenables mixtos a una función C

Tengo una lista de vectores - el conjunto de tipos es conocido y fijo - digamos, CInt y CChar. La lista es desconocida en tiempo de compilación; la composición se determinará a partir de un archivo de configuración en tiempo de ejecución. Por ejemplo, podríamos decidir que necesitamos pasar dos vectores a la función C: Un vector CInt de ...

preguntado 10 años, 11 meses

3

votos

1

respuestas

vistas 735

Cómo recolectar basura correctamente cuando se usa un NIF

Pensé que si todo lo que hago es 1) cargar una biblioteca NIF, 2) ejecutar mi nuevo método / 0, 3) liberar todo a través de F (), y luego 4) erlang: garbage: collect () que haría volver al punto de partida con respecto a la memoria. De hecho, se me escapa la memoria. Claramente, mi código es el más probable ...

preguntado 10 años, 11 meses