问题标签 [beam]
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.
c - 修改 Erlang VM Pid
如何更改Erlang VM以将随机 128 位值用于其中一个 pid 值?
此时我可以设置的最大值似乎是:
看起来 pid 的生成归结为以下内容erts/emulator/beam/erl_ptab.h:283
:
erlang - 为什么 nif 函数会阻止 Erlang VM 调度其他进程?
当 Erlang VM Beam 运行一些用 C 编写的代码时,其他用 Erlang 编写的进程没有被调度。例如:
当你在 Erlang 中调用这个 C 函数时,其他进程没有正常调度。我想知道为什么?这是一个特性还是受实现的限制(即这是一个错误)?
上面代码的地址在:https ://github.com/davisp/sleepy
erlang - 为什么下面的代码会导致 Erlang HiPE 编译器崩溃?
代码如下:
编译这段代码erlc
没有报错,编译正常。但是当我用 编译它时erlc +native
,编译器崩溃了,信息如下:
我在: http ://erlang.2086793.n4.nabble.com/internal-error-in-native-compile-td2298937.html中找到了这段代码。但我无法获得有关此代码为何会使编译器崩溃的更多信息。
erlang - 将 Elixir AST 转换为 Erlang AST?可能吗?
是否可以像这样引用 Elixir 表达式(AST 树):
并将其转换为 Erlang AST?
我查看了代码模块以及一些内核模块,寻找执行此操作的函数,但我没有找到任何东西。我什至不确定这是否可能......我不知道像 Elixir 宏这样的东西将如何在 Erlang AST 中表示。
提前致谢!
ubuntu - Rabbitmq 监听所有接口
尽管:
在 /etc/rabbitmq/rabbitmq.config 中:
在 /etc/rabbitmq/rabbitmq-env.conf 中:
当我运行netstat -uptan | grep 梁我得到:
我如何使光束不听0.0.0.0:33551?
eclipse - 在终端内重新加载/重新编译/刷新 .beam 文件
我使用 Eclipse 和 Erlide 在 Erlang 中进行开发。为了运行该软件,我使用终端进入ebin/
目录,因为我不喜欢 Eclipse 提供的控制台。但是,每次更改后,我都必须退出并在终端中重新输入 erl 以重新加载.beam
已更改的文件。Eclipse会在每次保存后自动将新.beam
文件生成到目录中。ebin/
我知道我可以使用c(filename)
命令手动编译它,但这需要我移动到src/
目录,编译文件,然后将它们移回ebin/
目录。这需要更多的工作,而不仅仅是退出和进入 Erlang 终端。我听说过makefile,但我不知道它们是否可以在Erlang 终端中运行。我不想退出终端的原因是因为我会丢失以前命令的历史记录。如果我使用的是长名称的模块:方法,那么每次更改都会花费大量的输入时间。
在 Erlang 终端中,是否有任何方法可以重新加载当前目录中的 .beam 文件?或者有什么办法可以加载 Erlang 终端之前的命令历史记录?
list - Erlang 列表理解奇怪的行为
我现在学习 Erlang 和列表推导,并发现了一个奇怪的(对我而言)问题。所以我有一个简单的列表理解,有一个简单的公式,没有过滤器:
正如我所料,输出是正确的:gen_list([2,3,4]). [4,9,16]
然后我这样做:
并且输出再次正确:gen_list([2,3,4]). [16,81,256]
. 但是当我将公式定义为:gen_list(List)->
[N*N*N || N <- List].
我得到下一个输出:gen_list([2,3,4]). "\b\e@"
.
这是什么:"\b\e@"
?? 为什么只有当我有三个N时才得到它?我什至可以这样写公式:N*N*N*N*N*N*N*N
,并且输出再次将如我所料。但是用三个 NI 总是得到这么奇怪的结果。有人可以为我解释一下吗?
我使用 ArchLinux 和 GNU Emacs。
erlang - Erlang beam_lib 块坏了?
我试图反编译 .beam 文件(从长生不老药代码编译)
我用了这个脚本
其中生成了一个文件。但是在再次编译此代码时,我在“-spec”注释上遇到错误
代码不变。它与新的 Erlang 版本有关还是我做错了什么?
python - 使用 Elixir、erlport 和 Python 2.7.9,收到一个 arity 错误
我正在尝试将 Python 与 Elixir 一起使用,并编写了以下功能代码(您可以在此处找到我正在构建的存储库:https ://github.com/arthurcolle/elixir_with_erlport )
我可以运行iex -S mix run
,然后输入 Snake.py,我将得到以下输出:
"hey there"
:undefined
好,太棒了。
然后我尝试通过将上面的两行替换为:
{:ok, pp} = :python.start()
:python.call(pp, :sys, :version, [])
但是当我运行它时,它给了我这个arity错误
** (FunctionClauseError) no function clause matching in :erlport.call/5
src/erlport.erl:87: :erlport.call(#PID<0.108.0>, :sys, 'version.__str__', [], [])
这对我来说没有任何意义,因为我的电话只是一个:erlport.call/4,最后有一个列表(不是它所说的 2)。
architecture - Elixir 编程语言在 iex 中的 BEAM 代表什么?
字母 BEA 和 M. 代表什么?我记得看到首字母缩略词“BEAM”的解释,但我没有设法再次找到它。
它出现在错误代码中:
因此,.beam 文件似乎存在某种问题,可能是由于我使用了 vi。(注意 Elixir 程序员:不要编辑 .beam 文件,这很痛苦。)
这个问题解释了 BEAM 虚拟机是什么,而不是字母代表什么。而且似乎很难快速找到关于词源的很多信息,或者在Erlang central上找到重点。据说BEAM 是 Erlang 和 Elixir 的秘方。