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: |

The Singapore stock market has alternated between positive and negative finishes through the last five trading days since the end of the two-day winning streak in which it had added more than a dozen points or 0.4 percent. The Straits Times Index now sits just above the 3,060-point plateau and it's likely to see a narrow trading range on Monday.

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

Rust from ye


Telegram Rust
FROM USA