问题标签 [parse-transform]
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:用真正的“乐趣”调用的函数应该用 parse_transform 转换?
我正在看 O'Reilly Erlang Programming book 并且有一个在 erlang shell 中运行的示例,如下所示:
但是,当我在代码中(而不是在 shell 中)执行类似操作时:
我得到了FUBAR:
(顺便说一句,我想知道为什么错误不是'用......调用的函数'可能是这样 io:format("~p", TheErrorMessage) 会换行?)
无论如何,我已经放弃了选择,转而使用 ets:foldl,因为后者有效,并且 - 通过有趣的异常 - 允许我在找到第一个项目时终止遍历。但是,我还是很好奇...
...世界卫生大会?(我在 parse_transform 上做了一些阅读,而且我对 erlang 足够陌生,以至于我错过了连接。)
erlang - 为什么“强烈建议程序员不要进行解析转换”?
强烈建议程序员不要进行解析转换,并且不为遇到的问题提供支持。
为什么强烈建议程序员不要使用 parse_transform/2?以后会不会支持这个?除了 parse_transform/2 之外,是否有一种机制可以在编译之前注入代码(运行时字节码修改)或修改源代码?
erlang - 如何将透析器与解析转换模块一起使用
我正在尝试在我的 erlang 应用程序上使用透析器,但输出如下:
我试图放在playerdupli.erl
与 相同的目录中party2.erl
,但输出是相同的。exprecs.erl
在部门:deps/parse_trans/src
.
代码编译并运行没有错误,包括 parse_transform 的东西。我在 MinGW(Windows 8 64)上。任何想法 ?
谢谢
security - 在不开发新语言的情况下如何为 Erlang 添加功能?
我想知道有人会如何在不将其变成新语言并在应用程序端保持最大向后兼容性的情况下为 Erlang添加基于能力的安全性?
erlang - Erlang parse_transform 第二个参数
定义 aparse_transform
时,该函数有两个参数:
参数的含义是什么Options
?我正在尝试定义其他转换选项。
makefile - 在 Common Test 测试运行期间较大的调用失败
我决定在我的 Erlang 项目中设置 lager。我正在使用 erlang.mk,所以我添加了
到我的 Makefile。我可以毫无错误地运行make all
和编译模块。我还可以启动erl
控制台并使用 lager 运行包含模块的应用程序。在控制台会话期间不会生成错误,并且会记录更多消息。似乎一切都很好(这是我第一次使用啤酒)。但是,当我运行 Common Test 时,较大的调用失败:
10:11:17.174 [error] CRASH REPORT Process <0.238.0> with 2 neighbours exited with reason: call to undefined function lager:info("Params: ~p", [[]]) in gen_server:init_it/6 line 328
由于看起来我正在测试的模块已经正确编译,我认为这是一个较大的模块不存在的问题。但是,如果我添加这个:
上面第一个啤酒调用成功,打印啤酒的模块信息。我假设我正在进行的日志记录调用正在利用一些解析转换魔法来工作,而这在我的 Common Test 运行期间不存在。
任何建议都非常感谢!
erlang - Lager - 解析转换
我已使用钢筋将 Lager 添加到我的应用程序中。它编译得很好,当我启动我的应用程序时,Lager 启动正常。但是,当我调用 lager:debug/1 时收到 undef 消息,它告诉我lager_transform
解析转换没有被拾取,但我已将以下内容添加到我的 rebar.config 中:
我当然是用钢筋编译的。