]> gitweb.factorcode.org Git - factor.git/blob - extra/llvm/reader/reader.factor
8c324b41e47d736450927b87b6b0891449e1ba0f
[factor.git] / extra / llvm / reader / reader.factor
1 ! Copyright (C) 2009 Matthew Willis.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors alien.c-types alien.syntax destructors kernel
4 llvm.core llvm.engine llvm.jit llvm.wrappers ;
5
6 IN: llvm.reader
7
8 : buffer>module ( buffer -- module )
9     [
10         value>> f <void*> f <void*>
11         [ LLVMParseBitcode drop ] 2keep
12         *void* [ llvm-throw ] when* *void*
13         module new swap >>value
14     ] with-disposal ;
15
16 : load-module ( path -- module )
17     <buffer> buffer>module ;
18
19 : load-into-jit ( path name -- )
20     [ load-module ] dip add-module ;