问题标签 [erl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - 为什么没有将 erlang lib 更改合并到我的项目中?
我在一个相当大的项目上使用 eclipse 3.6.2 和 erlang 5.8.1.1,我们还没有准备好迁移到更现代的语言版本,所以我在 eprof 中遇到了一个错误:
这对我来说总是崩溃,因为写这篇文章的人并没有防范除零。我已经改变了:
...但我的项目从未执行过它。我已经手动重新编译了.erl并将.beam放在ebin目录下,但是在我的项目完全关闭,关闭eclipse,打开eclipse,刷新,清理和重新启动之后,没有执行新版本的方法。我尝试在方法中添加诸如“foo + 1”之类的表达式,以查看我是否得到与现在让我失望的 badarith 不同的异常,但没有效果。
我只能猜测 .beams 正在被合并或缓存在我将不得不进行核攻击或重建的某个地方?
erlang - 如何在 Erlang 中的多个 erl 之间共享记录?
我想在我拥有的每个 erl 文件中使用 -record 。我知道我可以在每个文件中单独重复记录,但这真的很难看。
有什么建议吗?
PS:要温柔 ;-) 我是 Erlang 新手。
erlang - 将命令传递给erl?
我们正在运行一个 erlang 程序(ejabberd)。有时,我们需要通过将 erl shell 连接到这个正在运行的 erlang 程序来进行健康检查。
我正在尝试编写所有这些脚本,而不是erl -sname r -remsh ....
在 erlang shell 中键入然后我的命令,我正在寻找直接从我的 bash shell 执行该命令并获取输出的方法。这可能吗?
在 Odobenus 的回答之后,我写了这个小脚本:
问题是我得到一个“节点关闭”错误,即使这些是我用来连接的完全相同的参数erl
:erl -sname r -remsh ejabberd@xmpp -setcookie `cat ~ejabberd/.erlang.cookie`
erlang - Erlang 中的选择性接收
所以我开始学习 Erlang,我对这段代码有点困惑。
我正在使用调用代码。
我知道此代码将首先处理所有高优先级消息,然后是低优先级消息。我对返回值如何 [high,high,low,low] 感到困惑,因为我看不到它们在哪里连接在一起。
c - 将二进制文件传递给erlang nif
我正在编写一些 Erlang 代码,它基本上接受来自 TCP 连接的一些二进制数据,然后使用 C nif 解密数据并返回解密后的数据。
问题是我似乎无法弄清楚如何修改传入的二进制文件。
这是我正在使用的功能。如果有人能指出我正确的方向,我将不胜感激。
谢谢!
erlang - 如何检测erl_call断开连接
我有一个由 erl_call 触发的 erlang 服务。erl_call 将进行一个长调用,例如 "gen_server:call(?SERVER, do, infinity)" 以等待结果。如果 erlang 服务关闭,则 erl_call 将返回。但是如果 erl_call 被中断(使用 CTRL-C),erlang 服务不会收到任何消息。
我检查了 appmon 和 pman。erl_call 启动的进程在 erl_call 断开后不会死掉。所以链接/监控到那个过程是行不通的。如何检测 erl_call 已断开连接?
vb.net - 如何在 vb.net 中使用 Stacktrace 返回错误行号
我正在尝试创建某种错误捕获方法,该方法将返回错误行号。我们有一封中止电子邮件,当进程中止时发送给我们err.number和err.description,但我想知道实际错误在哪里。
我知道您可以执行以下操作:
等等,并使用 ERL 来获取数字,但是这样输入每一行会很乏味。
有没有一种方法可以自动执行此操作,或者使用 Stacktrace 会更容易吗?如果 Stacktrace 更好,你能给我举个例子吗?
erlang - 如何手动向我刚刚生成的进程发送消息?
如何发送消息以使用 Erlang 进行处理?我确实启动了一个进程,输出显示 pid(进程标识符)是<0.39.0>
. 我的问题是如何<0.39.0>
手动向该进程 ( ) 发送消息。
erlang - `erl -make` 命令是否可以扩展来执行编译 .erl 文件以外的操作?
我想将 Elixir 集成到我们的项目中,并且好的旧代码不使用rebar
,所以我认为编写构建.ex
文件的规则Emakefile
可能是一个好主意,但是这里的手册页没有提到任何相关内容。
编辑:
我们团队主要是在Windows环境下工作,但是部署会在Linux服务器上完成,所以我需要一个跨平台的解决方案。由于 Erlang 本身是跨平台的,所以我想用erl -make
命令来做。
当然我可以写一个Makefile
,但是我需要一个build.bat
或类似的东西来在我们的开发环境中构建代码,因为我们的开发机器上没有make
命令。
有人有更好的主意吗?
更新:
如果有人想知道,我是这样做的:
- 将 Elixir 源代码树中的目录复制
lib/elixir
到我们的源目录,例如some_project/src/tools/elixir
. some_project/src/tools/elixir/src/elixir_transform.erl
按顺序将和添加some_project/src/tools/elixir/src/*
到Emakefile
,。将输出目录设置为some_project/ebin
(所有其他.beam
文件都位于那里)。- 将
src/elixir.app.src
Elixir 源代码树复制到some_project/ebin/elixir.app
,并对其进行编辑以修复版本代码。 - 在dir中运行
erl -pa ebin -make
,构建 Erlang 代码。some_project
- 通过运行构建 Elixir 编译器
erl -pa ebin -s elixir_compiler core -s erlang halt
- 现在我们的代码中有一个可用的 Elixir 环境,我使用以下 escript 来构建我们的自定义
.ex
文件:
rebar - 尝试构建钢筋时出现“未捕获的 rebar_core 错误”
我必须在 riak 上添加和删除节点。为此,我正在尝试按照以下链接中的步骤构建钢筋:https ://github.com/basho/rebar
当我运行引导命令时,我得到以下关于 erlang 库的信息:
我正在使用 riak 1.2.1 版本和 erlang 版本 R15B01。有人可以帮我解决这个问题吗?