中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)策目標(biāo)安卓?jī)?yōu)化大師全部版本

網(wǎng)站建設(shè)策目標(biāo),安卓?jī)?yōu)化大師全部版本,遠(yuǎn)程管理wordpress站群,泉州學(xué)校網(wǎng)站開發(fā)1.76.0穩(wěn)定版 此版本較小 ABI兼容更新 函數(shù)指針文檔中新增的ABI兼容部分介紹了函數(shù)簽名與ABI兼容的意義.大部分是參數(shù)類型和返回類型的兼容,及在當(dāng)前Rust中兼容的列表.文檔僅描述現(xiàn)有兼容的狀態(tài). 一個(gè)新增功能是,現(xiàn)在保證符和u32是ABI兼容的.它們一直有相同大小和對(duì)齊方式,…

1.76.0穩(wěn)定版

此版本較小

ABI兼容更新

函數(shù)指針文檔中新增的ABI兼容部分介紹了函數(shù)簽名ABI兼容的意義.大部分是參數(shù)類型返回類型的兼容,及在當(dāng)前Rust兼容的列表.文檔僅描述現(xiàn)有兼容的狀態(tài).

一個(gè)新增功能是,現(xiàn)在保證u32ABI兼容的.它們一直有相同大小對(duì)齊方式,但現(xiàn)在即使在調(diào)用函數(shù)的ABI中,與上面文檔一致,它們也是等價(jià)的.

引用中的類型名

為了調(diào)試,從Rust1.38開始,就可用any::type_name::<T>()返回T類型串描述,但這需要一個(gè)顯式的類型參數(shù).
指定該類型會(huì)有點(diǎn)難,尤其是對(duì)無(wú)法命名的類型(如閉包)或不透明的返回類型.

新的any::type_name_of_val(&T)可從類型引用中取描述性名字.

fn get_iter() -> impl Iterator<Item = i32> {[1, 2, 3].into_iter()
}
fn main() {let iter = get_iter();let iter_name = std::any::type_name_of_val(&iter);let sum: i32 = iter.sum();println!("The sum of the `{iter_name}` is {sum}.");
}

當(dāng)前打印:
'core::array::iter::IntoIter<i32,3>'的和是6.

穩(wěn)定的API

Arc::unwrap_or_clone
Rc::unwrap_or_clone
Result::inspect
Result::inspect_err
Option::inspect
type_name_of_val
ptr::{from_ref, from_mut}
ptr::addr_eq

std::hash::{DefaultHasher,RandomState}這些以前只能通過(guò)std::collections::hash_map取得.

1.77.0穩(wěn)定版

此版本較小.

C串字面

Rust現(xiàn)在支持在&'static CStr內(nèi)存類型中,擴(kuò)展到按nul字節(jié)終止的串的的C串字面(c"abc").這樣更易編寫與需要nul結(jié)尾串的外部接口互操作的代碼,并在編譯時(shí)檢查所有相關(guān)的錯(cuò)誤(如,缺少內(nèi)部nul字節(jié)).

支持異步fn中的遞歸

因?yàn)?code>編譯器限制,以前異步函數(shù)無(wú)法調(diào)用自身.在1.77中,已取消該限制,因此只要使用間接以避免無(wú)窮大小函數(shù)狀態(tài),就允許遞歸調(diào)用.
像此代碼現(xiàn)在可以工作了:

async fn fib(n: u32) -> u32 {match n {0 | 1 => 1,_ => Box::pin(fib(n-1)).await + Box::pin(fib(n-2)).await}
}

offset_of!

對(duì)構(gòu)字段,1.77.0穩(wěn)定了可訪問(wèn)結(jié)構(gòu)的相關(guān)字段的字節(jié)偏移offset_of!.當(dāng)在沒有類型的現(xiàn)成實(shí)例,但需要字段的偏移時(shí),此宏最有用.

用戶現(xiàn)在可用offset_of!(StructName, field)訪問(wèn)字段的偏移,它從結(jié)構(gòu)開頭開始按字節(jié)用偏移擴(kuò)展到usize式.

默認(rèn),在發(fā)布配置文件中允許去掉

