在nim应用程序中是否可以/容易地包含一些mruby?

用户名

我目前正在尝试学习Nim(进展缓慢-无法投入大量时间)。另一方面,为了获取一些有效的代码,我想为我正在使用ruby开发的Nim应用程序的各个部分制作原型。

由于mruby允许将ruby子集嵌入到C应用程序中,并且由于nim允许将任意C代码编译成函数,因此感觉这应该相对简单。有人这样做吗?

我特别在寻找使用Nim的时髦宏功能分解为内嵌ruby代码的方法。我要尝试一下自己,但我认为有人一定会尝试过,并且/或者想出一种比我目前的学习状态还更好的解决方案:)

https://github.com/micklat/NimBorg

这是一个目标相似的项目。目前它以python和lua为目标,但是使用相同的技术与Ruby进行接口应该不会太难。

Nim中的一些功能可帮助您流畅地与外语进行交互:

1)使用Nim的点运算符从Nim调用Ruby

这些有点像method_missingRuby。您可以RubyValue在Nim中定义一个类型,该类型将具有点运算符,该点运算符可以将任何表达式转换为foo.barfoo.bar(baz)转换为适当的Ruby方法调用。可以将参数传递给通用函数,例如toRubyValue可以为各种Nim和C类型重载以将其自动转换为正确的Ruby类型。

2)从Ruby呼叫Nim

在大多数脚本语言中,有一种注册外部类型的方法,通常以特定的数据结构描述该外部类型,每个导出的类型必须填充一次。您可以使用一些通用编程和Nim的.global.var来自动创建和缓存通过点运算符传递给Ruby的每种类型所需的数据结构。将会有一个通用的PROC像getRubyTypeDesc(T: typedesc)可能依赖于typeinfotypetraits或由用户提供的一些超载特效,定义什么需要导出的类型。

现在,如果您真的想依赖mruby(例如,因为您有使用它的经验),则可以考虑使用.emit。编译指示直接输出多段mruby代码。然后,您可以要求Nim编译器仅生成源代码,您将在第二步中对其进行编译,也可以仅更改编译器可执行文件,Nim在编译项目时将调用该可执行文件(在以上链接的同一部分中对此进行了说明)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否有一些包装程序可以在伪造的屏幕分辨率下运行GUI应用程序?

来自分类Dev

是否有一些应用程序可以从流行的文件托管网站下载文件?

来自分类Dev

是否有一些应用程序可以从流行的文件托管网站下载文件?

来自分类Dev

在设计 iOS 应用程序时,是否可以在操作系统级别做一些事情,例如阻止用户使用其他应用程序?

来自分类Dev

在我的phonegap应用程序中的iPhone 5中获得一些额外的空白

来自分类Dev

.net核心应用程序是否可以具有一些具有客户端凭据流的API,而其他一些具有Open ID connect的API

来自分类Dev

需要一些想法在React Native应用程序中实现异步存储以保持用户登录应用程序

来自分类Dev

在应用程序中添加一些后处理代码时,重载的 dispatchKeyEvent 方法会冻结应用程序

来自分类Dev

我在应用程序中有一些错误

来自分类Dev

如何在ASP.NET应用程序中调用一些异步代码

来自分类Dev

如何在我的Android应用程序中添加一些“信息”按钮

来自分类Dev

将一些JSON文件加载到Spring Boot应用程序中的最佳方法

来自分类Dev

在Aurelia应用程序中,如何在路线之间添加一些过渡?

来自分类Dev

如何对AppStore中的更新应用程序版本执行一些操作

来自分类Dev

如何在我的Android应用程序中添加一些“信息”按钮

来自分类Dev

是否可以在`boost :: signal`中添加一些条件?

来自分类Dev

用MRuby编译Contiki应用程序

来自分类Dev

为什么在某些应用程序中从CLIPBOARD粘贴Shift + Insert,而在另一些应用程序中为什么粘贴PRIMARY?

来自分类Dev

