- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究 OCaml 的 LLVM Kaleidoscope 教程。在教程的第三部分,我已经导航到文件夹中的示例代码
OCaml-Kaleidoscope\Chapter4
ocamlbuild -use-ocamlfind toy.byte -package llvm -package llvm.executionengine
File "toplevel.ml", line 37, characters 25-53:
Error: Unbound module ExecutionEngine
最佳答案
看来 llvm 在 3.4 和 3.7 版本之间变化很大。你可以找到旧图书馆here而新的是here .
我以前从未使用过 llvm,所以我的解决方案不是更好/更好的解决方案。好吧实际上甚至还有一个错误:我没有设法获得匿名功能,所以我命名它们,但我无法拥有几个功能,只考虑第一个......但这里有一个一般的想法,任何人都可以改进,并且稍微了解llvm的人肯定会发现错误。停止说话,让我们编码:
首先,安装 deps :
opam install ctypes ctypes-foreign llvm
let result = ExecutionEngine.run_function the_function [||]
的定义由(在
toplevel.ml
中)
open Ctypes
open PosixTypes
open Foreign
[...]
let my_name = "my_function_name" in (* If a name has already been add, value_name the_function should contains it. You should be able to use anonyme functions but I don't manage to get them work *)
let address = get_function_address my_name (funptr (void @-> returning double)) the_execution_engine in
print_string "Evaluated to ";
print_float (address);
toy.ml
:
let main () =
ignore (initialize ()); (* Change the initialize *)
[...]
(* Create the JIT. *)
let the_execution_engine = create Codegen.the_module in
[...]
(* Set up the optimizer pipeline. Start with registering info about how the
* target lays out data structures. *)
DataLayout.add_to_pass_manager the_fpm (data_layout the_execution_engine); (* Change also this line *)
ocamlbuild -use-ocamlfind toy.byte -package llvm -package llvm.executionengine && ./toy.byte
ready> 43+15;
parsed a top-level expr
----
define double @__my_anom_fct__0() {
entry:
ret double 5.800000e+01
}
Evaluated to 58.
ready>
ready> 1+42;
parsed a top-level expr
----
define double @__my_anom_fct__1() {
entry:
ret double 4.300000e+01
}
Fatal error: exception Llvm_executionengine.Error("Function __my_anom_fct__1 not found")
关于Ubuntu Ocaml llvm 未绑定(bind)模块 ExecutionEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37127803/
我正在使用 Neo4j 1.8.RC1,并尝试为图中的节点生成聚类系数。 我有以下代码,据我所知,它可以在 Linux 系统上运行,但不能在我的 Windows 计算机上运行: Map params
尝试使用找到的示例代码中的类似示例 here 我的示例函数是: void query() { String nodeResult = ""; String rows = "";
我只花了 10 分钟弄清楚为什么我针对测试数据库的单元测试需要大约 25 秒才能完成一个简单的查询。显然,原因是我忘记在 Transaction 中包装对 ExecutionEngine#execut
我在想ExecutionEngine在 java 中对 neo4j 数据库运行密码查询。 我想获取节点存在的所有关系。 我的原始密码是: MATCH (n:Phone{id:'you'}) MATCH
在 Neo4j 的 neo4j-2.2.0-M03 版本中,当我尝试导入时 import org.neo4j.cypher.javacompat.ExecutionEngine; 和 导入 org.n
我有一个使用 LLVM-C 的简单程序: #define __STDC_LIMIT_MACROS #define __STDC_CONSTANT_MACROS #include #include
我一直在研究 OCaml 的 LLVM Kaleidoscope 教程。在教程的第三部分,我已经导航到文件夹中的示例代码 OCaml-Kaleidoscope\Chapter4 编译时遇到问题 oca
我正在学习 llvm 并想对我的想法进行概念证明。 基本上,我想拆分我的编译器和我的运行时。编译器会给出一个 .bc,运行时会通过 ParseBitcodeFile 加载它并使用 ExecutionE
ExecutionEngine 实例的最佳实践是什么?我记得在 Neo4j 新闻组上看到一篇文章说应该在应用程序中共享一个实例,但我能找到的所有示例都表明并非如此。总体最佳实践是什么?这有关系吗? 最
我在运行单元测试时遇到错误。如果我调试单元测试 vstest.executionengine.x86.exe 运行,然后在测试通过时关闭。 如果我只是运行测试(即使测试就像创建一个新列表一样简单,没有
我们遇到的问题是我们的一个 C++ 单元测试导致异常 0xC0000005(来自 dmp 文件 -> 线程试图读取或写入它没有适当访问权限的虚拟地址)正在执行方法签名(甚至不执行方法的主体)。 这之后
添加运行多个 VS 版本的新单元测试后,我收到此错误: vstest.executionengine.x86.exe 已停止工作 在弹出窗口中。 最佳答案 我必须检查递归调用以解析(外键映射中的ToS
我在 OSX 上运行,使用 Clang 编译一些使用 OSX Cocoa 类的 Obj-C 代码,我试图用 LLVM JIT 编译器运行结果。我使用的是 LLVM/Clang 的最新前沿版本。 编译或
当我在 TFS 服务器上运行测试时,出现以下错误: The active Test Run was aborted because the execution process exited unexp
我正在开发 Windows 8.1 应用商店应用程序,并且我创建了单元测试。上周一切顺利,但几天后我无法构建我的单元测试项目。 每个单元测试项目都有以下两个错误: list 引用文件“vstest.e
我正在尝试加载一些数据,按特定字段过滤并将输出存储到 HDFS。我的代码如下所示: data = LOAD '$inputPath' using AvroStorage(); data = FILTE
我是一名优秀的程序员,十分优秀!