问题标签 [mruby]

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 回答
102 浏览

c - mruby:生成可读的 c 代码

我从 mruby 开始,我需要一点使用 mrbc 生成可读的 .c 代码。我在关注这篇文章

这里提到:

将生成带有一些内容的 test_program.c。

但是在我的机器上,当我运行这个命令时它说:

mrbc:应指定输出文件以编译多个文件

然后我尝试了

哪个有效,生成 c 文件,但其内容只是字节码:

这基本上是我们在 c 代码中放入的 mruby 代码的字节码。

如果您查看Readable C Code (.c)部分下的博客 m ,这实际上应该生成了 c 代码。

为什么 mrbc 不生成可读的 c 代码?

0 投票
1 回答
58 浏览

c - 在 mruby 脚本文件中进行更改后,我是否需要重新编译 C-mruby 应用程序?

我有一个 C 应用程序。C 应用程序需要一些包含mruby代码的脚本文件。是否可以使用当前的mruby实现运行此应用程序而无需重新编译(在我对 mruby 脚本进行任何更改之后)?如果是怎么办?

但是我在这里没有找到任何这样的方法地址。如果在 C 应用程序中(嵌入了 mruby)我必须重新编译整个应用程序,那么mruby的优势是什么?

我对脚本语言的想法是,如果我更改mruby脚本文件中的任何内容,则不需要重新编译整个应用程序,这将提高生产力。

我认为这是在本机应用程序中使用任何脚本文件的一个优势。

请帮助我理解这一点。

0 投票
2 回答
236 浏览

rbenv - 使用 rbenv/ruby-build 安装后如何包含 mruby?

我正在尝试编译本教程中的“源代码 (.c)”示例。

我已经使用 rbenv 安装了 mruby:rbenv install mruby-1.2.0

尝试编译程序时出现错误:

通过 rbenv/ruby-build 安装时,我应该如何引用 mruby 库?

0 投票
1 回答
517 浏览

ruby - 如何为 WordPress 多站点编写 h2o 网络服务器 mruby 处理程序?

这就是 Apache 所需要的。我想知道我是如何在 h2o 中做到这一点的。

// 在这个 btw 上浪费了 300 声望。

0 投票
1 回答
161 浏览

c - mruby 中的最小静态编译

我有一个简单的例子:

如何在没有库的情况下以静态模式编译它libmruby.a?我只想添加/src/*.c文件。

我不需要Array。没有文件访问权限,没有其他 gem ( time, test, sprintf, random, 等)

哪些文件很重要,哪些文件可以通过?我不需要 gem 编译器。如果可能的话,我只能运行字节码。

我怎样才能做到这一点?

0 投票
1 回答
126 浏览

parsing - 嵌入 mRuby:解析错误后检索 mrb_parser_message

我正在尝试将 mRuby 嵌入Max MSP对象中。我要设置的第一件事是在 Max IDE 控制台窗口中记录错误。为此,在我使用 mrb_parse_string 解析代码(存储在 C 字符串中)后,我希望解析器的 error_buffer 数组中存在错误,但该数组中的结构始终为空( lineno 和 column 设置为 0 和 message 集为 NULL ),即使出现错误。

在解析代码之前是否有一种特殊的方法来设置解析器,以便在发生错误时正确填充其 error_buffer 数组?我已经查看了 mirb 来源,但它看起来不像。我迷路了。这是我正在使用的代码,取自我用作测试的一个小型 C 程序:

当通过以下错误的 ruby​​ 代码时:

前面的代码输出:

我不知道第一行来自哪里,因为我编译了 mRuby 并定义了 MRB_DISABLE_STDIO 并且按照第 14 行和 mrbconf.md 中的建议,但它是准确的。

第二行是我的代码的实际输出,显示返回mrb_parser_state的结构error_buffer是空的,这令人惊讶,因为解析器确实看到了错误。

0 投票
1 回答
221 浏览

ruby - mruby:如何执行 shell 命令?

在 mruby 中,我如何使用%x(),``或运行 shell 命令system?有我可以使用的mgem吗?

0 投票
1 回答
113 浏览

c++ - MRB_THROW 导致 libc++abi.dylib 中的错误

我正在尝试使用一些额外的 gem构建ios-ruby-embedded项目的修改版本,包括mruby-mgems列表中的mruby-marshal gem (其中包括一个 .cpp 文件)。我可以让它构建和运行,但如果我引发任何异常,应用程序在从 error.c 调用时崩溃,并显示以下消息:MRB_THROW

我怀疑问题是如何编译和链接 mRuby 异常处理的冲突:根据文档,如果包含 C++ 代码,它可以使用 setjmp/longjmp 处理或 C++ 异常;但是,我无法弄清楚我需要什么样的配置选项组合才能让它工作。

为了构建它,我对项目进行了一些更改:

  • 在 Rakefile 中为每个目标添加 conf.cxx 部分(复制 conf.cc 部分中的设置)
  • 在我正在使用的 Xcode 项目中将“-lc++”标志添加到“其他链接器标志”(源自mruby-ios-example项目)
  • 在 mruby-marshal 项目中,使用mruby-pure-regexp gem 代替mruby-onig-regexp依赖
0 投票
0 回答
60 浏览

c - 无法在 Centos 7 上安装 ngx_mruby

我想在centos7上安装带有模块ngx_mruby的nginx,但我遇到了编译错误。

按照此处描述的步骤,我做了(在我的主目录中):

make过程中,我得到了错误:

我尝试了另一种安装 ngx_mruby 的方法:

但同样的错误发生在make. 然后我用谷歌搜索,但似乎很少有人有同样的问题。

这是一个常见的错误,还是有什么方法可以避免这个错误?

谢谢你。


0 投票
1 回答
53 浏览

ruby - const_get 如何在 mruby 中工作?

mruby 1.3.0 (2017-7-4)使用build_config.rb

我发现const_getmruby 中的方法与 ruby​​ 中的方法不同。在 ruby​​ (2.4.0p0) 中,Class.const_get('Fixnum')返回常量Fixnum,而在 mrubyClass.const_get('Fixnum')中导致错误uninitialized constant Class::Fixnum (NameError)

然后,我尝试了另一个示例:class Hoge; end; class Hoge::Fuga; end. 在 ruby​​ 中,两者都Class.const_get('Hoge::Fuga')给出Hoge.const_get('Fuga')常量Hoge::Fuga。在 mruby 中,只有Hoge.const_get('Fuga')返回Hoge::Fuga