问题标签 [crystal-lang]

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.

0 投票
1 回答
287 浏览

crystal-lang - Crystal lang,是否可以在不等待 GC 的情况下显式处理(释放)实例(对象)?

标题说明了一切。也许有一种方法可以像这样调用def destruct; delete self;end

0 投票
1 回答
383 浏览

garbage-collection - 将 glib 绑定​​到 Crystal lang(GC 问题)

我正在尝试将 glib 中的一些函数绑定到 Crystal 中。我已经这样做了,它的工作原理:

但是它引入了内存泄漏:使用 g_* 函数创建的对象永远不会被垃圾收集。

是否有可能使 glib 在 Crystal 中与 Boehm GC 一起玩得很好?受PCRE的启发,我试过这个:

希望覆盖/重新定义g_mallocg_free功能。但它不起作用:它因分段错误而失败。

任何想法如何让 glib 与 GC 一起玩?我发现了某种相关的问题,但它没有帮助我:垃圾收集与 glib?

提前感谢。

0 投票
3 回答
3557 浏览

linux - 如何在捕获输出的同时在 Crystal 中执行 shell 脚本?

我想在处理 stdout 和 stderr 输出时执行一个 shell 脚本。Process.run目前,我使用标准输入、shell=false标准输出和标准错误的三个管道执行命令。我生成纤程以从 stdout 和 stderr 读取并记录(或以其他方式处理)输出。这对于单个命令非常有效,但对于脚本却非常失败。

我可以shell=true在调用时简单地设置Process.run,但是查看 Crystal 源代码似乎只是在命令行前面加上“sh”。我试过在前面加上“bash”,但没有帮助。

重定向(>file)和管道(例如curl something | bash)之类的东西似乎不适用于Process.run

例如,要下载一个 shell 脚本并执行它,我尝试了:

cmd = %{bash -c "curl http://dist.crystal-lang.org/apt/setup.sh " | 重击}

Process.run(cmd, ...)

添加首字母bash是希望它能够启用管道操作员。它似乎没有帮助。我还尝试分别执行每个命令:

script.split("\n").reject(/^#/, "").each { Process.run(...) }

但是当然,当命令使用重定向或管道时,这仍然会失败。例如,该命令echo "deb http://dist.crystal-lang.org/apt crystal main" >/etc/apt/sources.list.d/crystal.list简单地输出:

“deb http://dist.crystal-lang.org/apt水晶主”>/etc/apt/sources.list.d/crystal.list`

如果我改用``反引号执行方法,它可能会起作用;但是我将无法实时捕获输出。

0 投票
2 回答
1972 浏览

crystal-lang - 有没有相当于 Pry for Crystal 的东西?

我对水晶语言很陌生。我想知道Crystal中是否存在像Ruby's Pry这样的调试器?

这意味着您可以在程序停止执行时在此行输入类似“binding.pry”的代码,并让您控制变量。

0 投票
1 回答
181 浏览

crystal-lang - 有没有办法用水晶自动重新编译(又名 nodemon / supervisor)

我只是在学习语言并玩一个我想在每次有变化时重新编译的文件。

在节点世界中是否存在等价物watch或类似物?nodemon

或者,当注意到更改时,可以使用一些 shellscript 来终止正在运行的应用程序?

0 投票
1 回答
296 浏览

crystal-lang - Crystal 中的速记块语法

是否可以在 Crystal 中使用块的简写,例如

此尝试返回错误:

... 期望一个函数类型,而不是 Symbol

0 投票
1 回答
1107 浏览

ruby - Why is Crystal faster than Ruby?

I would very much like to know what exactly makes Crystal faster than Ruby while code is so similar. The short answer could be that it is compiled, and Ruby is interpreted, yet I would like to understand more about the language specifications.

0 投票
1 回答
953 浏览

crystal-lang - 可以将 Ruby 宝石与 Crystal 一起使用吗?

开发人员说 Crystal 遵循 Ruby 语言语法。那么我(或者我将来会不会)只需要一个 Ruby gem 并且它可以神奇地构建并正常工作等等吗?

0 投票
1 回答
115 浏览

file - 获取已编译脚本的 __FILE__

如何获得我的 Crystal 脚本的编译版本来获得它自己的 __FILE__。这是一个例子。我有一个名为 ~/test.cr 的文件,其内容如下:

我通过 Crystal 编译脚本

接下来我运行 ~/test.compiled。我产生结果

即使 __FILE__ 实际上是

有没有办法让它产生

代替

0 投票
3 回答
810 浏览

http - Crystal-lang 文件/图片上传 http 服务器

是否有可能拥有一个基于水晶的网络服务器来处理文件上传?我一直在查看文档,以及许多水晶网络框架。我在任何地方都没有找到任何对简单文件上传功能的引用。

这可能吗,还是我必须寻找其他地方来处理我的图像上传?