未在輸出中允許調(diào)試信息cargo配置文件(如,debug=0)默認(rèn)允許strip="debuginfo".

主要是因?yàn)?預(yù)編譯的)標(biāo)準(zhǔn)庫(kù)附帶了調(diào)試信息,即即使本地編譯沒有顯式請(qǐng)求調(diào)試信息,但靜態(tài)鏈接的結(jié)果包含了標(biāo)準(zhǔn)庫(kù)的調(diào)試信息.
需要調(diào)試信息的用戶可用相關(guān)Cargo配置文件中的調(diào)試標(biāo)志顯式允許它.

Stabilized APIs
array::each_ref
array::each_mut
core::net
f32::round_ties_even
f64::round_ties_even
mem::offset_of!
slice::first_chunk
slice::first_chunk_mut
slice::split_first_chunk
slice::split_first_chunk_mut
slice::last_chunk
slice::last_chunk_mut
slice::split_last_chunk
slice::split_last_chunk_mut
slice::chunk_by
slice::chunk_by_mut
Bound::map
File::create_new
Mutex::clear_poison
RwLock::clear_poison

1.78.0穩(wěn)定版

診斷屬性

Rust現(xiàn)在支持#[diagnostic]屬性名字空間,來(lái)影響編譯器錯(cuò)誤消息.按不要求編譯器用的提示對(duì)待這些,提供編譯器無(wú)法識(shí)別診斷也不是錯(cuò)誤.

該靈活性使得即使并非所有,無(wú)論是不同版本還是完全不同實(shí)現(xiàn)編譯器,都支持它們,源碼提供診斷.

名字空間帶有第一個(gè)支持#[diagnostic::on_unimplemented]屬性,需要該特征但尚未在類型上實(shí)現(xiàn)時(shí),可在特征放置它以自定義消息.

考慮穩(wěn)定化拉請(qǐng)給出的示例:

#[diagnostic::on_unimplemented(message = "My Message for `ImportantTrait<{A}>` is not implemented for `{Self}`",label = "My Label",note = "Note 1",note = "Note 2"
)]
trait ImportantTrait<A> {}
fn use_my_trait(_: impl ImportantTrait<i32>) {}
fn main() {use_my_trait(String::new());
}

以前,編譯器會(huì)給出如下內(nèi)置錯(cuò)誤:
錯(cuò)誤[E0277]:不滿足'String:ImportantTrait<i32>'的特征約束.
–>src/main.rs:12:18
|
12|use_my_trait(String::new());
|------------^^^^^^^^^^^^^未為'串'實(shí)現(xiàn)'ImportantTrait<i32>'特征
|此調(diào)用引入的約束的必需.

使用#[diagnostic::on_unimplemented],其自定義消息填充主錯(cuò)誤行,在源輸出放置其自定義標(biāo)簽.仍按幫助輸出寫入原標(biāo)簽,且也會(huì)寫入自定義注解.

這些確切細(xì)節(jié)可能會(huì)變化.
錯(cuò)誤[E0277]:未為'串'實(shí)現(xiàn)'ImportantTrait<i32>'的消息
–>src/main.rs:12:18
|
12|use_my_trait(String::new());
|------------^^^^^^^^^^^^^我的標(biāo)簽
|由此調(diào)用引入的約束必需
=幫助:未為'串'實(shí)現(xiàn)'ImportantTrait<i32>'特征
=注:注1
=注:注2

對(duì)特征作者來(lái)說(shuō),如果可提供更好的提示,而不僅是談?wù)?/code>缺失的實(shí)現(xiàn)自身,則該診斷會(huì)更有用.如,這是標(biāo)準(zhǔn)庫(kù)中的刪節(jié)示例:

#[diagnostic::on_unimplemented(message = "the size for values of type `{Self}` cannot be known at compilation time",label = "doesn't have a size known at compiletime"
)]
pub trait Sized {}

斷定不安全的前提條件

Rust標(biāo)準(zhǔn)庫(kù)有許多不安全函數(shù)的前提條件的斷定,但歷史上它們只在標(biāo)準(zhǔn)庫(kù)#[cfg(debug_assertions)]構(gòu)建中允許,以避免影響發(fā)布性能.

