JDK 22: новые возможности Java 22
В Java 22 появились предварительные сведения об отображаемых значениях, структурированном параллелизме, сборщиках потоков и возможности выполнения многофайловых программ.
Rust 1.77, последняя версия языка программирования, основанного Mozilla Research и ориентированного на безопасность, скорость и параллелизм, добавляет поддержку литералов C-строк.
Литералы C-строк в Rust расширяются до строки с нулевым байтом в памяти типа & 'static CStr. Это облегчает написание кода, который будет взаимодействовать с интерфейсами иностранных языков, требующих нуль-терминированных строк. Все необходимые проверки на ошибки, например, на отсутствие внутреннего нулевого байта, выполняются во время компиляции.
Анонсирован 21 марта, Rust 1.77 можно установить с помощью rustup: $ rustup update stable
Еще одно улучшение в Rust 1.77 - поддержка рекурсии в async fn. Ранее функции async не могли вызывать сами себя из-за ограничения компилятора, но Rust 1.77 снимает это ограничение. Теперь рекурсивные вызовы разрешены при условии, что они используют форму перенаправления, чтобы избежать бесконечного размера состояния функции.
Также в Rust 1.77 был стабилизирован макрос offsetof! для полей struct. Он предоставляет доступ к байтовому смещению соответствующего публичного поля структуры. По словам команды Rust, этот макрос может быть наиболее полезен, когда смещение поля требуется в отсутствие существующего экземпляра типа.
Кроме того, профили менеджера пакетов Cargo в Rust 1.77, которые не включают debuginfo в выводах, по умолчанию будут включать strip = "debugiinfo". Это необходимо в основном потому, что прекомпилированная стандартная библиотека поставляется с отладочной информацией, а это значит, что статически скомпилированные результаты будут включать отладочную информацию из стандартной библиотеки, даже если при локальной компиляции отладочная информация не запрашивалась явно.
Наконец, Clippy в Rust 1.77 добавляет новый lint, incompatible_msrv, который сообщает пользователям, если функциональность, на которую ссылаются, доступна только на более новых версиях, чем объявленная минимальная поддерживаемая версия Rust.
Rust 1.77 следует за выпущенным в прошлом месяце Rust 1.76, в котором были представлены обновления совместимости ABI.
В Java 22 появились предварительные сведения об отображаемых значениях, структурированном параллелизме, сборщиках потоков и возможности выполнения многофайловых программ.
Вышла версия TypeScript 5.4, в которой добавлен полезный тип NoInfer, а также сохранено сужение закрытий после последних назначений.
В TypeScript 5.4, который уже стал общедоступным, сохраняются уточнения типов в закрытиях функций после последних присваиваний.
Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!
Только свежие новости программирования и технологий каждый день.
Комментарии