DEREFERENCE_POINTER_THERE Telegram 8577
▪️Кстати, насчёт паник: вывод паник (по крайней мере, с panic hook по умолчанию) теперь предотвращает перемешивание вывода, если паникуют несколько потоков одновременно.

▪️Ещё касательно паник: PanicInfo разделили на два типа. Первый, в core, используется как аргумент в #[panic_handler] (вне #![no_std] не актуально), а второй, в std (переименованный в PanicHookInfo) как аргумент для хука паники. Как пишет Мара Бос:

PanicInfo
is used in two ways:

As argument to the
#[panic_handler] in no_std context.
As argument to the panic hook in std context.

In situation 1, the
PanicInfo always has a message (of type fmt::Arguments), but never a payload (of type &dyn Any).

In situation 2, the
PanicInfo always has a payload (which is often a String), but not always a message.

...

I don't see any good reasons for these to be the same type, other than historical reasons.

Как следствие, std::panic::PanicInfo теперь является алиасом (с #[deprecated]) на PanicHookInfo.

▪️И ещё насчёт паник: PanicInfo (который в core) обзавёлся новым методом message, который возвращает новый тип PanicMessage, реализующий Display. Да, сейчас это тонкая обёртка над fmt::Arguments.

▪️Стабилизировали новые API, в том числе:
🔸 core::error. Да, само по себе это не новое API, но трейт Error теперь можно использовать в #![no_std]
🔸hint::assert_unchecked — вызывает UB, если аргумент является false. Может быть полезно для того, чтобы сообщать оптимизатору инварианты, которые компилятор сам не выводит.
🔸fs::exists — фактически алиас для Path::try_exists, не переводит ошибки в false.
🔸AtomicBool::fetch_not
🔸Duration::abs_diff

В const-контексте теперь можно вызывать:
🔸char::from_u32_unchecked (и метод, и функцию в core::char)
🔸CStr::{count_bytes, from_ptr}



tgoop.com/dereference_pointer_there/8577
Create:
Last Update:

▪️Кстати, насчёт паник: вывод паник (по крайней мере, с panic hook по умолчанию) теперь предотвращает перемешивание вывода, если паникуют несколько потоков одновременно.

▪️Ещё касательно паник: PanicInfo разделили на два типа. Первый, в core, используется как аргумент в #[panic_handler] (вне #![no_std] не актуально), а второй, в std (переименованный в PanicHookInfo) как аргумент для хука паники. Как пишет Мара Бос:

PanicInfo
is used in two ways:

As argument to the
#[panic_handler] in no_std context.
As argument to the panic hook in std context.

In situation 1, the
PanicInfo always has a message (of type fmt::Arguments), but never a payload (of type &dyn Any).

In situation 2, the
PanicInfo always has a payload (which is often a String), but not always a message.

...

I don't see any good reasons for these to be the same type, other than historical reasons.

Как следствие, std::panic::PanicInfo теперь является алиасом (с #[deprecated]) на PanicHookInfo.

▪️И ещё насчёт паник: PanicInfo (который в core) обзавёлся новым методом message, который возвращает новый тип PanicMessage, реализующий Display. Да, сейчас это тонкая обёртка над fmt::Arguments.

▪️Стабилизировали новые API, в том числе:
🔸 core::error. Да, само по себе это не новое API, но трейт Error теперь можно использовать в #![no_std]
🔸hint::assert_unchecked — вызывает UB, если аргумент является false. Может быть полезно для того, чтобы сообщать оптимизатору инварианты, которые компилятор сам не выводит.
🔸fs::exists — фактически алиас для Path::try_exists, не переводит ошибки в false.
🔸AtomicBool::fetch_not
🔸Duration::abs_diff

В const-контексте теперь можно вызывать:
🔸char::from_u32_unchecked (и метод, и функцию в core::char)
🔸CStr::{count_bytes, from_ptr}

BY Блог*




Share with your friend now:
tgoop.com/dereference_pointer_there/8577

View MORE
Open in Telegram


Telegram News

Date: |

Read now 6How to manage your Telegram channel? Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image. 1What is Telegram Channels? 4How to customize a Telegram channel?
from us


Telegram Блог*
FROM American