然而,因?yàn)橐话闶窃?code>發(fā)布模式編譯和分發(fā)標(biāo)準(zhǔn)庫(kù),因此大多數(shù)Rust開發(fā)者并不檢查這些.

現(xiàn)在,延遲到生成代碼,才執(zhí)行這些斷定的條件,因此根據(jù)用戶自己的設(shè)置來(lái)檢查調(diào)試斷定,在調(diào)試和測(cè)試構(gòu)建中默認(rèn)允許.

盡管檢查的量的細(xì)節(jié)一般不穩(wěn)定,此更改可幫助用戶在其代碼中抓未定義行為.

如,slice::from_raw_parts要求一個(gè)對(duì)齊非無(wú)效指針.以下故意的未對(duì)齊指針未定義行為,雖然如果你運(yùn)氣不佳,在過(guò)去可能"有效",但調(diào)試斷定現(xiàn)在可以抓住它:

fn main() {let slice: &[u8] = &[1, 2, 3, 4, 5];let ptr = slice.as_ptr();//從對(duì)齊總是與`'u16'`的正確方式相差1個(gè)的`'針'`創(chuàng)建一個(gè)偏移let i = usize::from(ptr as usize & 1 == 0);let slice16: &[u16] = unsafe { std::slice::from_raw_parts(ptr.add(i).cast::<u16>(), 2) };dbg!(slice16);
}

library/core/src/panicking.rs:220:5'main'線程出現(xiàn)緊急情況:
違反了不安全的前提條件:slice::from_raw_parts要求指針對(duì)齊非無(wú)效,且切片的總大小不超過(guò)'isize::MAX'

注意:使用'RUST_BACKTRACE=1'環(huán)境變量運(yùn)行以顯示追蹤追蹤
線程導(dǎo)致非展開崩潰.中止.

確定性重新對(duì)齊

標(biāo)準(zhǔn)庫(kù)有一些可改變指針切片對(duì)齊方式的函數(shù),但是如果嚴(yán)格遵守他們的文檔,它們以前有一些注意,這樣,實(shí)際上難以依賴它們.

這些警告主要是為了對(duì)沖求值,但,它們只對(duì)非常使用是穩(wěn)定的.現(xiàn)在,他們承諾根據(jù)其實(shí)際輸入,有一致的運(yùn)行時(shí)行為.

pointer::align_offset計(jì)算,要按給定對(duì)齊更改指針需要的偏移.如果不行,它會(huì)返回usize::MAX,但以前允許總是返回usize::MAX,現(xiàn)在已刪除該行為.

slice::align_toslice::align_to_mut都按對(duì)齊中間切片剩余的未對(duì)齊尾切片轉(zhuǎn)換切片.

這些方法現(xiàn)在承諾返回盡量大的中間部分,而不是允許實(shí)現(xiàn)返回次優(yōu)的,如按頭片返回所有內(nèi)容.
穩(wěn)定的API
對(duì)多個(gè)std::error::Error,接受相關(guān)實(shí)現(xiàn)非'static生命期

impl Read for &Stdin
Makeimpl<Fd:AsFd>impltakeSized
implFrom<TryReserveError>forio::Error

這些API現(xiàn)在在環(huán)境中是穩(wěn)定的:
Barrier::new()

兼容說(shuō)明

如前,Rust1.78已要求其最低提高到窗口10,以實(shí)現(xiàn)以下目標(biāo):

x86_64-pc-windows-msvc
i686-pc-windows-msvc
x86_64-pc-windows-gnu
i686-pc-windows-gnu
x86_64-pc-windows-gnullvm
i686-pc-windows-gnullvm

Rust1.78LLVM已升級(jí)到18版本,完成了已聲明的針對(duì)x86-32x86-64目標(biāo)的u128/i128ABI更改.

1.79.0穩(wěn)定版

內(nèi)聯(lián)

常{...}塊現(xiàn)在在式位置上是穩(wěn)定的,允許無(wú)需額外的聲明(如,在特征上定義項(xiàng)或關(guān)聯(lián)的常)的,顯式進(jìn)入環(huán)境.

