问题标签 [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.
erlang - 将 C 库暴露给 Elixir/Erlang,还是在 Erlang/Elixir 中实现更好?
我的背景是 Perl/Python/node 和少量的 Ruby。我以前没有使用过 BEAM VM 语言。
在 Perl/Python/Node/Ruby 中,如果我想处理“低级”任务——密集计算、需要访问线程,或者更常见的是包装 C 库——我会用 C 编写一些东西。Elixir/Erlang 显然有Erlang 进程形式的出色并行性和非常低的延迟,消除了大部分需求。
因此,如果我有一个 C 库,是制作 Elixir/Erlang 包装器还是重新实现功能更好?
一个非常具体的例子:Elixir/Erlang 的 TLS 是使用 OpenSSL,还是用 BEAM 语言实现?
erlang - 在 Xeon Phi 上运行 Erlang
如何在英特尔至强融核协处理器上编译 VM 并运行 Erlang 程序?
java - ALOS 卫星产品到 PNG 的转换问题(缺少旋转)
我正在尝试使用BEAM java API 导出 ALOS AVNIR-2 产品的 PNG quicklook。下图显示了产品的 RGB 预览,它出现在 beam 的 GUI 中。
如您所见,由于其地理编码,图像不是直立的。我开发了一个非常简单的 java 程序来导出产品的 quicklook。
该程序有效,但我从中获得的每个 PNG 图像都是一个直立的 PNG 图像,如下所示。
现在,我知道不可能在 PNG 图像中包含地理编码信息。我只需要重现图像的相同“旋转”。任何的想法?
erlang - 如何获取 erlang 模块的导出类型?
我有理由检查模块导出的类型,我立即想到“对,然后是 module_info”,但很惊讶遇到了一些困难。我发现我可以从我编译的模块中获取导出的类型,但不能从 stdlib 中的模块中获取。
我的(三个)问题是,我如何可靠地获取模块的导出类型,为什么导出类型在某些模块的模块信息的属性位中,以及为什么某些模块而不是其他模块?
我发现如果我构建这个模块:
然后使用 foo:module_info/0,我得到了这个:
很好,隐藏在“属性”中的是“export_types”。为什么这是在属性中我不太确定,但是......无论如何......
我现在知道这会起作用:
伟大的。所以,我现在知道这会起作用:
啊……没有。
我知道当然有导出类型,如果文档不够好,ets 源显示:
事实上,ets 模块的导出类型信息似乎不在模块信息中的任何位置:
我现在把事情做到极致并运行它,将输出记录到一个文件中:
并不是说我不认为这很荒谬......但无论如何,它大约有 5,000 行输出,但我在任何地方都找不到字符串“tid”的实例。
intellij-idea - 在 Intellij 中编译 Erlang
我尝试使用 Erlang 插件在 Intellij 中编译 erl 文件。编译一切都很好,但在输出/生产中,该文件夹不会创建任何文件.beam
,当我运行控制台时,我会收到消息:
当我使用c("file").
一切都很好。为什么 Intellij 不创建.beam
文件?
config - EXRM - 我可以从 config.exs 文件中设置 vm.args 值吗?
与这个问题有些相关 -在 Elixir Exrm 中参数化节点名称- 有没有办法动态设置 rel/vm.args 文件的内容?
在标题中,我建议使用 config.exs,但我对任何允许我在构建时添加、删除和编辑 vm 参数的方案感兴趣。
一个 bash 脚本可能是一个想法,但也可以在 Windows 上运行,并且最好基于 Elixir 代码的解决方案将是一个想法。
erlang - Elixir:exrm升级杀死工人
我创建了一个非常基本的 Elixir 主管和工作人员,以测试 Erlang VM 的热代码重载功能。这是主管:
基本上,我正在启动一个任务工作者,即:
这是版本0.1.0
。所以我运行这些:
我得到了一个很好的释放。我运行它,./rel/rel_test/bin/rel_test console
一切正常。现在我要修改代码和版本,所以这里是0.1.1
监听器的版本:
现在我跑
并appup
创建成功,然后进行热升级
并且升级有效,但升级后它会杀死我的听众。
我用一个nc localhost 9000
(9000 是监听器的端口)进行了测试,保持连接并运行升级命令。连接被终止,我在控制台中收到一条消息:
那么为什么会发生这种情况呢?是我缺少的东西,还是预期的行为?不就是热代码重载的用例吗?
我读过LYSE,但作者说运行代码应该继续运行,只有升级后进行的外部调用才能使用新版本。
那为什么要杀工人?
erlang - Erlang 整数有大小限制吗?
我知道 Erlang 有任意大小的整数,但是标准实现之一有最大限制吗?如果是这样,是什么?
c - 在 Elixir/Erlang 中运行 C 代码:端口还是 NIF?
我发现 Elixir 程序可以通过NIF(本机实现的函数)或OS-level ports运行 C 代码。阅读了这些和类似的链接后,我不是百分百清楚何时使用一种或另一种方法(或完全是其他方法?),并且觉得为我自己和其他新手提供直接比较会很好. 谁能提供?
erlang - Erlang 集群同步问题
我有一个在不同主机上运行的 4 个节点的 erlang 集群。我最近遇到了一个集群问题,即梁进程正在其中一个节点中运行,但应用程序没有运行。我可以看到我的 OTP 应用程序仍在保持客户端连接。客户端连接是 tcp 连接。
每个节点都能够 ping 其他节点,但该节点似乎已停止连接到其他节点。
很奇怪,但几乎发生了同样的事情。你知道他们可能有什么问题吗?
tcp 重传会导致这种情况吗?