Antecedentes: He escrito un intérprete Lisp de juguete al que estoy intentando agregar la funcionalidad LLVM JIT. Por el momento, han impuesto las siguientes limitaciones:Agregar una función en LLVM (enlaces haskell) cuando no se conoce el número de parámetros en tiempo de compilación
- Sólo se permiten valores enteros en funciones
- Variables solamente pueden hacer referencia a parámetros formales
Dada:
compile :: [Value] -- List of Formal Parameters
-> [Value] -- Body of function
-> CodeGenModule(Function a)`
Pregunta: ¿Cómo puedo generar una función donde el número de p arameters es igual a la longitud de la lista Formal Parameters?
Un buen comienzo podría ser ayudarme a entender 'forrall f g r. FunctionArgs f g (CodeGenFunction r()) ' –
¿le gustaría compartir su experiencia de usar haskell binding de LLVM? ¿Qué versión usaste? :) – Nybble
@Wu: LLVM 2.9 con el enlace de llvm de [commit 729514] (https://github.com/bos/llvm/commit/72951414d7b7b377ee1a040fae2b043b7747ceff). [Ver también] (http://stackoverflow.com/questions/6406067/haskell-llvm-binding-linker-error) –