我正在尝试将我的 llvm pass 添加到 Rustc 中。 Rustc 有一个编译选项-C passes=val ,我们可以在其中添加额外的 LLVM passes 来运行。 然而,作为我的尝试,这个选项只能在 pass code 放在 LLVM 代码树内时接受 pass,但我想将我的 pa ...
我正在尝试将我的 llvm pass 添加到 Rustc 中。 Rustc 有一个编译选项-C passes=val ,我们可以在其中添加额外的 LLVM passes 来运行。 然而,作为我的尝试,这个选项只能在 pass code 放在 LLVM 代码树内时接受 pass,但我想将我的 pa ...
我正在尝试在 powerpc 架构上运行 Rust 程序。 当我在 C 中构建代码时,我使用标志 -mlongcall。 我试图了解如何在我的 rust 构建中使用“-mlongcall”标志。 一般来说,很高兴知道我是否可以在我的 Rust 构建中使用我从 gcc 中知道的标志。 ...
我一直在搜索,虽然这似乎是一个非常受欢迎的功能,但所有搜索结果似乎至少有一年的历史。 这件事的现状如何? 是否有一个很好的解决方案来在运行时评估任意 Rust 代码(如 Haskell 的提示)? 也许美里可以做些什么? ...
Rust Regex crate提供regex! 语法扩展,可以在标准编译时编译正则表达式。 这有两个好处: 我们不需要在运行时执行该工作(更好的程序性能) 如果我们的正则表达式格式错误,编译器可以在编译期间告诉我们,而不是触发运行时恐慌 不幸的是,文档说: ...
宏可以做什么,编译器插件不能,反之亦然? “不能”,我的意思是不可能达到同样的目的,而不是以不同的方式实现。 例如,一个宏可以impl一些性状为一个结构,编译器插件可以derive一些性状为一个结构。 他们都可以自动impl一个结构的性状。 ...
我想生成一个HashMap ,它使用结构字段作为键,并使用usize整数作为值。 我的预期输出是: 我的解决办法是impl我的特质FieldsMapping两个Article和Comment : 我想编写一个用于自定义派生FieldsMapping的编译器插件。 我 ...
我正在编写一个扩展的Rust编译器插件 至 它现在几乎完成,但模块在最终扩展的代码中不包含任何内容。 我猜原因是跨度不包括模块文件。 ( 要点 ) ...
我正在尝试构建一个语法扩展,将属性扩展为调用。 之前: 后: 这已经有效了 。 但是,如果我在箱子级别拥有#[flame]属性(比如#![flame] ),我也会喜欢它。 这是可能的,如果是的话,怎么样? ...
我注意到编译器插件经常提供文档甚至没有提到的宏。 它们以编程方式注册和创建,而不是在rustdoc识别的语法中定义。 当然,不能显示任何文档。 我正在寻找一种方法来解决这个问题,为编译时在包中不存在的宏生成文档的某种方式。 我注意到语法包可以从这样的事情中受益。 例如, quo ...
我想编写一个语法扩展,在生成新函数时组合相关类型的信息。 作为一个无意义的例子,假装我有这个代码: 我希望将attack属性扩展为一个了解Monster方法的函数。 一个简单的例子就是 具体来说,我希望能够获得类型固有方法的函数签名。 我也可以使用特征的功能签名。 重要的 ...
我正在尝试制作的东西需要插件编译器,因为我需要在编译时报告错误,但是我希望它能在Rust稳定运行而不是每晚都运行。 有没有办法在稳定的Rust上运行编译器插件? ...