項(xiàng)(const ITEM:...=...)不同,內(nèi)聯(lián)可使用域內(nèi)的泛型,并推導(dǎo)其類型而不是顯式寫出來(lái),這樣,對(duì)內(nèi)聯(lián)代碼片特別有用.如,像此模式:

const EMPTY: Option<Vec<u8>> = None;
let foo = [EMPTY; 100];
//可寫作:
let foo = [const { None }; 100];

注意,這也適合泛型環(huán)境,以前要求帶關(guān)聯(lián)常的冗長(zhǎng)特征聲明:

fn create_none_array<T, const N: usize>() -> [Option<T>; N] {[const { None::<T> }; N]
}

這樣,代碼更加簡(jiǎn)潔并易于閱讀.

關(guān)聯(lián)類型位置的約束

Rust1.79穩(wěn)定了關(guān)聯(lián)項(xiàng)約束語(yǔ)法,這允許在其他約束內(nèi)的關(guān)聯(lián)類型位置放置約束,即T:Trait<Assoc:Bounds...>.

這樣就不需要顯式泛型類型來(lái)約束關(guān)聯(lián)類型.

此功能允許在一些以前不可能或要施加額外,不必要的限制的地方,指定約束:
where子句,在此,相當(dāng)于將約束分割為兩個(gè)(或多個(gè)),where子句.
如,where T:Trait<Assoc:Bound>等價(jià)于where T:Trait,<T as Trait>::Assoc:Bound.

1,超級(jí)特征,與where子句不同,使用特征時(shí),通過(guò)新語(yǔ)法隱式指定約束.示例語(yǔ)法:

trait CopyIterator: Iterator<Item: Copy> {}

2,關(guān)聯(lián)類型項(xiàng)約束,允許約束特征關(guān)聯(lián)類型關(guān)聯(lián)的嵌套剛性投影.如,

trait Trait { type Assoc: Trait2<Assoc2: Copy>; }

3,不透明類型約束(RPIT,TAIT),允許無(wú)需命名不透明類型,約束與不透明類型關(guān)聯(lián)的關(guān)聯(lián)類型.如,impl Iterator<Item:Copy>定義一個(gè)項(xiàng)復(fù)制迭代器,不必實(shí)際將該項(xiàng)約束.

擴(kuò)展自動(dòng)臨時(shí)生命期

現(xiàn)在在匹配構(gòu)造中,自動(dòng)擴(kuò)展構(gòu)造立即引用臨時(shí)的生命期.這與塊結(jié)構(gòu)擴(kuò)展臨時(shí)對(duì)象的生命期一樣.
如:

let a = if true {..;&temp() //過(guò)去錯(cuò)誤,但現(xiàn)在擴(kuò)展了生命期
} else {..;&temp() //過(guò)去錯(cuò)誤,但現(xiàn)在擴(kuò)展了生命期
};
//而
let a = match () {_ => {..;&temp() //過(guò)去錯(cuò)誤,但現(xiàn)在擴(kuò)展了生命期}
};

現(xiàn)在與之前行為一致:

let a = {..;&temp() //擴(kuò)展生命期
};

因?yàn)檫@些程序過(guò)去編譯失敗,此行為后向兼容.

在標(biāo)準(zhǔn)庫(kù)構(gòu)建中允許幀指針

標(biāo)準(zhǔn)庫(kù)現(xiàn)在使用-Cforce-frame-pointers=yes編譯分發(fā)Rust項(xiàng),使下游用戶可更輕松地分析他們的程序.注意,盡管在Cargo發(fā)布配置文件默認(rèn)去掉它,標(biāo)準(zhǔn)庫(kù)還繼續(xù)提供了行級(jí)調(diào)試信息(如,DWARF).

穩(wěn)定的API

