16
16
[ 動機 ] : #動機
17
17
18
18
這個變更將 ` asm! ` 巨集(macro)釋放了,使它可用於內嵌組合語言項目組新設計的 ` asm! ` 巨集(macro),
19
- 同時為現在使用 ` asm! ` 的用戶提供一個簡單的方法來保持代碼的正常運作 。
19
+ 同時為現在使用 ` asm! ` 的使用者提供一個簡單的方法來保持程式碼的正常運作 。
20
20
21
21
對尚未支援新的 ` asm! ` 巨集(macro)的架構,在(nightly 版本)上執行內嵌組合語言可能會有用。
22
22
23
23
# 教學式解說
24
24
[ 教學式解說 ] : #教學式解說
25
25
26
- Rust 團隊目前正在重新設計 ` asm! ` 巨集(macro)。您應該將所有使用 ` asm! ` 的代碼都替換為 ` llvm_asm! ` ,以避免代碼在實施新的 ` asm! ` 巨集(macro)時毀壞。
26
+ Rust 團隊目前正在重新設計 ` asm! ` 巨集(macro)。您應該將所有使用 ` asm! ` 的程式碼都替換為 ` llvm_asm! ` ,以避免程式碼在實施新的 ` asm! ` 巨集(macro)時毀壞。
27
27
28
28
# 技術文件式解說
29
29
[ 技術文件式解說 ] : #技術文件式解說
@@ -35,19 +35,19 @@ Rust 團隊目前正在重新設計 `asm!` 巨集(macro)。您應該將所
35
35
# 缺點
36
36
[ 缺點 ] : #缺點
37
37
38
- 此變更可能需要人為變更兩次代碼 :首先變更為 ` llvm_asm! ` ,然後再實施新的 ` asm! ` 巨集(macro)。
38
+ 此變更可能需要人為變更兩次程式碼 :首先變更為 ` llvm_asm! ` ,然後再實施新的 ` asm! ` 巨集(macro)。
39
39
40
40
# 原理及替代方案
41
41
[ 原理及替代方案 ] : #原理及替代方案
42
42
43
43
我們可以跳過棄用期,並同時執行重新命名新的 ` asm! ` 巨集(macro)。
44
- 總之用 Rust(nightly 版本)保證能一次破壞大量代碼 ,就無需任何過渡期。
44
+ 總之用 Rust(nightly 版本)保證能一次破壞大量程式碼 ,就無需任何過渡期。
45
45
46
46
# 先驅技術
47
47
[ 先驅技術 ] : #先驅技術
48
48
49
- D 語言也支援兩種形式的內嵌組合語言。[ first one] [ d-asm ] 提供用於內嵌組合語言的嵌入式 DSL,它可以在不用 Clobber 情況下直接存取範圍內的變量 ,但只能在x86和x86_64的架構上使用。
50
- [ second one] [ d-llvm-asm ] 是 LLVM 內部內嵌組合語言句法的 RAM 接口 ,但它只適用於 DSL 的後端架構。
49
+ D 語言也支援兩種形式的內嵌組合語言。[ first one] [ d-asm ] 提供用於內嵌組合語言的嵌入式 DSL,它可以在不用 Clobber 情況下直接存取範圍內的變數 ,但只能在x86和x86_64的架構上使用。
50
+ [ second one] [ d-llvm-asm ] 是 LLVM 內部內嵌組合語言句法的 RAM 介面 ,但它只適用於 DSL 的後端架構。
51
51
52
52
[ d-asm ] : https://dlang.org/spec/iasm.html
53
53
[ d-llvm-asm ] : https://wiki.dlang.org/LDC_inline_assembly_expressions
@@ -60,7 +60,7 @@ D 語言也支援兩種形式的內嵌組合語言。[first one][d-asm] 提供
60
60
# 未來展望
61
61
[ 未來展望 ] : #未來展望
62
62
63
- 當下執行的會在 [ new ` asm! ` macro] [ inline-asm-rfc ] 被執行後替換掉,這會破壞那些尚未轉換 ` llvm_asm! ` 的代碼 。
63
+ 當下執行的會在 [ new ` asm! ` macro] [ inline-asm-rfc ] 被執行後替換掉,這會破壞那些尚未轉換 ` llvm_asm! ` 的程式碼 。
64
64
由於運算元分隔符將從 ` : ` 更改為 ` , ` ,所以不會有靜默的錯誤編譯,新的 ` asm! ` 巨集(macro)會出現語法錯誤,來保證現有 ` asm! ` 的任何呼叫都會失敗,
65
65
66
66
[ inline-asm-rfc ] : https://github.com/rust-lang/rfcs/pull/2873
0 commit comments