首页 文章

加快Erlang编辑,编译,运行/调试周期

提问于
浏览
8

编辑Erlang应用程序,编译代码并查看运行结果的最快方法是什么?最好在最后一步跳入Erlang shell .

我目前的新手设置:

  • 编译应用程序并启动erl shell的脚本 .

  • 然后我输入应用程序:start(foo) .

  • 当我修复拼写错误时,我使用c('module')重新编译模块并重新启动应用程序 .

有更快的方法吗? BTW . 我选择的编辑是Emacs .

4 回答

  • 2

    这是我的设置:

    • 在开发过程中,我将Erlang shell保持在一个单独的终端窗口中打开 .

    • 我从编辑器开始编译(使用组合键),或者只是在源目录中键入 make .

    • 编译完成后,我在Erlang shell中输入 l() ,一次加载所有已更改的模块 . 你可以在这里找到这个和一些其他有用的宏:http://www.snookles.com/erlang/user_default.erl

    很少需要重新启动整个Erlang应用程序 . 重新加载已更改的模块是一种更常见的用例,通常足以应用您的更改 .

    关于应用程序启动:如果您的应用程序依赖于其他应用程序,则应用程序:start()将失败,直到您启动所有依赖项 . 因此,编写辅助函数 <your-app-name>:start() 是很常见的 . 这是example . 另一个有用的功能是 <your-app-name>:stop() .

    应用所有这些技术后,工作流程将如下所示:

    • 启动Erlang shell并保持打开状态;输入 <your-app-name>:start().

    • 进行更改;运行编译;在Erlang shell中输入 l() .

    • 当更改需要重新启动应用程序时,请键入 <your-app-name>:stop(), <your-app-name>:start().

  • 12

    您可以将rebar视为构建工具 . make:all/0 和整个make模块也可以提供帮助 . 要从shell显式重新加载模块,您可以使用 l(Module) . 最后,您可能还有兴趣在所有Erlang应用程序中创建Erlang release到"wrap" .

  • 2

    编辑和编译是由我使用的IDE(Eclispe with erlide)完成的 .

    我还创建了一个脚本,它启动了我的应用程序和有用的工具 . 该脚本仅用于开发时间 .

    为了重新加载更改的源,然后重新编译垃圾箱,我使用mochiweb的重新加载器 . 重新加载器观察bin目录,如果有变化,它会加载模块并运行eunit测试,如果你有一些内部 .

    例:

    erl A 5 K true -name @ 127.0.0.1 -pa $ PWD / ebin $ PWD / test $ PWD / deps / * / ebin -boot start_sasl -s reloader -s toolbar -s

  • 1

    您还可以尝试的是erlbuild . Erlbuild是一个简单的应用程序,它在src目录中查找已更改的源文件,如果找到某些文件,则会再次编译并加载模块 . 加载模块后,erlbuild运行模块的测试 .

    您可以在以下位置找到该项目:https://github.com/ulfa/erlbuild

    〜乌尔夫

相关问题