Telegram Group & Telegram Channel
πŸ‘£ Π’ GCC-фронтэндС с компилятором Rust Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Borrow checker

Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² состав Π²Π΅Ρ‚ΠΊΠΈ GCC 15 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° сСрия ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ языка Rust Π²ΠΎ фронтэндС gccrs. НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ стала ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ заимствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (borrow checker), рСализованная Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Polonius, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ основной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Rust Π² качСствС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния Borrow checker.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ рСализация Borrow checker отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ написана Π½Π° языкС Rust ΠΈ прСдоставляСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π² рядС случаСв ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ бСзопасным (safe) ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Unsafe ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ примСняСмой ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Borrow checker.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ для GCC Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния:

Для Polonius извСстны ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ росту слоТности Π°Π½Π°Π»ΠΈΠ·Π°.
Π’ случаС GCC для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ„Π°Π·Ρ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ раскрутки (bootstrapping) компилятора gccrs Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ трСбуСтся компилятор Rust (Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ устранСно).
Полная рСализация самодостаточной сборки ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ 2-ΡΡ‚Π°Π΄ΠΈΠΉΠ½ΡƒΡŽ раскрутку, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сначала GCC собСрёт gccrs Π±Π΅Π· Borrow checker, Π° Π·Π°Ρ‚Π΅ΠΌ собСрёт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Borrow checker, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° языкС Rust, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° компилятора ΠΈ считая ΠΊΠΎΠ΄ условно-довСряСмым (Ρ‚.Π΅. Π½Π΅ выполняя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ заимствования). ПослС сборки Borrow checker-Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° пСрСсборка компилятора, Π½ΠΎ ΡƒΠΆΠ΅ с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ заимствования.

https://opennet.ru/62924/

@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/rust_code/903
Create:
Last Update:

πŸ‘£ Π’ GCC-фронтэндС с компилятором Rust Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Borrow checker

Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² состав Π²Π΅Ρ‚ΠΊΠΈ GCC 15 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° сСрия ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ языка Rust Π²ΠΎ фронтэндС gccrs. НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ стала ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ заимствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (borrow checker), рСализованная Π½Π° основС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Polonius, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ основной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Rust Π² качСствС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния Borrow checker.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ рСализация Borrow checker отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ написана Π½Π° языкС Rust ΠΈ прСдоставляСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π² рядС случаСв ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ бСзопасным (safe) ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Unsafe ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ примСняСмой ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Borrow checker.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ для GCC Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния:

Для Polonius извСстны ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ росту слоТности Π°Π½Π°Π»ΠΈΠ·Π°.
Π’ случаС GCC для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ„Π°Π·Ρ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ раскрутки (bootstrapping) компилятора gccrs Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ трСбуСтся компилятор Rust (Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ устранСно).
Полная рСализация самодостаточной сборки ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ 2-ΡΡ‚Π°Π΄ΠΈΠΉΠ½ΡƒΡŽ раскрутку, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сначала GCC собСрёт gccrs Π±Π΅Π· Borrow checker, Π° Π·Π°Ρ‚Π΅ΠΌ собСрёт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Borrow checker, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° языкС Rust, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° компилятора ΠΈ считая ΠΊΠΎΠ΄ условно-довСряСмым (Ρ‚.Π΅. Π½Π΅ выполняя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ заимствования). ПослС сборки Borrow checker-Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° пСрСсборка компилятора, Π½ΠΎ ΡƒΠΆΠ΅ с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ заимствования.

https://opennet.ru/62924/

@rust_code

BY Rust


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/rust_code/903

View MORE
Open in Telegram


Rust Telegram | DID YOU KNOW?

Date: |

Unlimited members in Telegram group now

Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.

The SSE was the first modern stock exchange to open in China, with trading commencing in 1990. It has now grown to become the largest stock exchange in Asia and the third-largest in the world by market capitalization, which stood at RMB 50.6 trillion (US$7.8 trillion) as of September 2021. Stocks (both A-shares and B-shares), bonds, funds, and derivatives are traded on the exchange. The SEE has two trading boards, the Main Board and the Science and Technology Innovation Board, the latter more commonly known as the STAR Market. The Main Board mainly hosts large, well-established Chinese companies and lists both A-shares and B-shares.

Rust from ua


Telegram Rust
FROM USA