22 lines
601 B
Factor
22 lines
601 B
Factor
|
! Copyright (C) 2009 Matthew Willis.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: accessors alien.c-types alien.data alien.syntax
|
||
|
destructors kernel llvm.core llvm.engine llvm.jit llvm.wrappers
|
||
|
;
|
||
|
|
||
|
IN: llvm.reader
|
||
|
|
||
|
: buffer>module ( buffer -- module )
|
||
|
[
|
||
|
value>> f void* <ref> f void* <ref>
|
||
|
[ LLVMParseBitcode drop ] 2keep
|
||
|
void* deref [ llvm-throw ] when* void* deref
|
||
|
module new swap >>value
|
||
|
] with-disposal ;
|
||
|
|
||
|
: load-module ( path -- module )
|
||
|
<buffer> buffer>module ;
|
||
|
|
||
|
: load-into-jit ( path name -- )
|
||
|
[ load-module ] dip add-module ;
|