GIMPLE是GCC系统的内部表示之一.可以通过-fdump-*compiler参数转储GIMPLE或任何其他内部表示.但有没有办法编译转储的GIMPLE或任何其他表示?似乎GCC没有GIMPLE前端.我想做的是转储,分析,修改然后重新编译转储的GIMPLE以执行各种代码检测.
PS我知道GCC插件,我知道LLVM/Clang,所以请尽量回答确切的问题而不建议替代解决方案.谢谢!
我真的很喜欢live smalltalk环境(虽然我只用Pharo进行了一些实验)但是有一件事我为什么不能真正用它来进行日常开发.似乎无法从smalltalk系统创建本机独立可执行文件.本机独立可执行文件意味着创建单个可执行文件(Windows上的PE,Linux上的ELF,macosx上的Mach-O),用户可以通过双击它来运行,而无需安装任何其他执行环境.我错过了什么,实际上可以使用smalltalk创建本机独立可执行文件?
如果我们具体谈论Pharo.我知道Pharo的环境包括高效的及时编译器(从Pharo的VM字节码生成真正的本机代码),我知道可以通过剪切我的应用程序不需要的代码来删除VM映像.所以基本上我们已经拥有了几乎所有东西(我猜的链接器除外)能够创建本机独立可执行文件.如果我们在图像中放置所有代码生成内容(对于所有目标处理器),交叉编译也不应该成为问题.
我知道在smalltalk世界中,将整个VM映像与运行时环境分开交付被认为是一件好事,因此用户可以破解他/她正在使用的软件.但是,我没有看到为什么不能将您的smalltalk软件作为完全编译的本机独立可执行文件提供的任何理由.你能解释一下为什么在smalltalk世界里做这件事并不常见吗?是否有任何良好的smalltalk实现允许这样做?
总结这一切.我梦想有一个实时的smalltalk环境,在那里我可以开发和测试我的软件,但随后(当软件实际上已准备好交付时)将其交叉编译为我的单一开发机器中的windows,linux和macosx的本机可执行文件.那真是棒极了.
如果我想使用LISP/Scheme开发复杂的GUI应用程序或游戏,我有哪些选择?我知道Racket有一个不错的GUI工具包,但还有什么可以尝试的吗?以下是我想要的功能列表:
显然,Racket在这里很合适,如果没有好的替代方案,我想我会使用Racket.但是我想知道我是否在功能编程领域缺少一些东西(我希望它是基于LISP/Scheme的系统,但是基于Haskell/OCaml/Prolog的东西也是可以接受的,请不要C/C++和CLR/JVM的东西).
我知道Haxe编译器是用OCaml编程语言编写的,这对于编译器开发人员来说是一个很好的选择。然而最近我发现了 Luaxe 项目,它似乎是 Haxe 的全功能 Lua 后端,并且是作为纯 Haxe 库开发的。我查看了该项目的代码,它使用某种宏魔法在编译时生成 Lua 源代码。所以我想问是否有可能在不深入OCaml并重建编译器的情况下用纯Haxe实现一个全功能的后端?如果可以的话有什么限制吗?有没有关于如何在纯 Haxe 中实现后端的好文章?
据说Pharo的VM(CogVM)在Smalltalk中被开发,测试,分析等,但是Smalltalk代码被转换为C,然后使用默认的系统C编译器与一些OS抽象C代码一起编译.
好吧,我想做类似的事情,我不想使用Pharo开发,测试和分析代码,但是然后将其编译为C.我怎么能这样做?如何编译到C的工作原理?Pharo是否附带Smalltalk to C转换器?我怎么能调用它?它是否编译完整的Smalltalk,或者我必须使用某种Smalltalk子集?有没有关于它的好文件?