首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C(或C++)程序中嵌入perl6是可能的吗?

在C(或C++)程序中嵌入perl6是可能的吗?
EN

Stack Overflow用户
提问于 2018-06-09 06:19:59
回答 3查看 536关注 0票数 12

在perl5中,通过回调可以很容易地在libperl.so中链接、设置一些变量并运行一些代码。在perl6中有这样做的故事吗?

EN

回答 3

Stack Overflow用户

发布于 2018-06-09 06:28:23

我认为您可以在https://metacpan.org/pod/Inline::Perl6找到这方面的最新技术,它在Perl5中嵌入了Rakudo。

票数 7
EN

Stack Overflow用户

发布于 2018-06-09 15:34:14

除了@伊丽莎白-马蒂森的评论之外,没有,没有这样的事情。虽然perl解释器是一个整体,可以相对容易地转换为.so库,然后连接到一些API端点,而Perl 6是两个重要的东西:一个虚拟机,无论是Java还是MoarVM,外加解释器Rakudo。可能会出现这样一种情况,即您不需要嵌入Java或MoarVM,因为这两种语言将在同一个VM中运行。例如,想想嵌入到Clojure中的Perl6。或者嵌入在007中的Perl6,两者都在MoarVM中运行。这很容易,而且您的目标是具有相同功能的VM。但是C++、C和Perl6有一个非常不同的抽象虚拟机作为目标;想想Unicode处理,或者并发接口。在C中嵌入Perl6基本上就是从C运行Perl6程序,而不是从命令行运行它们。

有可能以同样的方式结束Perl,一些Perl6功能,如Unicode handlinggrammars,可能最终移植或嵌入到其他语言中。但是我现在还没有看到将Perl嵌入到C或C++中的明确用例,因此,投入一些精力在这类事情上会更好地应用于完全不同的东西。

票数 4
EN

Stack Overflow用户

发布于 2018-08-07 02:16:54

这不是一个答案,但假设我已经有一个已经存在的C程序,它被设计为使用.dlls或.sos插件,它们是通过dlopen或LoadLibrary加载的,使用dlsym或GetProcAddress找到一个API入口点,然后使用某种类型的句柄调用该入口点,让插件回调回主进程。

现在,假设我希望我的插件(在这个.dll或.so中)加载moarvm,然后运行一些perl6脚本,该脚本反过来使用NativeCall回调到主进程中。我该怎么做呢?

或者,假设我想让我的插件(在这个.dll或.so中)加载jvm,然后运行一些perl6脚本,等等,我该怎么做呢?

仅仅为了加载perl6而加载perl5似乎是一个愚蠢的解决方案。这可能行得通但是..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50769069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档