问题标签 [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.
c - 使用 MRuby 编译 Contiki 应用程序
我正在尝试编译一个包含 MRuby 库并执行一些简单的 ruby 代码的 Contiki 应用程序。问题是,我不知道如何在编译中包含 MRuby 库。
这是项目:https ://github.com/matus-tomlein/contiki-mruby-example/tree/wrong
我要执行的代码在contiki-mruby-example.c
. 问题可能出在Makefile
. 这是我目前拥有的:
执行时出现以下错误make
:
我要包含的 MRuby 代码位于mruby/include
.
这是一个类似的问题:How to use external libraries and compile them with a Contiki application
But using TARGET_LIBFILES
or LDFLAGS
didn't help. 我想那是因为我正在编译纯源代码,而不是库。
我可能缺少一个简单的答案。感谢您的任何建议。
ruby - 为什么某些 mruby 示例无法编译?
我一直在尝试将 mruby 设置为在 C 中使用,但我只成功编译了一个简单的“hello world”示例。其他示例无法编译:当我尝试编译https://github.com/mruby/mruby/blob/master/tools/mrbc/mrbc.c时,我得到了这个:
当我尝试以他们建议的方式()gcc -Iinclude hello.c lib/libmruby.a -lm -o hello.out
(实际上:在类似的方式。我已经尝试了两种方式。)我明白了:
看起来我缺少一些文件或其他东西,但我不确定是什么。我正在使用 mruby 1.1.0。我有 mruby-1.1.0/include,其中包含 mrbconf.h、mruby.h 和 gcc 搜索路径中的文件夹 mruby,以及 LIBRARY_PATH 中的 mruby-1.1.0/build/host/lib(即使在我的示例中)出了什么问题,我只是将它们放在与我正在编译的文件夹相同的文件夹中)。
知道我的安装和/或我的编译方式有什么问题吗?
c - 在 C++ 中调用 mruby VM
我正在尝试将一些用 C 调用的 ruby 解释器代码转换为 mruby 格式。我被困住了,希望能在这里得到帮助。
我的 testruby.rb 文件内容:
下面是我的 C++ 文件的片段:
问题一:
上述方法,我作为一个模块发送到 mruby 解释器,以便 .rb 文件可以调用它。
请让我知道以下格式是否正确:
问题2:
如何将以下 ruby 解释器代码转换为 mruby?
rb_require("./testruby"); // 其中 testruby 是我的 testruby.rb 文件
现在我想从 testruby.rb 文件中调用 helloworld 方法。如何调用 mruby 的等效方法(用于 rb_funcall)?
如何在我的 c++ 代码中读取 helloworld 方法的返回值?
问候,
c - 通过 C 读取 mruby 程序的“返回”值
我在 C 中调用 mruby VM 时遇到问题。我可以调用 mruby vm 并从 C 执行 ruby 代码。我也可以触发 ruby 代码中定义的方法。但是我在尝试读取 ruby 方法的返回值时遇到了问题。我在下面提供了我的示例场景。
代码:
我不确定这是否是调用 ruby 方法的正确方法?我在网上找不到任何文档或示例。任何尝试通过 c ( 使用 mruby ) 调用 ruby 代码的人可以帮帮我吗?
问候,
mruby - 与 require 和 require_relative 相关的 mruby 问题
我正在尝试使用 mRuby。我在本地编译了 mRuby 源代码。我试过这个简单的例子:
公司
测试1.rb
test2.rb
我使用 mruby 执行了两个测试程序。mruby.exe test1.rb mruby.exe test2.rb
在这两种情况下,我都会收到错误:
mRuby 不支持'require'吗?
mruby - mruby-require 错误:NoMethodError:主要的未定义方法“puts”
我设法从 https://github.com/mattn/mruby-require添加 mrubygem - mruby-require 编译 mruby 代码
但是,当我尝试调用 require './' 时出现错误。下面是我的代码:
公司
测试1.rb
当我执行 test1.rb 时,我从 mruby 收到此错误:
经过一些分析,我发现'puts'不适用于mruby。事实上,在添加 mruby-require gem 之后,没有 ruby 代码被执行。我是否需要使用 mruby-require 添加任何依赖项?
有人能帮助我吗?
更新:根据要求粘贴 build_config.rb 的内容。我已经删除了评论的行。
build_config.rb
c - 编写自定义 IRB
我正在玩各种小硬件。试图学习它。我想运行mruby。我已经为我的硬件编译了。并拥有框架以及包含 MIRB 和 MRUBY 箱。
但我可能会喜欢我自己的 IRB 代码。我是一名程序员,但自大学以来从未处理过如此低水平的事情。
我在这个过程中从哪里开始,我的 google-foo 没有削减它。
nim-lang - 在 nim 应用程序中包含一些 mruby 是否可能/容易?
我目前正在尝试学习 Nim(它进展缓慢 - 不能投入太多时间)。另一方面,为了获得一些工作代码,我想对我正在使用 ruby 开发的 Nim 应用程序的部分进行原型制作。
由于 mruby 允许在 C 应用程序中嵌入 ruby 子集,并且由于 nim 允许将任意 C 代码编译为函数,所以感觉这应该相对简单。有人做过吗?
我特别在寻找使用 Nim 的时髦宏功能分解成内联 ruby 代码的方法。我要自己尝试,但我认为肯定有人已经尝试过和/或提出比我目前的学习状态更优雅的解决方案:)
rust - How can I make a C pointer wait if called from a different thread, but work in a callback?
I'm trying to implement a thread-safe version of an mruby Rust binding.
mruby has a *mut MRState
(a wrapper over mrb_state
). You need to pass this *mut MRState
when running mruby code. The mruby code has a Rust callback that it can call where it passes the same *mut MRState
variable.
This *mut MRState
is wrapped in a MRuby
struct
which I'm trying to make thread-safe. The problem is that if I wrap MRuby
in a Mutex
, it won't be able to re-enter inside of the Rust-written callback.
I'm currently wrapping MRuby
in a RwLock
but it's not very useful. The *mut MRState
should be in a more permissive lock that lets it run inside of the callbacks.
How can I make MRuby
work in both the callback and be forced to wait if called from different threads?
Apart from this, I'm having an issue with the *mut MRState
inside MRuby
which is not Send
& Sync
.
This is an example of the callback.
This is an example of running mruby on a thread. mruby
variable here could be an Arc<RwLock<MRuby>>
.
The main reason why I want to implement this is not functionality. Actually, it's catch_panic
which I need in order to catch any possible panics from the Rust callback. catch_panic
runs in another thread, so I need to make MRuby
thread-safe. Rust will stabilize std::panic
only in 1.9.0 and until then I would need a working solution that doesn't need Rust nightly.
CORRECTION
Due to a bug in Rust's documentation generation, catch_panic
is only marked as deprecated and not as unstable, even though it is. So a very simple solution is to just use std::panic
and give up on thread-safety. I'm going to leave the question open, though, in case there is a good answer to this, even though my personal interest is lower now considering the aforementioned.
c - mruby 和嵌入式语言
我正在学习 mruby,我到处都在阅读的支持它的论点之一是它是
我看过一些混合了 C 和 mruby 的代码。但是我不是很清楚嵌入式语言到底是什么,它的优点是什么?例如,我可以用 C 编写所有内容,那么 mruby 为我的 C 应用程序带来了什么?我为什么要制作这种混合物或嵌入?
请通过一个简单的示例帮助我理解,这是嵌入到 ac 代码中的示例 mruby 代码:
我也对嵌入式系统语言和嵌入式语言感到困惑。
请帮助我理解这一点。