问题标签 [erlang-shell]
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 中使用 spawn_link 捕获
我是二郎的新手。现在,我正在学习流程的链接。在接下来的实验之后我有点困惑:
正如我所料,我从创建的进程中获得了 Pid,并且该进程失败了 - 因为未知的模块和功能 - 所以我收到了关于它的消息。
之后我尝试了下一个:
而且我不明白为什么解释器进程无法提取 Pid 并失败
谢谢
附言
简而言之:为什么下一个代码会破坏解释器进程(** 异常错误:没有匹配 <0.40.0> 的 try 子句)
以及为什么这段代码不会破坏解释器进程(返回 <0.37.0>)
???
erlang - 为什么我的重新编译过程不能从控制台内部工作?
我在 Rebar 下捆绑了一个 Erlang 应用程序(现在只有几个库模块)。目录结构如下所示:
MyProject$ ./rebar compile 按预期响应。
我打开 Erlang shell ( MyProject$ erl -pa apps/*/ebin myapp ) 并且可以很好地执行导出的函数。
现在我编辑一个源文件,添加一个导出的函数,然后重新编译。但是,哇——当我尝试执行新导出的函数时,我得到一个错误——未定义的函数。我在 Erlang shell 中执行 myAppModule:module_info/0 。它没有列出我刚刚添加到源文件中的新函数,也没有列出我对其他函数所做的更改。
我删除了相关的 *.beam 文件并重新编译。仍然看不到我的变化。
但是,现在我 q() 退出 Erlang shell 并重新进入。你知道什么!一切正常,包括我的新功能。
为什么会这样?
windows - 如何在 Windows 上使用自定义的 couch.ini?
我正在尝试使用一些第三方代码
这在 Windows 上不起作用,因为该couchdb.bat
文件不会将参数传递给 CouchDB。所以 CouchDB 总是在默认端口 (5984) 上启动,而不是在./my/couch.ini
(15984) 中指定的端口。
我尝试使用批处理文件的内容手动传递参数。IE
但这似乎没有做任何事情,即它仍然在 5984 上。
我尝试了 的一些变体/full/path/to/my/couch.ini
,例如C:/full/path/to/my/couch.ini
andC:\full\path\to\my\couch.ini
和C:\\full\\path\\to\\my\\couch.ini
,但没有区别。
有没有人能够使用自定义couch.ini
文件在 Windows 上运行 CouchDB?
erlang - Erlang shell 无法显示表达式的结果
可能重复:
Erlang shell 问题
我在我的 macbook pro 和带有 ubuntu 的笔记本电脑上安装了 erlang 5.9.2。但他们都没有同样的问题:
我打开终端并输入 erl,我可以看到 erlang 的版本,所以它运行良好。但是我输入了一个像 2 + 3 这样的表达式,我看不到结果。像这样
任何人都可以帮助解决这个问题吗?
多谢!
syntax - Erlang 在记录构造上给出语法错误
我在模块中有以下代码:
当我尝试在 Erlang shell 中编译它时,会出现类似
syntax error before Opts1
. 知道上面的代码可能有什么问题。请注意,代码取自以下网站:
Record example in Erlang。
erlang - R15B03 中的 Erlang 退出/2 错误
来自这里的简短副本:
exit(Pid, Reason) -> true
类型:
Pid =
pid()
原因 =term()
Reason
向进程发送带有退出原因的退出信号Pid
。
normal
如果 Reason 是除or之外的任何术语,则以下行为适用kill
:如果
Pid
is not trapping exits,Pid
它本身会以 exit reason 退出Reason
。如果Pid
是捕获出口,则出口信号被转换为消息{'EXIT', From, Reason}
并传递到 的消息队列中Pid
。From
是发送退出信号的进程的 pid。另请参阅process_flag/2
。如果
Reason
是 atomnormal
,Pid
则不会退出。如果它正在捕获出口,则出口信号将转换为消息{'EXIT', From, normal}
并传递到其消息队列。If
Reason
是 atomkill
,即 ifexit(Pid, kill)
被调用,将发送一个不可捕获的退出信号,该信号Pid
将无条件退出并带有 exit reasonkilled
。
当用作 a和as a时,我正在玩弄该exit/2
函数及其行为。self()
Pid
normal
Reason
不应该是只向shell进程发送“正常”退出消息,所以没有理由退出吗?
相似地:
但:
concurrency - Erlang 控制台挂起此代码段
对于有 Erlang 经验的人来说,这可能很容易,但我没有。我试图制作一个斐波那契进程树。然后它将接受一条消息,我可以在其中计算传递给它的那个节点下所有节点的总和。
当我运行这个:
Erlang 控制台挂起。无法弄清楚为什么,但它与接收子句有关吗?
是的,这是作业,我的老师这周不在那里,这就是我在互联网上寻找替身的原因。
erlang - 二郎:TCP服务器
嗨,我是 Erlang 中的一只新蜜蜂,但设法创建了一个简单的 TCP 服务器,它以被动模式接受客户端并显示消息。每次新客户端连接到服务器时,我都会生成一个新进程。有没有一种方法可以使用客户端连接时产生的进程向客户端发送消息。
这是代码。
如果我做的话,我可以有一些事情吗?
Pid!{"Some Message"}
. 并且消息被发送到与具有非阻塞io的进程关联的套接字,
erlang - Erlang shell 没有输出或错误消息
有时,当我尝试在 Erlang shell 中运行命令(例如从模块调用函数等)时,shell 不会给出任何输出或错误消息,只是返回。我确信我以正确的形状给出了命令(最后有一个点等)。为了解决这个问题,我必须在 shell 中给出以下命令:
然后外壳打印一个长原子或任何东西,然后我可以正确运行我的原始命令。有没有人见过同样的问题?这是什么原因?
debugging - 如何调试无法启动的 erlang 应用程序
如果我编写一些 erlang 代码来构建监督树,然后在启动时使用以下命令启动应用程序,可能很难找出它为什么不起作用:
(myapp 示例模块)
假设我的应用程序启动了一个主管 myapp_sup。myapp_sup 轮流启动多个主管(比如说 server_sup、database_sup、another_sup)。
这些主管将启动一些 gen_servers。
在某些时候,如果我的代码中有错误,我找不到它!
我在一些 gen_server 的 init 回调中写了一个对 somemodule:functionthatdoesntexists() 的调用。
vm 所说的只是“init terminating in do boot”,然后显示错误匹配的错误位置、精确的文件和我的顶级模块(myapp)的行。
(不匹配,因为 ok = application:start(...) 将不匹配)。
我查看了 erl_crash.dump 文件,没有关于这个未定义函数的信息(但我在原子列表中找到了它)。
所以,我写了一些日志来大致查看错误在哪里,但是我必须手动启动我的 gen_servers 以获取正确的错误信息。
我错过了什么,我怎么能更快地弄清楚?
谢谢