{integer}::unchecked_add
{integer}::unchecked_mul
{integer}::unchecked_sub
<[T]>::split_at_unchecked
<[T]>::split_at_mut_unchecked
<[u8]>::utf8_chunks
str::Utf8Chunks
str::Utf8Chunk
<*const T>::is_aligned
<*mut T>::is_aligned
NonNull::is_aligned
<*const [T]>::len
<*mut [T]>::len
<*const [T]>::is_empty
<*mut [T]>::is_empty
NonNull::<[T]>::is_empty
CStr::count_bytes
io::Error::downcast
num::NonZero<T>
path::absolute
proc_macro::Literal::byte_character
proc_macro::Literal::c_string

這些API現(xiàn)在在環(huán)境中是穩(wěn)定的:

Atomic*::into_inner
io::Cursor::new
io::Cursor::get_ref
io::Cursor::position
io::empty
io::repeat
io::sink
panic::Location::caller
panic::Location::file
panic::Location::line
panic::Location::column
http://www.risenshineclean.com/news/5597.html

相關(guān)文章:

  • 如何選擇網(wǎng)站公司網(wǎng)絡(luò)銷售平臺(tái)有哪些
  • 重慶市建筑工程造價(jià)信息網(wǎng)優(yōu)化師是干嘛的
  • 紹興以往網(wǎng)站招工做宣傳推廣的形式有哪些
  • 外貿(mào)做獨(dú)立網(wǎng)站怎么樣蘇州seo網(wǎng)站優(yōu)化軟件
  • 制作視頻的軟件手機(jī)seo平臺(tái)是什么意思
  • 站長(zhǎng)網(wǎng)站統(tǒng)計(jì)市場(chǎng)營(yíng)銷實(shí)際案例
  • wordpress 注冊(cè)鏈接搜索引擎優(yōu)化的主要手段
  • 動(dòng)態(tài)網(wǎng)站開發(fā)語(yǔ)言企業(yè)網(wǎng)站設(shè)計(jì)規(guī)范
  • 網(wǎng)站推廣規(guī)劃百度問(wèn)答入口
  • 網(wǎng)站流量怎么做的南京網(wǎng)站設(shè)計(jì)
  • 開發(fā)利用水資源安徽seo優(yōu)化
  • 網(wǎng)站分為四個(gè)步驟開發(fā)建設(shè)百度推廣費(fèi)用
  • 鄭州網(wǎng)站建設(shè)哪家公司便宜網(wǎng)絡(luò)營(yíng)銷運(yùn)營(yíng)推廣
  • 做趣味圖形的網(wǎng)站seo引擎搜索
  • 網(wǎng)站改版提示無(wú)需改版怎么推廣app讓人去下載
  • php怎么做網(wǎng)頁(yè)免費(fèi)seo工具
  • 手機(jī)端網(wǎng)站怎么做的今日重大國(guó)際新聞軍事
  • 如何做不同域名跳轉(zhuǎn)同一個(gè)網(wǎng)站軟文推廣例子
  • 中國(guó)知名設(shè)計(jì)網(wǎng)站國(guó)家職業(yè)技能培訓(xùn)平臺(tái)
  • 看守所加強(qiáng)自身網(wǎng)站建設(shè)工作服務(wù)推廣軟文
  • 網(wǎng)站建設(shè)全部流程包括備案免費(fèi)建站免費(fèi)網(wǎng)站
  • 做網(wǎng)站優(yōu)化詞怎么選擇電商網(wǎng)站平臺(tái)有哪些
  • php網(wǎng)站維護(hù)刷關(guān)鍵詞排名
  • 建一個(gè)購(gòu)物網(wǎng)站多少錢吳江seo網(wǎng)站優(yōu)化軟件
  • 百度做的網(wǎng)站能優(yōu)化嗎網(wǎng)站的seo 如何優(yōu)化
  • wordpress 做的網(wǎng)站全球中文網(wǎng)站排名
  • seo網(wǎng)站建設(shè)廈門2022千鋒教育培訓(xùn)收費(fèi)一覽表
  • 網(wǎng)站制作多少錢?個(gè)人網(wǎng)站制作教程
  • 類似情侶空間的網(wǎng)站開發(fā)制作網(wǎng)站平臺(tái)
  • 高端女裝有哪些品牌搜索引擎排名優(yōu)化seo