Ну, и он нашёл баг. Только в собственном эмуляторе. Он в комментариях объяснил, но не отредактировал для ясности саму статью.
> I see: > AB > CD
Of course! Because you’re not running it in the emulator I’m working on. So you don’t get the problem. I probably didn’t explain it well enough in the blog post.
---
А вы знали, что один из самых простых и надёжных способов получить экранированный знак табуляции в скрипте для виндового cmd.exe (т.е. без нажатия на TAB; \t в языке нет) - это вытащить его из заголовка исполняемого файла (собственно, cmd.exe)?
call :get_tab_character some_var
echo This is a TAB: [%some_var%]
exit /b
:get_tab_character (out arg1)
:: https://stackoverflow.com/a/49959194
((for /L %%P in (1,1,70) do pause >NUL) & set /p "dos_stub_0x46_offset=")<"%COMSPEC%"
set "%~1=%dos_stub_0x46_offset:~0,1%"
exit /b
TL;DR: эта история началась в 2007, когда по URE сделали вывод, что RAID5 перестанет работать в 2009. И кончилась в 2009, когда RAID5 работать не перестал. Тогда не учли, что в URE подразумевается знак "меньше"[2], а сейчас в комменты закралась ещё пара ошибок[1][3].
Но не все можно исправить.
для дисков в 12 ТБ на новый диск что-то приедет неверно.
ECC позволяет обнаруживать неисправимые ошибки. URE - это неисправимые ошибки (от которых не спасёт повторное чтение сектора, например), большинство из которых диск благодаря ECC обнаружит и отдаст ошибку вместо мусора-под-видом-данных. А сколько из них не обнаружит? Производители по этому поводу ничего не расскажут, но жизнь NTFS, ext4 и традиционных RAID'ов в 2025 году говорит, что тихих ошибок на порядки меньше.
Вероятность URE - штука особая. У серии для видеонаблюдения она "<1 in 10^15", а у серверных Ultrastar'ов с SAS - "1 in 10^15". Смысла в этом не видно, как так могло получиться? У этих таблиц разный стиль. Видимо, везде подразумевается знак "меньше" (по крайней мере, так ведут себя реальные диски), но производители величине придают достаточно мало внимания, чтобы знак периодически опускать.
В зеркале оба диска при считывании вернули данные.
советуют для больших дисков использовать четность, а не зеркало.
Не, RAID-массивы о существовании тихих ошибок не думают, поэтому при нормальной работе (не во время scrub aka check) спросят только один диск. Так быстрее, а проблема тихих ошибок переложена на другой слой (T10-PI / dm-integrity / zfs-btrfs-bcachefs / в никуда).
Итого для диска в 16 тер вероятность получения такой ошибки - единица
Но то в военное время, а в мирное < 72%: 1 - ( 1 - (10^-14 [ошибок URE на 1 прочитанный бит]) ) ^ (16 [ТБ => байт => бит] * 10^12 * 8) = 72%.
Меня удивляет, что идеи сжигания и захоронения неплохо существуют вместе. И что сжигание масштабируют до уровня, когда приходится жечь некие low grade roundwood помимо отходов. И что в этом пути видят одновременно и перспективы, и недостаточность - строят планы на более дорогой BECCS - bioenergy with carbon capture and storage. И что этот путь не обещает дешёвой энергии, хотя бы в перспективе - выглядит опасно для страны ("мы можем это себе позволить" -> проходит N десятилетий -> так, и в какой момент нас купили китайцы?).
Дракс много чем занимается, видимо это одно из направлений.
Например, проектом по улавливанию углерода на 40 миллиардов фунтов за счёт бюджета. Может, лучше атомку? Она дешевле.
А когда сжигание древесины не было экологичным? Древесина возобновляемый ресурс. Посадил -> вырастил -> срубил —> повторил.
Отвёз на завод, переработал в пеллеты, перевёз через океан.
Если вместо этого субсидировать, например, строительство из древесины и дальше жечь ископаемое топливо, то на стороне ископаемого топлива ещё меньшие выбросы CO2/кВт-ч.
Вряд ли этот подход масштабируется на потребности современного человечества. Заодно может поднять цены на строительную древесину (зачем нам это, если строительство из дерева как бы тоже экологично?) и отводит внимание от экологических проблем: уйти в минус по CO2 эта технология не позволит + вырубка и перевозка происходит где-то далеко, а условно-нулевые выбросы CO2 засчитываются в $EnvironmentallyFriendlyCountryName.
электричество нее будет субсидироваться - потому что большую часть года будет дороже чем любая альтернатива
Не знаю деталей, но вопрос в том, что именно требуется. Возможно, всё идёт по плану, если требуется: 1) сохранить бизнес владельца угольных электростанций (Drax), 2) организовать дорогую стройку.
Максимально серьёзное сокращение выбросов CO2 точно не требуется, потому сами зелёные активисты и политики не играют в это всерьёз - они пытаются усидеть на изумительно большом количестве стульев. У них даже ветряки становятся недостаточно зелёными, когда мешают оленеводам. Или, скажем, Тунберг в 2019 критиковала атомку, а спустя три года критиковала уже отказ от атомки в пользу угля в Германии. Они не понимают, что чем-то необходимо пожертвовать для достижения серьёзной цели и в итоге жертвуют всем. Сейчас беспокоятся о рыбе, которая будет гибнуть в системе охлаждения Hinkley Point C.
А можно было просто выделить из его слов здравое зерно: "рассказывайте в статье про имярека, что он сказал А". То есть атрибутируем слова и получаем проверяемое, как и требуется там, утверждение (Он о себе это сказал? Сказал. Верить ли ему? У читателя своя голова на плечах).
upd: Но вы это наверняка понимаете; к чему был этот неконструктивный разговор? Надо ещё опасаться аффилированности, но интервью обычно окажется источником независимым.
(коммент в целом про электростанции на биотопливе)
.uk
Contributors: ... Representatives from Drax Group PLC
Это же та компания с электростанцией на субсидиях, которая возит целые брёвна из Америки для сжигания.
Как "дровяные" электростанции умудрились подвести под экологическую повестку? Существует (по-моему, разумная) идея выводить углерод из цикла, не давая древесине разлагаться обратно (с выделением углекислого газа). Углерод сгнившего в лесу дерева по большей части вернётся в атмосферу. Углерод спиленного дерева, использованного на стройматериалы, будет связан на десятилетия.
В более радикальной версии древесина не идёт в дело, а сразу захороняется. "Burying wood in ‘vaults’ could help fight global warming" - science.org.
И тут сжигание древесины внезапно тоже объявляют экологичным.
То есть захоронить древесный углерод - это экологично, а вернуть его в атмосферу - тоже экологично, хоть это и противоположное действие. И зелёные не видят противоречия (на зрение может влиять доступ к британскому бюджету).
Конечно, мы помимо возврата углерода в атмосферу получаем электроэнергию, но зачем козе баян, в варианте с захоронением леса на месте + какой-нибудь электростанцией мы получим лучший результат. А если АЭС, то несравнимо лучший, и британцы как раз строят Hinkley Point C, но там другой фарс - со сроками (впрочем, у Франции сейчас получается не лучше - задержка на 12 лет).
Ещё один нюанс в том, что в википедии нет жёсткой политики против этого citogenesis'а. Источники, возникшие после проблемной правки, не рассматриваются как потенциально заражённые (в правилах, рекомендациях или эссе), а правки не расценивают как "подрыв первого столпа википедии" с последующей высшей мерой википедийной защиты. Если citogenesis уже прижился и относительно безобиден, то наказывать в назидание остальным вряд ли станут.
Так что если хотите управлять вселенной (чуть-чуть), вы знаете что делать.
Почему? Объединить половинки в RAID0 и получить... RAID0.
По идее они могли бы точно также параллельно данные писать на разные блины
То ли проблема в погрешностях при изготовлении и установке пластин (разный Repeatable Runout на разных пластинах?), то ли ещё в возмущениях при опускании нескольких головок. А так бы имели ускорение до 22 раз (11 пластин, 22 поверхности) - на последовательном чтении/записи были бы скорости PCIe Gen4 SSD.
есть одно упоминание образца с названием ST30000NM001K
в розницу они ни фига не выпустили, но всё же HAMR-диски есть в составе их СХД Exos Corvault
что в рознице обнаружилось, так это восстановленные (factory recertified) диски ST22000NM000C (и 24/26/28), судя по предупреждению о "class 1 consumer laser product" - они с HAMR.
Гелию 11 лет и он во всех дисках от 12 ТБ. Всё-таки он оказался беспроблемным, иначе бы мы последние лет 5 слушали постгарантийные истории об утекшем гелии и наблюдали печальную статистику от Backblaze.
будут генерироваться функции возвращающие одно значение. И возврат многих значений будет лишь синтаксическим сахаром.
Он и так синтаксический сахар, потому что ведь нет разницы с упаковкой переменных в структуру, возвратом структуры и распаковкой обратно в переменные, если компилятор зачёркнутое соптимизирует.
В C есть щепотка сахара в этом направлении - можно создать структуру на месте через compound literal (return (fooRetTuple){.a=4, .b=2, .c=3};). В C++ почти 100% сахара (structured binding и std::tuple).
Хотя это отвлечённые рассуждения. Посмотрел на Nim из своего списка - он 2 строки компилирует в 200 КБ сишного кода, не вариант.
Как именно он компилирует в Си возврат нескольких значений
А вообще реальность-то прозаична. ЖМ в виде ртути или натрия-калия задолбает плохой смачиваемостью прежде, чем что-то случится. А с обычным ЖМ не "не взлетело", а серийно полетело в приставках (PS5, PS5 Pro) и ноутбуках.
Да ни фига они не выпустили. История обещаний HAMR запечатлена в википедии: первые HAMR-диски Seagate планировал выпустить в 2019, после многочисленных отмен и переносов 30-32 ТБ с HAMR были запланированы на прошлый год, потом на 1-й квартал этого, потом первый квартал кончился и Seagate выпустил на бумаге модели ST30TB00000 / ST32TB00000 ("Limited Availability"). В продажу за год они так и не вышли, а мы находимся под новостью уже о следующих дисках на те же 30/32ТБ - ST30000NM004K / ST32000NM003K, находящихся в более тяжёлом состоянии "Stay Informed".
Вода в новости не важна: например, нет у WD дисков с HAMR и надёжность у этой технологии, которая 6 лет находится в стадии "выйдет в следующем году", вероятно, так себе.
Те же 30-32 ТБ можно получить традиционными методами - впихиванием 11-й пластины (DC HC690 от WD, в открытой продаже нет).
Выше 500 МБ/с разгоняются диски с двумя независимыми блоками магнитных головок - Exos 2X14, 2X18. WD сначала сказал, что у него тоже такие есть будут (DC HS760), но потом упоминания убрал. Seagate эти диски выпустил на самом деле, не на бумаге.
На втором месте устаревшие диски на 15 000 об/мин, могут быть быстрее 300 МБ/с.
Разбавлю скепсис в комментариях, SSD на E31T потребляет в 2 раза меньше своих предков на E26. Контроллер сделан на 7 нм (E26 - 12 нм) и попроще - нет поддержки DRAM-кэша, меньше каналов памяти. Он всё равно "горячий" (Techpowerup получил троттлинг при установке менее крупного радиатора), но это уже потребление на уровне многих PCIe Gen4 SSD.
а llvm отследил варианты предсказуемой инициализации массива (например, константой отличной от нуля) и массив из экзешника выпиливал.
Обращение к памяти можно запретить как-либо оптимизировать. Обратиться к массиву через указатель на volatile, например. И раз компилятору запрещено для оптимизаций "заглядывать внутрь" этого обращения, ему придётся оставить предыдущие шаги - сам массив в памяти и его инициализацию. https://godbolt.org/z/59PfdPKsh
Ну, и он нашёл баг. Только в собственном эмуляторе. Он в комментариях объяснил, но не отредактировал для ясности саму статью.
---
А вы знали, что один из самых простых и надёжных способов получить экранированный знак табуляции в скрипте для виндового cmd.exe (т.е. без нажатия на TAB; \t в языке нет) - это вытащить его из заголовка исполняемого файла (собственно, cmd.exe)?
TL;DR: эта история началась в 2007, когда по URE сделали вывод, что RAID5 перестанет работать в 2009. И кончилась в 2009, когда RAID5 работать не перестал. Тогда не учли, что в URE подразумевается знак "меньше"[2], а сейчас в комменты закралась ещё пара ошибок[1][3].
ECC позволяет обнаруживать неисправимые ошибки. URE - это неисправимые ошибки (от которых не спасёт повторное чтение сектора, например), большинство из которых диск благодаря ECC обнаружит и отдаст ошибку вместо мусора-под-видом-данных. А сколько из них не обнаружит? Производители по этому поводу ничего не расскажут, но жизнь NTFS, ext4 и традиционных RAID'ов в 2025 году говорит, что тихих ошибок на порядки меньше.
Вероятность URE - штука особая. У серии для видеонаблюдения она "<1 in 10^15", а у серверных Ultrastar'ов с SAS - "1 in 10^15". Смысла в этом не видно, как так могло получиться? У этих таблиц разный стиль. Видимо, везде подразумевается знак "меньше" (по крайней мере, так ведут себя реальные диски), но производители величине придают достаточно мало внимания, чтобы знак периодически опускать.
Не, RAID-массивы о существовании тихих ошибок не думают, поэтому при нормальной работе (не во время scrub aka check) спросят только один диск. Так быстрее, а проблема тихих ошибок переложена на другой слой (T10-PI / dm-integrity / zfs-btrfs-bcachefs / в никуда).
Но то в военное время, а в мирное < 72%:
1 - ( 1 - (10^-14 [ошибок URE на 1 прочитанный бит]) ) ^ (16 [ТБ => байт => бит] * 10^12 * 8) = 72%.
Меня удивляет, что идеи сжигания и захоронения неплохо существуют вместе. И что сжигание масштабируют до уровня, когда приходится жечь некие low grade roundwood помимо отходов. И что в этом пути видят одновременно и перспективы, и недостаточность - строят планы на более дорогой BECCS - bioenergy with carbon capture and storage. И что этот путь не обещает дешёвой энергии, хотя бы в перспективе - выглядит опасно для страны ("мы можем это себе позволить" -> проходит N десятилетий -> так, и в какой момент нас купили китайцы?).
Например, проектом по улавливанию углерода на 40 миллиардов фунтов за счёт бюджета. Может, лучше атомку? Она дешевле.
Отвёз на завод, переработал в пеллеты, перевёз через океан.
Если вместо этого субсидировать, например, строительство из древесины и дальше жечь ископаемое топливо, то на стороне ископаемого топлива ещё меньшие выбросы CO2/кВт-ч.
Вряд ли этот подход масштабируется на потребности современного человечества. Заодно может поднять цены на строительную древесину (зачем нам это, если строительство из дерева как бы тоже экологично?) и отводит внимание от экологических проблем: уйти в минус по CO2 эта технология не позволит + вырубка и перевозка происходит где-то далеко, а условно-нулевые выбросы CO2 засчитываются в $EnvironmentallyFriendlyCountryName.
Не знаю деталей, но вопрос в том, что именно требуется. Возможно, всё идёт по плану, если требуется: 1) сохранить бизнес владельца угольных электростанций (Drax), 2) организовать дорогую стройку.
Максимально серьёзное сокращение выбросов CO2 точно не требуется, потому сами зелёные активисты и политики не играют в это всерьёз - они пытаются усидеть на изумительно большом количестве стульев. У них даже ветряки становятся недостаточно зелёными, когда мешают оленеводам. Или, скажем, Тунберг в 2019 критиковала атомку, а спустя три года критиковала уже отказ от атомки в пользу угля в Германии. Они не понимают, что чем-то необходимо пожертвовать для достижения серьёзной цели и в итоге жертвуют всем. Сейчас беспокоятся о рыбе, которая будет гибнуть в системе охлаждения Hinkley Point C.
А можно было просто выделить из его слов здравое зерно: "рассказывайте в статье про имярека, что он сказал А". То есть атрибутируем слова и получаем проверяемое, как и требуется там, утверждение (Он о себе это сказал? Сказал. Верить ли ему? У читателя своя голова на плечах).
upd: Но вы это наверняка понимаете; к чему был этот неконструктивный разговор? Надо ещё опасаться аффилированности, но интервью обычно окажется источником независимым.
(коммент в целом про электростанции на биотопливе)
Это же та компания с электростанцией на субсидиях, которая возит целые брёвна из Америки для сжигания.
Как "дровяные" электростанции умудрились подвести под экологическую повестку? Существует (по-моему, разумная) идея выводить углерод из цикла, не давая древесине разлагаться обратно (с выделением углекислого газа). Углерод сгнившего в лесу дерева по большей части вернётся в атмосферу. Углерод спиленного дерева, использованного на стройматериалы, будет связан на десятилетия.
В более радикальной версии древесина не идёт в дело, а сразу захороняется. "Burying wood in ‘vaults’ could help fight global warming" - science.org.
И тут сжигание древесины внезапно тоже объявляют экологичным.
То есть захоронить древесный углерод - это экологично, а вернуть его в атмосферу - тоже экологично, хоть это и противоположное действие. И зелёные не видят противоречия (на зрение может влиять доступ к британскому бюджету).
Конечно, мы помимо возврата углерода в атмосферу получаем электроэнергию, но зачем козе баян, в варианте с захоронением леса на месте + какой-нибудь электростанцией мы получим лучший результат. А если АЭС, то несравнимо лучший, и британцы как раз строят Hinkley Point C, но там другой фарс - со сроками (впрочем, у Франции сейчас получается не лучше - задержка на 12 лет).
Ещё один нюанс в том, что в википедии нет жёсткой политики против этого citogenesis'а. Источники, возникшие после проблемной правки, не рассматриваются как потенциально заражённые (в правилах, рекомендациях или эссе), а правки не расценивают как "подрыв первого столпа википедии" с последующей высшей мерой википедийной защиты. Если citogenesis уже прижился и относительно безобиден, то наказывать в назидание остальным вряд ли станут.
Так что если хотите управлять вселенной (чуть-чуть), вы знаете что делать.
Она уже есть. Тут проблемы не видно, на БМГ стоит микросхема-предусилитель, пришлось бы туда ещё часть логики перенести.
Ковырялкой и плоскогубцами (ютуб)!
Почему? Объединить половинки в RAID0 и получить... RAID0.
То ли проблема в погрешностях при изготовлении и установке пластин (разный Repeatable Runout на разных пластинах?), то ли ещё в возмущениях при опускании нескольких головок. А так бы имели ускорение до 22 раз (11 пластин, 22 поверхности) - на последовательном чтении/записи были бы скорости PCIe Gen4 SSD.
по пути где-то потеряли ST24TB00000.
есть одно упоминание образца с названием ST30000NM001K
в розницу они ни фига не выпустили, но всё же HAMR-диски есть в составе их СХД Exos Corvault
что в рознице обнаружилось, так это восстановленные (factory recertified) диски ST22000NM000C (и 24/26/28), судя по предупреждению о "class 1 consumer laser product" - они с HAMR.
Это всё понятно, просто я недооцениваю сложность оптимизаций, о которых пишу.
Если бы zpugcc умел сводить возврат структуры к простому укладыванию её полей на стек, я бы сказал "ага!".
Но не скажу.
Гелию 11 лет и он во всех дисках от 12 ТБ. Всё-таки он оказался беспроблемным, иначе бы мы последние лет 5 слушали постгарантийные истории об утекшем гелии и наблюдали печальную статистику от Backblaze.
Он и так синтаксический сахар, потому что ведь нет разницы с
упаковкой переменных в структуру,возвратом структурыи распаковкой обратно в переменные, если компилятор зачёркнутое соптимизирует.В C есть щепотка сахара в этом направлении - можно создать структуру на месте через compound literal (
return (fooRetTuple){.a=4, .b=2, .c=3};). В C++ почти 100% сахара (structured binding и std::tuple).Хотя это отвлечённые рассуждения. Посмотрел на Nim из своего списка - он 2 строки компилирует в 200 КБ сишного кода, не вариант.
Как именно он компилирует в Си возврат нескольких значений
2 строки из документации:
Может, ещё из этого списка чем-то получится вдохновиться:
https://rosettacode.org/wiki/Return_multiple_values
А вообще реальность-то прозаична. ЖМ в виде ртути или натрия-калия задолбает плохой смачиваемостью прежде, чем что-то случится. А с обычным ЖМ не "не взлетело", а серийно полетело в приставках (PS5, PS5 Pro) и ноутбуках.
При виде SMR думают про Device-Managed SMR и ругают именно его, но тут Host-Managed SMR, его случайно встретить нельзя.
Да ни фига они не выпустили. История обещаний HAMR запечатлена в википедии: первые HAMR-диски Seagate планировал выпустить в 2019, после многочисленных отмен и переносов 30-32 ТБ с HAMR были запланированы на прошлый год, потом на 1-й квартал этого, потом первый квартал кончился и Seagate выпустил на бумаге модели ST30TB00000 / ST32TB00000 ("Limited Availability"). В продажу за год они так и не вышли, а мы находимся под новостью уже о следующих дисках на те же 30/32ТБ - ST30000NM004K / ST32000NM003K, находящихся в более тяжёлом состоянии "Stay Informed".
Вода в новости не важна: например, нет у WD дисков с HAMR и надёжность у этой технологии, которая 6 лет находится в стадии "выйдет в следующем году", вероятно, так себе.
Те же 30-32 ТБ можно получить традиционными методами - впихиванием 11-й пластины (DC HC690 от WD, в открытой продаже нет).
Выше 500 МБ/с разгоняются диски с двумя независимыми блоками магнитных головок - Exos 2X14, 2X18. WD сначала сказал, что у него тоже такие
естьбудут (DC HS760), но потом упоминания убрал. Seagate эти диски выпустил на самом деле, не на бумаге.На втором месте устаревшие диски на 15 000 об/мин, могут быть быстрее 300 МБ/с.
Картинка с рейтингом
предыдущая версия
Разбавлю скепсис в комментариях, SSD на E31T потребляет в 2 раза меньше своих предков на E26. Контроллер сделан на 7 нм (E26 - 12 нм) и попроще - нет поддержки DRAM-кэша, меньше каналов памяти. Он всё равно "горячий" (Techpowerup получил троттлинг при установке менее крупного радиатора), но это уже потребление на уровне многих PCIe Gen4 SSD.
Обращение к памяти можно запретить как-либо оптимизировать. Обратиться к массиву через указатель на volatile, например. И раз компилятору запрещено для оптимизаций "заглядывать внутрь" этого обращения, ему придётся оставить предыдущие шаги - сам массив в памяти и его инициализацию.
https://godbolt.org/z/59PfdPKsh
Потом из-за нужды в стандартном способе затирания паролей в C появился memset_explicit (но не в C++). По ссылке есть другие варианты решения помимо volatile.
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2897.htm#:~:text=volatile%20pointer