是否有一些实用程序或插件在bash历史记录中包含当前目录?

来自分类Dev

应用程序是否可以包含用户可以控制应用程序权限的页面?

来自分类Dev

不幸的是,应用程序已停止!当我尝试在mainActivity类中插入一些编码时

来自分类Dev

当我在模拟器中运行我的应用程序时,它显示了一些自动布局错误

来自分类Dev

在 pom 中添加一些新包后 Eclipse 不允许我以 Scala 应用程序运行

来自分类Dev

是否可以在.exe或应用程序文件中包含Mysql.Data?

来自分类Dev

PowerShell /silent 或 /quiet 参数是否会安装可以包含在应用程序中的臃肿软件

来自分类Dev

如何在新项目中开发/包含Django自定义可重用应用程序?有一些指导方针吗?

来自分类Dev

我编译的任何Android应用程序都需要一些权限,即使是Hello World应用程序

来自分类Dev

为什么本机应用程序和“桌面”应用程序之间会有一些滞后?

来自分类Dev

我编译的任何Android应用程序都需要一些权限,即使是Hello World应用程序

Related 相关文章

  1. 1

    是否有一些包装程序可以在伪造的屏幕分辨率下运行GUI应用程序?

  2. 2

    是否有一些应用程序可以从流行的文件托管网站下载文件?

  3. 3

    是否有一些应用程序可以从流行的文件托管网站下载文件?

  4. 4

    在设计 iOS 应用程序时,是否可以在操作系统级别做一些事情,例如阻止用户使用其他应用程序?

  5. 5

    在我的phonegap应用程序中的iPhone 5中获得一些额外的空白

  6. 6

    .net核心应用程序是否可以具有一些具有客户端凭据流的API,而其他一些具有Open ID connect的API

  7. 7

    需要一些想法在React Native应用程序中实现异步存储以保持用户登录应用程序

  8. 8

    在应用程序中添加一些后处理代码时,重载的 dispatchKeyEvent 方法会冻结应用程序

  9. 9

    我在应用程序中有一些错误

  10. 10

    如何在ASP.NET应用程序中调用一些异步代码

  11. 11

    如何在我的Android应用程序中添加一些“信息”按钮

  12. 12

    将一些JSON文件加载到Spring Boot应用程序中的最佳方法

  13. 13

    在Aurelia应用程序中,如何在路线之间添加一些过渡?

  14. 14

    如何对AppStore中的更新应用程序版本执行一些操作

  15. 15

    如何在我的Android应用程序中添加一些“信息”按钮

  16. 16

    是否可以在`boost :: signal`中添加一些条件?

  17. 17

    用MRuby编译Contiki应用程序

  18. 18

    为什么在某些应用程序中从CLIPBOARD粘贴Shift + Insert,而在另一些应用程序中为什么粘贴PRIMARY?

  19. 19

    是否有一些实用程序或插件在bash历史记录中包含当前目录?

  20. 20

    应用程序是否可以包含用户可以控制应用程序权限的页面?

  21. 21

    不幸的是,应用程序已停止!当我尝试在mainActivity类中插入一些编码时

  22. 22

    当我在模拟器中运行我的应用程序时,它显示了一些自动布局错误

  23. 23

    在 pom 中添加一些新包后 Eclipse 不允许我以 Scala 应用程序运行

  24. 24

    是否可以在.exe或应用程序文件中包含Mysql.Data?

  25. 25

    PowerShell /silent 或 /quiet 参数是否会安装可以包含在应用程序中的臃肿软件

  26. 26

    如何在新项目中开发/包含Django自定义可重用应用程序?有一些指导方针吗?

  27. 27

    我编译的任何Android应用程序都需要一些权限,即使是Hello World应用程序

  28. 28

    为什么本机应用程序和“桌面”应用程序之间会有一些滞后?

  29. 29

    我编译的任何Android应用程序都需要一些权限,即使是Hello World应用程序

热门标签

归档