VerΓΆffentlichung der Programmiersprache Rust 1.46

VerΓΆffentlicht Ρ€Π΅Π»ΠΈΠ· 1.46 языка систСмного программирования Rust, entwickelt von Mozilla. Die Sprache konzentriert sich auf sichere Speicherverwaltung, bietet automatisches Speichermanagement und stellt Mittel zur VerfΓΌgung, um hohen Parallelismus bei der Aufgabenbearbeitung zu erreichen, ohne einen Garbage Collector verwenden zu mΓΌssen und Laufzeit.

Die automatische Speicherverwaltung in Rust befreit Entwickler von Fehlern bei der Pointer-Manipulation und schΓΌtzt vor Problemen, die aus der niedrig-leveligen Speicherbearbeitung entstehen, wie beispielsweise der Zugriff auf den Speicher nach dessen Freigabe, das Dereferenzieren von Nullzeigern, BufferΓΌberlΓ€ufe und Γ€hnliches. Zur Verbreitung von Bibliotheken, zur Sicherstellung des Builds und zur Verwaltung der ProjektabhΓ€ngigkeiten wird ein Paketmanager entwickelt. Cargo, der es ermΓΆglicht, die benΓΆtigten Bibliotheken fΓΌr das Programm mit einem Klick zu erhalten. FΓΌr die Bereitstellung von Bibliotheken wird das Repository crates.io.

Haupt Neuheiten:

  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… с использованиСм выраТСния Β«const fnΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² любом контСкстС вмСсто констант. Π”Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π½Π° этапС компиляции, Π° Π½Π΅ Π² Ρ…ΠΎΠ΄Π΅ выполнСния, поэтому Π½Π° Π½ΠΈΡ… Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ограничСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· констант.

    Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС ΡƒΠ±Ρ€Π°Π½ Π·Π°ΠΏΡ€Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… функциях Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (Β«&&Β» ΠΈ Β«||Β»), Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС конструкций Β«ifΒ», Β«if letΒ», Β«matchΒ»,
    Β«whileΒ», Β«while letΒ» ΠΈ Β«loopΒ», Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСобразования Π² срСзы (slice, динамичСскиС массивы) ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ выраТСния Β«&[T]Β». ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… возмоТностСй Π² функциях Β«const fnΒ» позволяСт вынСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСсурсоёмкиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΡΡ‚Π°Π΄ΠΈΡŽ компиляции. НапримСр, рСализация Β«const-sha1Β» Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ…ΡΡˆΠΈ SHA-1 Π²ΠΎ врСмя компиляции, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ WinRT привязок для Rust ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 40 Ρ€Π°Π·.

  • Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ информативности сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… стабилизирована ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«#[track_caller]Β», ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… unwrap, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ сбоСв (panic) ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ использовании Ρ‚ΠΈΠΏΠΎΠ². Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ использован ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ panic для Π²Ρ‹Π²ΠΎΠ΄Π° мСстополоТСния Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π² сообщСнии ΠΎΠ± ошибкС.
  • ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Β«constΒ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² любом контСкстС вмСсто констант, ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ std::mem::forget.
  • Π’ разряд ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° новая порция API, Π² Ρ‚ΠΎΠΌ числС стабилизированы Option::zip ΠΈ vec::Drain::as_slice.
  • Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π‘argo hinzugefΓΌgt ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния, устанавливамых ΠΏΡ€ΠΈ компиляции ΠΏΠ°ΠΊΠ΅Ρ‚Π°: CARGO_BIN_NAME (имя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ исполняСмого Ρ„Π°ΠΉΠ»Π°), CARGO_CRATE_NAME (имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°), CARGO_PKG_LICENSE (лицСнзия, указанная Π² манифСстС), CARGO_PKG_LICENSE_FILE (ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ).

Quelle: opennet.ru

ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг для сайтов с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS, VPS VDS сСрвСры πŸ”₯ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг для сайтов с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS, VPS VDS сСрвСры | ProHoster