rustlang火不起来 lang 如何发布最终版本

新一代系统编程语言Rust 1.3发布
发表于 17:17|
来源www.rust-lang.org|
作者The Rust Core Team
摘要:Rust一直都在不断在前进与快速的发展中:我们迎来了Rust 1.3稳定版,该版本有很多API被稳定下来,包括新的Duration API和Hash/Hasher。未来的1.5版本中将对std::time模块进行功能改进并稳定。
Rust一直都在不断在前进与快速的发展中:我们迎来了Rust 1.3稳定版。(完整的版本发布详情参见本文下半部分)
1.3稳定版中重大改进
的第一个先行发布版本,加入了Rust编程指南电子书《The Dark Arts of Advanced and
Unsafe Rust Programming》,虽然它还只是草案形式,但是这本书已经覆盖了Rust的很多方面。
在Rust 1.3的库中,很多API被稳定下来,包括新的Duration API和Hash/Hasher。未来的1.5版本中将对std::time模块进行功能改进并稳定。
Rust 1.3对性能进行了改进,主要集中在标准库这一块:
子串匹配使用了
,更快的Read::read_to_end 实现;
的实现专门针对标准输入和文件,从而在速度上有一个额外的提升;
在切片上的PartialEq操作
Rust已经初步支持
,我们将继续在Windows系统上进行投入,但并不打算将Windows XP 作为"第一梯队"的平台,现在可以在XP上构建Rust代码,但是要避免使用一些尚未支持XP的标准库。关于MSVC工具链的集成工作正在进行中,现在在1.4测试版中已经可以完全支持在64位的Windows系统中运行。
Cargo已经支持
中所指定的规则。我们的想法是,依赖约束不要影响纯编译的能力,这反过来又使得它更容易调整在生态系统中的一些不必要的麻烦处理方式。
以下为Rust 1.3的完整特性:
1.3.0&版本()
约900个修改,大量的bug修复
,&'a&Box&Trait&将由原来的释意&'a&Box&Trait+'a&变成&'a&Box&Trait+'static&;
新增电子书
作为指导编写unsafe&rust&模块的官方文档;
,并被其它标准库和第三方模块使用。
非兼容性的修改
:对于对象生命周期省略的解释已经回归,但是最合适的解释方案还没有结论;
#[prelude_import]属性的内部实现细节先前已经被稳定下来,新版中对其的改动将打破已有的代码;
对于大小可调节的类型的处理更智能,依赖之前实现的代码将可能无法运行;
dropck规则将确保析构函数不能访问已经销毁的值,它已经被更新并符合RFC标准,修复了一些稳定性方面的bug,这些将导致以前能够编译的代码无法构建。
新的对象生命周期:对于对象生命周期省略的解释已经回归,但是最合适的解释方案还没有结论;
分号现在可以出现类型与宏定义中;
对于大小可调节的类型的处理更智能,依赖之前实现的代码将可能无法运行;
'static变量现在能够是
ref绑定能够正确地在
之间做出选择;
dropck规则将确保析构函数不能访问已经销毁的值,它已经被更新并符合
标准,修复了一些稳定性方面的bug,这些将导致以前能够编译的代码无法构建。
,std::time模块其目前仅包含Duration;
Box&str&和Box&[T]&都实现了Clone;
拥有所有权的C字符串
,借来的C字符串
,Borrow和ToOwned的实现使得在范型代码中可以对C字符串进行Borrow和Clone操作;
CStr实现了
AtomicPtr实现了Debug;
Error接口对象能够被降阶到它所指向的具体类型,可以像使用Any接口一样地去使用它的is、downcast、downcast_ref和downcast_mut方法;
字串搜索现在采用更高效的“two-way”算法取代单纯的进行一次搜索操作的实现方式,这给对包括contain、find、split、starts_with和ends_with等方法带来了极大的速度提升;
切片的PartialEq操作速度更快;
散列接口提供了默认的方法hash_slice,通过重载和优化hash_slice的实现对对标量进行了优化;
散列器接口现在有一些专门为基本类型提供的WRITE_*系列方法,目的是为了提高效率;
I/O错误类型增加了一个方法集合用于访问内部的错误代码,std::error::Error::casuse的实现也是通过代理到内部错误代码来实现;
process::Child新增加id方法用于返回平台独立的进程标志符;
切片上的connect方法已被弃用,取而代之的是新的join方法(注意,这两个方法都在不稳定SliceConcatExt);
Wrapper类型实现了Div运算符号;
String实现了DerefMut;
SipHash对于长数据能够获得更好的性能;
AtomicPtr实现了Send;
Stdin和File实现的read_to_end现在使用未初始化的缓存以提高性能;
外界函数的生命周期参数被移除了。
现在Rust在定程序可以生成在Windows&XP上运行的程序,尽管XP不在被支持的平台列表之中;
现在移植GNU工具链到MSVC的工作还在继续,但仍不推荐在1.3中使用,即使在1.4&beta版中将对64位系统中提供完整的功能支持;
在基于Fedora的发行版的系统中,安装将正确的配置动态链接器;
编译器增加了许多新的扩展错误描述,可以通过--explain选项访问;
用于约束析构函数不能访问已销毁值的dropck已经被重写,修改了一些稳健性的漏洞,这是非向后兼容的;
rustc现在在可能情况下使用LLVM写归档文件,最终目标是消除对于ar工具的依赖;
Rust开始提供对于i686平台上FreeBSD的初步支持(它长期支持x86-64平台上的FreeBSD);
unused_mut、unconditional_recursion、improper_ctypes和negate_unsigned&lints更严格;
如果着陆垫被禁止(使用-Z无着陆垫),异常将杀死泄漏的进程。
Rust 1.3的贡献者
Rust是一个社区驱动的语言,我们真诚的感谢Rust1.3版中的131位贡献者:
Aaron Turon
Adam Heins
Agoston Szepessy
Aidan Hobson Sayers
Alex Crichton
Alex Newman
Alexis Beingessner
Alisdair Owens
Andreas Tolfsen
原文链接:
(译者/魏绪文 责编/钱曙光)译者简介:魏绪文(),致力于CPU架构和并发型应用的研究与实践,乐于分享。
CSDN Rust 学习交流群拥有多位Rust资深研究者,如果你想零距离接触大牛和贡献者,请加群主微信 qshuguang2008 或扫描下方二维码申请入群,备注:实名+公司名+Rust。
编辑推荐本站 Rust 资源:
【专家极力推荐】
(你想要的都在这里!)
【在线视频分享】
【微信群分享】
【微信群分享】
【微信群分享】
【技术文章】
【技术文章】
【技术文章】
【技术文章】
【Rust一周集锦】
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我在rust中用libloading引入dll文件,执行一些函数
使用cargo打包成exe后,需要把exe和dll放在同一个目录下,程序才能运行
请问有什么方法在打包exe的时候,将dll包含在里面,先谢谢了
补充,通过了解,我发现可以使用 include_bytes!宏来载入文件或资源
载入的数据是&static [u8]格式的,但是Library::new(library_path).unwrap() 我查看文档,new() 需要的是AsRef&OsStr&
所以想问下,如何把&[u8]转换为可传递给Library::new()的格式
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
想了一下,includes_bytes! 是 bytes 数据,而Library期望的是一个路径,应该没有这种操作duang的就转换过来了
或者有什么方法可以实现我问题中的需求,我还没有接触到
于是,退一步,曲线救国,把DLL加载到EXE程序,在EXE运行时把DLL动态生成出来,再调用DLL
这样只需要分发单个EXE文件,不必担心DLL丢失
includes_bytes! 在编译的过程中把静态文件注入到程序中
// 加载在编译阶段导入DLL文件到程序
const DLL_FILE: &'static [u8] = include_bytes!("PcInfo.dll");
// 运行时生成DLL文件
fn generate_dll(filename: &str, buf: &[u8]) -& io::Result&()& {
let mut f = try!(File::create(filename));
try!(f.write(&buf));
// 从本地加载DLL文件
let lib = Library::new(LIBRARY_PATH).unwrap();
println!("{:?}", lib);
最好生成的时候判断有没有这个DLL,避免每次都重新生成
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:}

我要回帖

更多关于 rust lang要死掉 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信