ರಸ್ಟ್ 1.68 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ

ರಸ್ಟ್ 1.68 ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆಯನ್ನು ಮೊಜಿಲ್ಲಾ ಯೋಜನೆಯಿಂದ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ ಈಗ ಸ್ವತಂತ್ರ ಲಾಭೋದ್ದೇಶವಿಲ್ಲದ ಸಂಸ್ಥೆ ರಸ್ಟ್ ಫೌಂಡೇಶನ್ ಆಶ್ರಯದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ. ಭಾಷೆ ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಕಸ ಸಂಗ್ರಾಹಕ ಮತ್ತು ರನ್ಟೈಮ್ ಬಳಕೆಯನ್ನು ತಪ್ಪಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ಹೆಚ್ಚಿನ ಕೆಲಸದ ಸಮಾನಾಂತರತೆಯನ್ನು ಸಾಧಿಸಲು ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ (ರನ್ಟೈಮ್ ಅನ್ನು ಮೂಲ ಪ್ರಾರಂಭ ಮತ್ತು ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ನಿರ್ವಹಣೆಗೆ ಕಡಿಮೆ ಮಾಡಲಾಗಿದೆ).

ರಸ್ಟ್‌ನ ಮೆಮೊರಿ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ವಿಧಾನಗಳು ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ಮ್ಯಾನಿಪ್ಯುಲೇಟ್ ಮಾಡುವಾಗ ಡೆವಲಪರ್ ಅನ್ನು ದೋಷಗಳಿಂದ ಉಳಿಸುತ್ತದೆ ಮತ್ತು ಕಡಿಮೆ-ಹಂತದ ಮೆಮೊರಿ ಹ್ಯಾಂಡ್ಲಿಂಗ್‌ನಿಂದ ಉಂಟಾಗುವ ಸಮಸ್ಯೆಗಳಿಂದ ರಕ್ಷಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಮೆಮೊರಿ ಪ್ರದೇಶವನ್ನು ಮುಕ್ತಗೊಳಿಸಿದ ನಂತರ ಪ್ರವೇಶಿಸುವುದು, ಶೂನ್ಯ ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ಡಿಫರೆನ್ಸಿಂಗ್ ಮಾಡುವುದು, ಬಫರ್ ಓವರ್‌ರನ್‌ಗಳು ಇತ್ಯಾದಿ. ಗ್ರಂಥಾಲಯಗಳನ್ನು ವಿತರಿಸಲು, ನಿರ್ಮಾಣಗಳನ್ನು ಒದಗಿಸಲು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಯೋಜನೆಯು ಕಾರ್ಗೋ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತದೆ. ಲೈಬ್ರರಿಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು crates.io ರೆಪೊಸಿಟರಿಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.

ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ, ಆಬ್ಜೆಕ್ಟ್ ಮಾಲೀಕತ್ವವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು, ಆಬ್ಜೆಕ್ಟ್ ಜೀವಿತಾವಧಿಯನ್ನು (ಸ್ಕೋಪ್‌ಗಳು) ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು ಮತ್ತು ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ ಪ್ರವೇಶದ ಸರಿಯಾದತೆಯನ್ನು ನಿರ್ಣಯಿಸುವುದು. ರಸ್ಟ್ ಪೂರ್ಣಾಂಕದ ಉಕ್ಕಿ ಹರಿಯುವಿಕೆಯಿಂದ ರಕ್ಷಣೆ ನೀಡುತ್ತದೆ, ಬಳಕೆಗೆ ಮೊದಲು ವೇರಿಯಬಲ್ ಮೌಲ್ಯಗಳ ಕಡ್ಡಾಯ ಆರಂಭದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ದೋಷಗಳನ್ನು ಉತ್ತಮವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬದಲಾಗದ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ವೇರಿಯೇಬಲ್‌ಗಳ ಪರಿಕಲ್ಪನೆಯನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ, ತಾರ್ಕಿಕ ದೋಷಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಬಲವಾದ ಸ್ಥಿರ ಟೈಪಿಂಗ್ ಅನ್ನು ನೀಡುತ್ತದೆ.

ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • В пакетном менеджере Cargo и репозитории crates.io стабилизирована поддержка протокола Sparse, определяющего новый способ работы с индексом, в котором отражены доступные версии всех существующих в репозитории пакетов. Новый протокол позволяет существенно повысить скорость работы с crates.io и решить проблемы с масштабированием при дальнейшем росте числа пакетов в репозитории.

    Для сокращения задержек, возникающих из-за загрузки полного индекса, в Sparse вместо доступа к индексу с использованием Git задействована прямая загрузка по HTTPS только необходимых индексных данных, охватывающих зависимости конкретного проекта. Для отдачи индексных данных задействован новый сервис index.crates.io. По умолчанию новый протокол планируют задействовать в ветке Rust 1.70, а до этого для его включения можно установить переменную окружения «CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse» или добавить в секцию «[registries.crates-io]» файла .cargo/config.toml параметр ‘protocol = «sparse»‘.

  • Добавлен макрос «pin!», позволяющий создать структуру Pin<&mut T> из выражения «T» с локальным закреплением его состояния (в отличие от Box::pin не выделяет память в куче, а выполняет привязку на уровне стека).
  • Предложен применяемый по умолчанию обработчик ошибок распределения памяти, применяемый при использовании штатного пакета alloc. Приложения в которых включается только alloc (без std) при сбоях выделения памяти отныне будут вызывать обработчик «panic!», который при желании может быть перехвачен при помощи «#[panic_handler]». Программы, использующие библиотеку std, как и раньше будут выводить информацию об ошибке в stderr и аварийно завершать выполнение.
  • API ಯ ಹೊಸ ಭಾಗವನ್ನು ಸ್ಥಿರತೆಯ ವರ್ಗಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ವಿಧಾನಗಳು ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳ ಅನುಷ್ಠಾನಗಳನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ:
    • {core,std}::pin::pin!
    • impl From<bool> for {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut для PathBuf
  • Признак «const», определяющий возможность использования в любом контексте вместо констант, применён в функции VecDeque::new.
  • Для работы на платформе Android теперь требуется как минимум NDK r25 (API 19), т.е. минимальная поддерживаемая версия Android повышена до 4.4 (KitKat).
  • Реализован третий уровень поддержки для платформы Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