这个无缝双向互操作性其实就是针对cpp 的头文件生成AST(抽象语法树),遍历一遍,然后对应的在Carbon也生成一份对应的 Carbon AST,然后其他的就都交给clang,帮我们做好所有烦心的事情。 Safety 其实看起来,好像也就是简化版C++,但是,汲取了Rust 的相关经验,Carbon 在语言层面的安全性上也做了一些设计 内存安全:不允许...
cpp-ast: 负责与 C/C++ 的工具链交互,生成完整的 json 格式的 C/C++ 抽象语法树,并反序列化成 Rust 的 struct. 标记标准库 AST 和用户代码对应的 AST,清理无关字段。 rust-ast: 定义了一个简化版的 Rust AST 结构,以适应转换需求。现阶段省略了 Rust 语言中的泛型等复杂机制,聚焦于核心结构如函数定义、...
dtolnay/cxx - Safe interop between Rust and C++ rust-cpp - Embed C++ code directly in Rust. rust-lang/rust-bindgen - A Rust bindings generator Erlang rusterlium/rustler - safe Rust bridge for creating Erlang NIF functions Java bennettanderson/rjni - use Java from Rust drrb/java-rus...
传统转译工具,比如c2rust,其实是基于 ast 的转译方式,无法保留原项目架构的抽象信息,并且转译出来都是 unsafe 代码,实际应用效果不好。 本工具借助 Rust 实现了一个AI Agent,可以借助大模型的能力对 C/Cpp 进行转译,并得到更加安全的 Rust 实现。一共包括两个组件:一个是完全自动化的cargo 插件,另一个是可以让...
$ ./gcc/crab1 test.rs -frust-debug -frust-dump-ast-pretty -Warray-bounds -dumpbase test.rs -mtune=generic -march=x86-64 -O0 -version -fdump-tree-gimple -o test.s -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -frust-incomple...
Mojo : 像 Python 又有 Cpp 性能的语言 问:我猜还有另一种令人着迷的方法,不知道您是否熟悉 Mojo。这是克里斯·拉特纳(Chris Lattner)的新语言,他是 Swift 的创作者。这是创建一种类似 Python 的语言,实际上编译成 LLVM 和 MLIR ,旨在提供 C++ 级别的性能。
例如,枚举的变体BuiltinAttrExpander::Bang用于处理以!开头的内建属性宏,它实现了AttrExpandertrait,并提供了相应的处理逻辑。其他变体如BuiltinAttrExpander::Cpp用于处理以cpp开头的内建属性宏,BuiltinAttrExpander::Derive用于处理以derive开头的内建属性宏等。
rust-cpp - Embed C++ code directly in Rust. rust-lang/rust-bindgen - A Rust bindings generator Erlang rusterlium/rustler - safe Rust bridge for creating Erlang NIF functions Java bennettanderson/rjni - use Java from Rust drrb/java-rust-example - use Rust from Java j4rs - use Java...
Dlang/go/rust是唯三的选型对象,这其中,rust是最全面的。从语言演变历史中那些坑中综合排查,这点上,因为rust出现得晚,取长补短,rust没有任何包袱。它是最不虐心的。rust源于cyclone的部分概念,虽然说这些cpp的新版本也能做到,但cpp应该改无可改面目全非了,不如一门新语言来得更让人易接受。
纯血Rust 实现的 LLM 大模型跨平台客户端,美得很,后台链接里 WasmEdge+llama.cpp (LLamaEdge) MikeLoveRust 2024-07-02 1050 【Rust日报】Rust的三种引用类型 测试架构模块化系统rust 六边形架构带来了模块化、解耦和清晰接口设计的好处,可以为 Rust 应用程序的可维护性和可扩展性提供了重要指导。