The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Браузер Chrome переведён на шрифтовой движок Skrifa, написанный на Rust

20.03.2025 15:11

Компания Google перевела браузер Chrome на библиотеку Skrifa, написанную на языке Rust и предоставляющую возможности для обработки шрифтов в формате OpenType. Skrifa реализует подмножество возможностей шрифтового движка FreeType, необходимое для 2D-библиотеки Skia, применяемой в Chrome и Chromium. Для избавления библиотеки Skia от привязки к движку FreeType создан новый шрифтовой бэкенд, основанный на Skrifa.

В Chrome 128 написанный на Rust бэкенд был включён в экспериментальном режиме для редко используемых форматов шрифтов, таких как CFF2 и цветные шрифты. Начиная с выпуска Chrome 133 новый бэкенд задействован для всех web-шрифтов в сборках для платформ Linux, Android и ChromeOS. На платформах Windows и macOS новый движок пока используется в качестве запасного и применяется в случае, если система не поддерживает формат шрифта, который пытается отобразить браузер.

Код Skrifa разработан инженерами Google в рамках инструментария Fontations и открыт под лицензиями MIT и Apache 2.0. Для проверки корректности работы Skrifa подготовлено около 700 unit-тестов. Библиотека поддерживает декодирование глифов в форматах glyf, CFF, CFF2, COLRv0, COLRv1, EBDT, CBDT и sbix, вариативные шрифты в форматах glyf, CFF2 и COLRv1, хинтиг шрифтов в форматах glyf, CFF и CFF2.

Помимо библиотеки Skrifa, предоставляющей API для доступа к метаданным шрифтов и загрузки контуров глифов, инструментарий Fontations включает низкоуровневые библиотеки для чтения, разбора, изменения и создания шрифтовых данных в формате OpenType. В свою очередь Fontations является частью проекта Oxidize, созданного для перевода утилит и библиотек для работы с текстом и шрифтами с компонентов на языках Python (fonttools, fontmake, nanoemoji) и C++ (HarfBuzz, FreeType) на новые реализации, написанные на Rust.

Разработка компонентов на Rust началась из-за недостаточной эффективности выявления ошибок при помощи fuzzing-тестирования, так как форматы шрифтов слишком сложны для охвата всех возможных комбинаций. Например, на прошлой неделе во FreeType была выявлена критическая уязвимость, позволяющая выполнить код при обработке специально оформленных шрифтов из переполнения буфера. Помимо движка FreeType проблемы с обеспечением безопасности могут создавать и используемые в нём зависимости, такие как bzip2, libpng и zlib.

Использование Rust позволило значительно снизить вероятность появления проблем при работе с памятью, повысить качество кода, снизить затраты времени на исправление проблем с безопасностью и ускорить внесение улучшений в возможности Chrome, связанные со шрифтами. По статистике Google и Microsoft около 70% опасных уязвимостей вызваны проблемами при работе с памятью, которых можно избежать при использовании языка Rust без unsafe-блоков.

Например, использование Rust, позволило бы избежать ранее выявлявшихся в коде FreeType проблем, связанных с обращением к освобождённым областям памяти, выходом за границу буфера, доступом к массивам без проверки индексов, целочисленными переполнениями, некорректным использованием необнулённых областей памяти и ошибками приведения типов.

  1. Главная ссылка к новости (https://developer.chrome.com/b...)
  2. OpenNews: Уязвимость во FreeType, позволяющая выполнить код при обработке шрифтов
  3. OpenNews: Google отключил поддержку io_uring в ChromeOS и Android из-за плачевного состояния безопасности
  4. OpenNews: Методы безопасной работы с памятью позволили существенно снизить число уязвимостей в Android
  5. OpenNews: В кодовой базе Chromium разрешено использование языка Rust
  6. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62922-chrome
Ключевые слова: chrome, font, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (165) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:33, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Скоро они узнают что кроме выхода за границы есть ещё много видов ошибок.
     
     
  • 2.2, Аноним (-), 15:35, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +36 +/
    И будут радоваться тому, что не тратят время на высчитывания границ, а сосредоточиться на недопущении этих самых ошибок.
    Например логических.
     
     
  • 3.12, Аноним (12), 15:56, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я вот все читаю про битву Си и Rust.
    Складывается впечатление что выход за пределы границ, не проблема языка, а прказатель уровня владения им. Не приведет ли rust к аналогии работы с калькулятором, что некоторые личности настолько активно его начинают использовать что теряют навык счета в уме.
     
     
  • 4.18, Аноним (-), 16:08, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если бы так было то профи не допускали бы таких ошибок Но практика показыает об... большой текст свёрнут, показать
     
     
  • 5.41, Аноним (41), 16:35, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Загружаемые веб-шрифты - дыра в системе, недавние новости это подтвердили.
     
     
  • 6.51, Аноним (-), 16:56, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Загружаемые веб-шрифты - дыра в системе, недавние новости это подтвердили.

    Так вот эту дыру и хотят закрыть.
    Ну или хотя бы существенно минимизировать поверхность атаки.

     
     
  • 7.99, Аноним (99), 18:08, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Испольованием доп.компилятора? Смешно... От гугл? вовсе печально такое слышать.. очередное разочарование в человечестве.
     
     
  • 8.123, Аноним (-), 18:59, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Использование недырявого языка Тем не менее гугл заинтересован в недырявости св... текст свёрнут, показать
     
     
  • 9.131, Аноним (12), 19:41, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как жешь они раньше-то жили И каким, интересно, образом он браузер смог набрат... текст свёрнут, показать
     
     
  • 10.134, Аноним (-), 19:47, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Плохо жили opennet ru opennews art shtml num 59746 Критическая 0-day уязвимость... большой текст свёрнут, показать
     
  • 5.58, Аноним (58), 17:07, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Откуда вы знаете какие ошибки делают профессиональные программисты на С Исходны... большой текст свёрнут, показать
     
     
  • 6.73, Аноним (73), 17:22, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Э А Юникс Именно ради него СИшка была создана Ага, прям из воздуха и появи... большой текст свёрнут, показать
     
  • 6.120, Аноним (120), 18:38, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > В ядро Linux профессионалы не пишут.

    Все так. Профессионалы пишут сугубо в опеннетные комментарии.

     
  • 4.24, Аноним (-), 16:16, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Думаю битва еще не особо началась О, я люблю слушать сказки и котоламповые исто... большой текст свёрнут, показать
     
     
  • 5.211, Аноним (211), 08:28, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А я взамен, приведу пример Теодора "вы не заставите меня выучить раст" Тцо.

    Зачем ты привел позор растовиков?

    Взялись делать систему интеграции в ядро и не смогли сделать автоматические биндинги.

    Стали требовать поддерживать биндинги от ВСЕХ разработчиков и получили по рогам. Так как это требование перекладывает их работу на других людей.

    Выкинуть, правда, совсем раст не получилось. Но попытка обернулась тем, что Линус подтвердил: пишите не оглядываясь на обертки rust, разок-другой можем задержать интеграцию написанного из-за неготовности rust-оберток, а если будут постоянно опаздывать - дропнем не поддерживаемое.

     
  • 4.29, fidoman (ok), 16:24, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Хорошая аналогия кстати, чтобы грамотно в C памятью управлять - это примерно как вы будете 10-значные числа на бумажке перемножать. А в соседний отдел завезли калькуляторы. А вам - пачку рекомендаций, как на бумажке правильно числа записывать, чтоб не ошибиться.
     
     
  • 5.88, Флудер (?), 17:44, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Через 10 лет отдел с калькуляторами деградирует до саморазрушения. А те, что на бумажках - продолжат неспеша выполнять любые задачи.
     
     
  • 6.94, Аноним (-), 17:52, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Через 10 лет отдел с калькуляторами деградирует до саморазрушения.

    Смелое предположение, пруфов, я так понимаю, предоставлено не будет?

    > А те, что на бумажках - продолжат неспеша выполнять любые задачи.

    Лет за 10-20, а там уже и пенсия.
    А надо было посчитать за неделю.


     
     
  • 7.103, Аноним (99), 18:16, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Какие тебе пруфы? С какой стати? Сам ищи, пруфы на общеизветные факты...

    Люди даже в уме числа всегда в истории считали,
    до появления калькуляторов...

    На - можешь начать хоть с этого пруфа: антагоист бывший бухгалтер у Ильфа и Петрова, но понятно он был не единственный такой в мире.


    /мимопроходил

     
     
  • 8.117, Аноним (120), 18:34, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что за бред Ты про абаки, догарифмические линийки и прочие устройства не слышал... текст свёрнут, показать
     
     
  • 9.194, n00by (ok), 06:33, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Про верёвку с 12-ю узлами, для построения прямого угла, наверняка не слышал Зат... текст свёрнут, показать
     
  • 8.122, Аноним (-), 18:47, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, ты решил использовать гамбит пруфов нет - кукарекай про 700 общеизвестные... текст свёрнут, показать
     
  • 8.196, User (??), 06:45, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, ждём примера успешных успехов бухотделов, ручками записывающих результаты... текст свёрнут, показать
     
     
  • 9.205, Флудер (?), 07:52, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пример одного ВУЗа СССР 80е - на каждом курсе на факультете по 3-4 группы по 30... текст свёрнут, показать
     
     
  • 10.227, User (??), 10:17, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не-не-не, мне не нужен пример одного вуза и сравнение бухучета в СССР с РФ то... текст свёрнут, показать
     
  • 7.206, Флудер (?), 08:10, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Смелое предположение, пруфов, я так понимаю, предоставлено не будет?

    Возьми свой "калькулятор", посчитай на нем количество значимых научных открытий и изобретений за определенные десятилетия/столетия, проведи корреляцию с количеством и производительностью этих "калькуляторов". Определи тренд. Не плачь.

     
  • 5.96, Аноним (96), 17:59, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не на бумажке, а в уме чтобы, первоначально речь зашла. И люди-счётчики показывают феноминальные результаты. Проверяющие даже не успевают на калькуляторе набрать, а те уже ответ выдвли. И не только перемножать, но корни извлекать.
    При подготовке космонавтов подобному обучают. Может, и не с 10-значными числами, конечно.
     
     
  • 6.101, fidoman (ok), 18:15, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно, не 10-значные. Пока все работают строго по утверждённым схемам, входят так где вход и выходят там где выход - всё работает прекрасно. Как только находится один идиот, который влезает в окно - ну вот понадобилось ему для "оптимизации" скопировать куда-то указатель - всё рассыпается как карточный домик. Проблема программистов в том, что в целом они необучаемы. Ну вот невозможно приучить людей хранить данные о кодировке, когда у них есть стандартная библиотека, которая просто копирует строки. И проблема с кодировками "решилась" только когда всех добровольно-принудительно загнали на одну, весёлую и с эмоджи. Так же и тут.
     
     
  • 7.214, Аноним (211), 08:36, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну вот невозможно приучить людей хранить данные о кодировке

    И как все работало? Или не работало. Знаю тех кто и сейчас использует локаль KOI8-R.

     
  • 4.93, Аноним (96), 17:52, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Тут говорят, что тотально приведёт. Потому, как скоро кодить будет AI.
     
     
  • 5.119, пох. (?), 18:36, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    да когда ж эта гадина будет наконец-то за меня кодить?!

    Пока больше похоже что она научится за меня врать почему проект не сделан вовремя. Ну, в принципе, приемлемо...

     
  • 4.125, Аноним (125), 19:03, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Rust далеко не единственный язык с безопасной работой с памятью. Можно поглядеть что за ошибки и сколько их в других языках. Ну например есть PHP....
     
  • 4.166, Кулёк (?), 22:27, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы, видать, ничего сложнее функции fib() не писали. У среднего разработчика 10 мегабайт исходного кода в голове не умещаются. Просто поработайте над серьёзным проектом на Сях, а потом на Расте, сразу увидите разницу в скорости разработки и качестве кода. ;)
     
     
  • 5.195, n00by (ok), 06:42, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Средний разработчик в России, усилиями активистов СПО, умещает в голове любое количество кода.

    Ему достаточно помнить git clone && make install, и полный цикл разработки готов.

    АН: Политика ALT состояла все эти годы в том, чтобы построить п͟о͟л͟н͟ы͟й͟ ц͟и͟к͟л͟ р͟а͟з͟р͟а͟б͟о͟т͟к͟и, независимый, а это очень длительный процесс, причем нельзя сказать, что мы с самого начала ставили перед собой такую цель.

     
  • 4.177, Аноньимъ (ok), 02:17, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет никакой битвы.
     
  • 4.224, Аноним (224), 10:00, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.4, Аноним (4), 15:42, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сравни 1% уязвимостей из-за логических ошибок и 70% из-за кривой работы с памятью. Остальные 29% разные SQL injection, Command Injection, Path Traversal, XSS, Missing Authentication, Type Confusion,  которые в данном случае неприменимы или слишком тривиальны для уровня Google.
     
     
  • 3.15, Аноним (1), 16:04, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Сравни денежные потери от выхода за границы буфера в 0 долларов. И потери от логических ошибок в 100 миллиардов долларов.
     
     
  • 4.23, Аноним (23), 16:16, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Откуда цифры?
     
     
  • 5.27, Ося Бендер (?), 16:22, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    От кэмэла, вестимо.
     
  • 5.33, Аноним (-), 16:29, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Откуда цифры?

    Аноним просто ткнул пальчем в небо (или в какую-то другую сущность) и выдал результат.
    И да, пруфов не будет, мы анонимы друг друга не обманываем (с).

    Heartbleed - buffer over-read уязвимость которая повлияла на кучу сайтов. К счастью жила всего 3 года.
    Импакт оценили в $500 лямов.

     
     
  • 6.60, Аноним (60), 17:11, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Недавно новости были про перечисление случайным людям около миллиарда, вместо 20 долларов.

    И говорилось, что такое происходит постоянно. Большие суммы отслеживают и возвращают.

    А вот малые.... И это крупнейшие банки США.

     
     
  • 7.106, Аноним (106), 18:19, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Причем тут работа с памятью? Это явно логическая ошибка.
     
     
  • 8.138, Аноним (138), 19:59, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А может и переполнение ... текст свёрнут, показать
     
     
  • 9.198, n00by (ok), 06:53, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 8.213, Аноним (211), 08:34, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так про это и речь, что именно логические ошибки приводят к огромным потерям И ... текст свёрнут, показать
     
  • 5.197, n00by (ok), 06:49, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Цифры он взял из летнего "отказа Windows", когда в драйвере CrowdStrike разыменовывали нулевой указатель. По обыкновению малость приврал.
     
  • 4.26, px (??), 16:20, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://ru.wikipedia.org/wiki/Heartbleed
     
     
  • 5.107, Аноним (106), 18:20, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ошибке три тысячи миллионов лет, а ты все носишься с ней и пытаешься что-то сам себе доказать?
     
  • 2.25, px (??), 16:19, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Выход за границы — это самое тривиальное, что может быть. Раст предотвращает очень многие потенциальные ошибки связанные с доступом к памяти, в весьма неочевидных ситуациях. А ещё, решает проблемы с гонками данных, в многопоточных приложениях, что принципиально улучшает сон и аппетит. У меня складывается впечатление, как будто «адепты старой школы» сами вообще никогда не писали на Си или плюсах реальных проектов.
     
     
  • 3.56, Аноним (56), 17:05, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > У меня складывается впечатление, как будто «адепты старой школы» сами вообще никогда не писали на Си или плюсах реальных проектов.

    Опеннетные "ярые одепты си" - в основном проекты вида laba1.c, laba2.c ... labaX.c и было это давно. И чем давнее, тем яростнее и беспощаднее "одепт".
    Эдакая "любовь на расстоянии", потому что любить сишку именно как ЯП - ну вот абсолютно не за что.

    Тут как в том анекдоте "Дед, при Сталине жилось лучше? Конечно лучше, внучек! Почему, деда? Потому что при Сталине у меня - стоял!"

     
  • 3.113, Аноним (99), 18:22, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > У меня складывается впечатление, как будто «адепты старой школы» сами вообще никогда не писали на Си или плюсах реальных проектов.

    Ты и правда считаешь что, всё EXE проектов в мире - на Rust/Java/Pyhon/C#/.../BrainFuck ? Что куришь?...

     
  • 3.126, анонд (?), 19:04, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В Паскале нет выхода за границы массива. Вообще нет. И всегда так было. Это приводит к аварийному завершению программы. Тем более в Ада.
     
  • 2.181, Аноним (181), 02:43, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Скоро они узнают что кроме выхода за границы есть ещё много видов ошибок.

    Что же не позволяет тебе дочитать новость до конца? Тебе же в дополнение перечислили еще пучок (и заметь, именно они, вместе с выходом за границы, дают львиную часть именно критических ошибок высокой опасности):

    "Например, использование Rust, позволило бы избежать ранее выявлявшихся в коде FreeType проблем, связанных с обращением к освобождённым областям памяти, выходом за границу буфера, доступом к массивам без проверки индексов, целочисленными переполнениями, некорректным использованием необнулённых областей памяти и ошибками приведения типов."

    Опережая следующую твою сентенцию - и нет, это не полный и исчерпывающий список, от чего еще мог бы защитить раст в отличие от сишки.

     
  • 2.215, Cucumber (?), 08:48, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Жду возвращения к bitmap-шрифтам
     

     ....большая нить свёрнута, показать (54)

  • 1.3, Аноним (-), 15:37, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    О, наконец-то.
    Теперь крикуны "в хроме нет раста" получили неоспоримый пруф))

    ps жду нытья "на моем rhel6 не хватает пакетов"
    ps2 и потока нытья от гентушников "как же это все пересобирать"

     
     
  • 2.16, Аноним (1), 16:04, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты рад что всем стало плохо?
     
     
  • 3.22, Аноним (-), 16:14, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Ты рад что всем стало плохо?

    Почему всем?
    Гентушники и некролюбы - это девиация даже среди линуксойдного меньшинства.
    Всем остальным наоброт станет лучше.


     
     
  • 4.190, Аноним (190), 05:19, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Ты рад что всем стало плохо?
    >Почему всем?

    Потому что в инфраструктуру добавили два вендерлока: сам rust и эта skrifa. С одной стороны какая разница, если хром это один большой вендерлок? С другой не все так просто, сейчас этот движок как раковая опухоль начнет поражать всю экосистему Линукс.

    >Всем остальным наоброт станет лучше.

    [sarcasm]Ага, лично я просто прыгаю от счастья осознавая это.[/sarcasm]

     
     
  • 5.207, Аноним (207), 08:14, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > экосистему Линукс

    …которой не существует.

     
  • 5.217, Аноним (217), 09:26, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Потому что в инфраструктуру добавили два вендерлока: сам rust и эта skrifa.

    Про xorg вы благополучно забыли

     
  • 4.216, Аноним (216), 09:07, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.97, Аноним (96), 18:03, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так это же его хлеб. Ему за это платят.
     
  • 3.182, Аноним (181), 02:46, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну почему сразу всем. Отвыкай говорить за всех. Мне вот стало хорошо. От того, что потенциальных дыреней стало (и станет) меньше.
     
  • 2.28, Oi (?), 16:23, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    emerge www-client/google-chrome затащит бинарный пакет.
     
     
  • 3.35, Аноним (-), 16:32, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > emerge www-client/google-chrome затащит бинарный пакет.

    Перефразирую старый комикс про Неми:
    "- А как называется гентушник, который тащит бинарные пакеты?
    -- Предатель!"

    У них же компиляние ради компиляния.
    Это не самый странный фетиш, но даже среди линуксоидных меньшинств они довольно маргинальные.

     
     
  • 4.100, dannyD (?), 18:13, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    теоретик [рука\лицо]
     
  • 4.142, Аноним (142), 20:07, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и как ты скомпилируешь программу без исходного кода? Хромиум в счёт не берём, там синхронизацию отключили
     
  • 4.168, Perlovka (ok), 22:51, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты этих "них" видел-то хоть раз, Андерсен ты наш? )
     
     
  • 5.199, User (??), 07:07, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В каждой второй новости на opennet'е, ага.
     
  • 2.86, FSA (ok), 17:32, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > "в хроме нет раста"

    Так его там реально нет. Есть только бинарники собранные из исходников Rust :-D

     
  • 2.102, Аноним (96), 18:16, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ждём серверов с водяным охлаждением. Можно будет горячую воду в контур отопления дачи пустить, по аналогии с этим https://habr.com/ru/articles/874044/ вместо электрокотла. Сразу два зайца убили: и емержит, и отапливает.
     

  • 1.5, Аноним (-), 15:43, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Safety
    Unsafe code is forbidden by a #![forbid(unsafe_code)] attribute in the root of the library.
    github.com/googlefonts/fontations/tree/main/skrifa#safety

    Ого, оказывается на расте можно писать вот воообще без ансейфа.
    Правда для этого нужно быть гуглом, а не неосилятором.

    А вообще тенденция радует.
    Дырявую сишку потихоньку заменяют на нормальный язык.

     
     
  • 2.137, Аноним (137), 19:55, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Дырявую сишку потихоньку заменяют на нормальный язык.

    Ещё нет, zig будет позже. Когда устанут компилять рустовую разросшуюся кодовую базу.

     
     
  • 3.140, Аноним (140), 20:01, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Дырявую сишку потихоньку заменяют на нормальный язык.
    > Ещё нет, zig будет позже. Когда устанут компилять рустовую разросшуюся кодовую базу.

    Это тот самый зиг в котором double-free делается запросто, а списка UB в документации нету?
    Даааа, ну может лет через 20, оно дорастет до уровня раста.


     
     
  • 4.146, Аноним (120), 20:55, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Это тот самый зиг в котором double-free делается запросто

    Тот самый Zig, где ручками управляешь ресурсами.

     
     
  • 5.185, Аноним (-), 03:13, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 3.218, Аноним (217), 09:29, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.149, Аноним (-), 21:14, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Правда для этого нужно быть гуглом, а не неосилятором.

    Не нужно быть гуглом для этого. Этот crate-level аттрибут попадается во многих крейтах. Подавляющее большинство растоманов избегает ансейфа даже в тех случаях, когда плюсы его применения могли бы перевесить минусы. А если они и так не используют unsafe, то почему бы не похвастаться этим в src/lib.rs.

     

  • 1.6, 12yoexpert (ok), 15:45, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    на сколько пожирнел?
     
  • 1.7, Аноним (7), 15:48, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ерунда. Эти гуглярщики сделали какуюто там либу. Несложную. А на самом деле чем занимаются? Гребут бабки на рекламе в ютуб. Гребут бабло.
     
     
  • 2.9, Аноним (-), 15:50, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ерунда. Эти гуглярщики сделали какуюто там либу.

    Не какую-то, а которую будут использовать миллиарды юзеров.

    > Несложную.

    Угу, настолько несложную что бракодеры из FreeType уже которую CVE/RCE допускают.

    > Гребут бабки на рекламе в ютуб. Гребут бабло.

    Завидно?))


     
     
  • 3.154, Tron is Whistling (?), 21:26, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Юзер у этой либы один - сам гугл.
     
  • 2.64, 12yoexpert (ok), 17:16, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Эти гуглярщики сделали

    ты хотел сказать переписали?

     
     
  • 3.162, anono111111111111111111 (?), 21:47, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скоро и переписывать не надо будет - GrapRAG (LLM)
    https://youtu.be/1VgptLwP588?t=1960 (Mark Russinovich, Microsoft)
    Пофайловая конвертация с Python на Rust
     
     
  • 4.169, 12yoexpert (ok), 23:01, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    да-да, скоро зажравшихся айтишнегов заменит "ИИ"
    а я пока побегу накручивать просмотры
     
     
  • 5.175, ИТ_НЕ_ТАК_ПРОСТО_КАК_ТЫ_ДУМАЕШЬ_КОПИРАЙТЕР (?), 01:21, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А , ещё иногда требуется исправить заголовочные фаилы ты не ослышался: вручную , скоро всё вскроется это проект индустрия 2.0 тут можно стрелять так же и по своим ногам благославляя ложь и мошеннические действия в виде заговоров
     
  • 4.174, ИТ_НЕ_ТАК_ПРОСТО_КАК_ТЫ_ДУМАЕШЬ_КОПИРАЙТЕР (?), 01:04, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не поможет везде разные флаги , одна программа ждёт -03 другая может вообще какой нибудь -01 третья ждёт добавления пока не известного флага иначе будет в пол тора раза медленее и так далее и только вороватые чужих инвестиции через банки могут быть уверены что они правы
     
  • 2.201, Аноним (201), 07:13, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это разные люди.
     

  • 1.13, нах. (?), 16:00, 20/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     

  • 1.30, Аноним (30), 16:27, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не беда, еще остались Epiphany, Otter Browser и Ladybird.
     
     
  • 2.34, Аноним (34), 16:30, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, поржал. Первые два - просто несамостоятельные шкурки; последний - проект одного ноунэйма, который получил грант на лям: как только деньги закончатся, он перестанет его пилить, или потребует от милого камьюнити ещё деньжат на развлечение.
     
  • 2.109, Аноним (96), 18:20, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ladybird теперь уже не совсем lady, его на Swift переписывают.
     
     
  • 3.155, Tron is Whistling (?), 21:27, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Перепишут - переименуют в Ladyboy.
     

  • 1.31, Ося Бендер (?), 16:28, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Потому и тормозит этот ваш хром. Для полноты картины нужно написать сервис работы с закладами на джаве, парсинг дома на питончике, а сервис настроек на басике. Да, и еще какой-нить сервис на перлушечке.
     
     
  • 2.39, Аноним (-), 16:35, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Потому и тормозит этот ваш хром.

    А оно сейчас тормозит? Но новой либы еще нет у юзеров)))
    Вы прям как из того анекдота "Вы только подумайте, что будет, когда мы её включим..."

    Ну и тормозит по сравнению с чем? С тормозилой? С творением шерстяного? С линксами?
    Просто не жалейте хрому оперативы и все будет летать.

     
  • 2.42, Bob (??), 16:36, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Где он тормозит то?
    Давно в мировой интернет выходил на нём?
     
     
  • 3.44, Ося Бендер (?), 16:40, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот прямо вчера очередной раз сверил часы. Тормозит как не в себя.

    Да и лучше огненной птицы пока нет.

     
     
  • 4.55, Аноним (-), 17:04, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  Вот прямо вчера очередной раз сверил часы. Тормозит как не в себя.

    Удивительно. УМВР и ничего не тормозит...
    Может ты пытаешься его запустить на каком-то пылесосе?

    > Да и лучше огненной птицы пока нет.

    Ты уже принял их обновленную еулу?))

     
  • 4.136, Аноним (136), 19:52, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Огненная птица??? FireBird? Sql-бд?
     
     
  • 5.212, Аноним (212), 08:32, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Перед тем, как стать Firefox браузер успел побыть Phoenix и Firebird
    Но я не думаю, что с Mozilla Firebird сейчас можно хоть на какой-то сайт попасть
     

  • 1.32, Аноним (41), 16:29, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > если система не поддерживает формат шрифта, который пытается отобразить браузер

    ...такой шрифт (формат) не должен применяться вообще.

     
  • 1.36, Аноним (58), 16:32, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    на сайте freetype:

    The main author of FreeType was David Turner, who created the library in 1996 to render TrueType fonts, including an interpreter for handling TrueType bytecode. It was originally written in the Pascal programming language. In 1997, Robert Wilhelm ported it to C, and Werner Lemberg joined the team. Originally, the C and Pascal versions were developed in parallel, however, development of the Pascal version stopped in 2000.

     
     
  • 2.40, Аноним (58), 16:35, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Core Developers
    Alexei Podtelezhnikov (Алексей Подтележников)
    Suzuki Toshiya (鈴木俊哉)
     

  • 1.43, myster (ok), 16:39, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Такое ощущение, что Раст тут для отвлечения внимания, погодите.

    А самого главного не написали. Skrifa позволит Гуглу больше не отслеживать пользователей через свои онлайн шрифты, или наоборот расширит эту возможность и через Skrifa-API будут постоянно дёргаться сервера Гугла?

     
     
  • 2.61, Аноним (61), 17:13, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > постоянно дёргаться сервера Гугла?

    а чьи еще сервера должно дергать гуглоподелие?

     
     
  • 3.98, Аноним (12), 18:04, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ой чет у ungoogled chromium, работенки прибавится...
     

  • 1.46, Аноним (-), 16:41, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Отличная новость!
    Но что еще более отлично - что таких новостей будет все больше и больше :)

    Количеством горения местных сишников неудовлетворен.
    Где возмущение? Где "мы сделаем форк!!!111"?

     

  • 1.47, ОШИБКА Отсутствуют данные в поле Name (?), 16:43, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А потом вдруг вспомнят, что выход за границы можно предотвратить только во время исполнения, а не на этапе компиляции. На этапе компиляции можно понапихать проверок, которые будут отрабатывать во время выполнения, а потом может быть переизобретут "сборку мусора". Но сначала -- распил и откаты.
     
     
  • 2.79, чатжпт (?), 17:25, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В раст в худшем случае, если не использовать get и проверки индексов, произойдет паника при выходе за границу, а не выполнение кода как в сишке. Сборка мусора не нужна
     
     
  • 3.105, Аноним (41), 18:18, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > если не использовать get и проверки индексов, произойдет паника при выходе за границу

    Как она произойдёт, если нет проверки индекса? Магия...

     
     
  • 4.124, чатжпт (?), 19:03, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вот так и произойдет

    fn main() {
        let v = vec![0, 1, 3, 4];
        println!("{}", v[5]);
    }

    $ ./target/debug/test

    thread 'main' panicked at src/main.rs:3:21:
    index out of bounds: the len is 4 but the index is 5

     
     
  • 5.130, Аноним (130), 19:37, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Тут уже ассемблер надо смотреть, есть ли там проверка условия выхода за границу
     
     
  • 6.144, чатжпт (?), 20:17, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут уже ассемблер надо смотреть, есть ли там проверка условия выхода за
    > границу

    так я про конечного программистов говорю, что не обязательно париться с границами если паника допустима

     
     
  • 7.187, Аноним (41), 03:30, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    1984 год, Turbo Pascal

    Turbo Pascal checks if values are within limits. If the value is constant it is immediately checked for lower and upper limit. If it is not constant and range checking is enabled, Turbo Pascal will generate range checking code.

     
     
  • 8.188, чатжпт (?), 03:53, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ага, ничто не ново под луной, в раст собрано много хорошего из разных языков ... текст свёрнут, показать
     
  • 8.203, User (??), 07:16, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ужасный, отвратительный был язык Угнетал свободолюбивых дiдов и мешал стрелять ... текст свёрнут, показать
     
  • 5.186, Аноним (41), 03:19, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И что ты тут понакалякал? v[5] - тут твой безопастный компилятор вставил рантайм проверку. Это умел делать ещё паскаль в прошлом веке.
     
  • 5.189, Аноним (189), 04:52, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так даже в Си можно сделать, когда все известно на этапе компиляции.
     
  • 5.202, n00by (ok), 07:14, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > вот так и произойдет
    > fn main() {
    >     let v = vec![0, 1, 3, 4];
    >     println!("{}", v[5]);
    > }
    > $ ./target/debug/test
    > thread 'main' panicked at src/main.rs:3:21:
    > index out of bounds: the len is 4 but the index is
    > 5

    Показательный пример. Теряюсь в догадках, зачем он такой был выбран.

    #include  <stdio.h>

    int main()
    {
        int v[] = {0, 1, 3, 4};
        printf("%i", v[5]);
    }

    <source>:6:18: error: array index 5 is past the end of the array (that has type 'int[4]') [-Werror,-Warray-bounds]
        6 |     printf("%i", v[5]);
          |                  ^ ~
    <source>:5:5: note: array 'v' declared here
        5 |     int v[] = {0, 1, 3, 4};
          |     ^
    1 error generated.
    Compiler returned: 1

    https://godbolt.org/z/Wcehs45xe

     
  • 3.128, анонд (?), 19:07, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Удивлю, но программы на Паскале отродясь так работают так что Раст не нужен :)
     
     
  • 4.176, Аноним (176), 01:58, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.157, Аноним (-), 21:29, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не думаю, что об этом кто-то забывал Это же базовые факты которые обсуждаются... большой текст свёрнут, показать
     
     
  • 3.170, Аноним (170), 23:10, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сишочные технологии шагнули куда дальше этой унылой математической черты! Ведь компилятор считает, что все уже доказано и никаких выходов за границы/целочисленных переполнений и т.д. нет и оптимизирует исходя из этого. С - это поистине могучий инструмент для сильных разумом! Жаль, что еще не родился тот сишник, что смог бы с ним совладать. Ну а пока легенда ждет своего героя, можно в комментариях болеть за любимую сишку, самое главное - не пытаться на ней писать.
     
  • 3.220, Аноним (217), 09:34, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Это же базовые факты которые обсуждаются в базовом IT образовании: проблема останова не позволяет статически доказывать такие факты о коде

    Для этого нужны статические типы, о которых сишники до сих пор не знают. Про языки типа ATS или Idris вообще не слышали

     
  • 2.210, Аноним (210), 08:27, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А потом вдруг вспомнят, что выход за границы можно предотвратить только во время исполнения, а не на этапе компиляции.

    На этапе компиляции можно на зависимых типах: https://dl.acm.org/doi/pdf/10.1145/277650.277732

     
  • 2.219, Аноним (217), 09:32, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.78, Аноним (60), 17:25, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая ниша для rust. Никакого обрудования. Никаких вариантов компиляции. Строго берем файлы и вытаскиваем их них информацию аккуратно парся.

    Вот тут да. Многие могут понаделать ошибок с памятью. Вопрос только почему шрифты окажутся подменёнными?

    На компьютере пользователя? Так значит систему уже взломали.

    На сервере гугла, откуда качаются шрифты. Так значит гугла уже взломали и оттуда что угодно прилететь может.

     
     
  • 2.82, 12yoexpert (ok), 17:29, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вот тут да. Многие могут понаделать ошибок с памятью

    могли лет 30 назад, когда парсили scanf-ами

    > Вопрос только почему шрифты окажутся подменёнными?

    потому что каждый второй сайт сейчас грузит свои шрифты, а uBlock Origin, который позволял этот мусор резать, в хроме запретили

     
     
  • 3.84, Аноним (60), 17:31, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так этот парсер будет работать только с теми шрифтами, которые с гугла качаются. Или я неправильно понял?
     
     
  • 4.85, 12yoexpert (ok), 17:32, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    не знаю, я новость не читал
     
  • 4.92, нах. (?), 17:46, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Так этот парсер будет работать только с теми шрифтами, которые с гугла
    > качаются. Или я неправильно понял?

    неправильно. Вон чатгопота тебе уже принесла образец.

     
  • 2.83, чатжпт (?), 17:30, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    @font-face {
        font-family: 'MyCustomFont';
        src: url('/static/mycustomfont.woff') format('woff');
    }

    шрифт может лежать где угодно

     
  • 2.184, Аноним (181), 02:59, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вопрос только почему шрифты окажутся подменёнными? ...На компьютере пользователя? ... На сервере гугла

    на любом сайте интернета. Еще в pdf'ку и тому подобное тебе могут всунуть кастомный шрифт, со своими глифами и всем что там полагается.

     

  • 1.145, мяв (?), 20:55, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >частью проекта Oxidize, созданного для перевода утилит и библиотек для работы с текстом и шрифтами с компонентов на языках Python (fonttools, fontmake, nanoemoji) и C++ (HarfBuzz, FreeType) на новые реализации, написанные на Rust.

    зачемв  питонореализации, применяемые, очевидно, только в питоне, руст ?
    оно ни безопаснее не будет, ни быстрее - форк кратно дороже
    любого питонокода будет.
    и даже если там как-то можно что-то сделать ffi'ем, то, все равно, зачем ??

     
  • 1.147, мяв (?), 20:59, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Например, на прошлой неделе во FreeType была выявлена критическая уязвимость,

    мне интересно, это аффтар новость не читал, или.. или кто ?
    не верю, что это разрабы написали.
    в FT была ошибка из-за неверного приведения типа. раст умеет от этого спасать ? (при условии, что разрабы просто варнинги выключают)

     
     
  • 2.151, Вася Пупкин (?), 21:19, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    с типами ржавый очень педантичный, все заставляет явно приводить
     
  • 2.153, Анонимусс (-), 21:22, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > в FT была ошибка из-за неверного приведения типа

    Угу. А дальше что было? А дальше писали мимо буфера.

    "в результате чего может возникнуть целочисленное переполнение и выделение буфера неверного размера. В последующем за пределы данного буфера записывается как минимум 6 знаковых целых чисел с типом "long"."

    > раст умеет от этого спасать ?

    Разумеется! Это же современный язык со строгой типизацией.
    Мутных типов вроде signed short и unsigned long в расте нет, поэтому заменил на аналоги.
    Вот код godbolt.org/z/3Tn4KTPc6.




        let a: u64 = 10005000;
        let mut b: i16 = a;


    Выдает ошибку



    error[E0308]: mismatched types
      --> <source>:12:22
       |
    12 |     let mut b: i16 = a;
       |                ---   ^ expected 'i16', found 'u64'
       |                |
       |                expected due to this
       |
    help: you can convert a 'u64' to an 'i16' and panic if the converted value doesn't fit
       |
    12 |     let mut b: i16 = a.try_into().unwrap();
       |                       ++++++++++++++++++++

    error: aborting due to 1 previous error

    For more information about this error, try 'rustc --explain E0308'


    Хотя можно и не паниковать, а взять result и проверить на ошибку.
    Т.е. раст не позволяет молча выстрелить себе в ногу.

     
     
  • 3.156, Tron is Whistling (?), 21:28, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Накладные расходы на такие извращения в inner/medium inner loop могут быть очень весёлыми.
     
     
  • 4.159, Анонимусс (-), 21:36, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Накладные расходы на такие извращения в inner/medium inner loop могут быть очень весёлыми.

    Где там расходы?
    Нужно не экономить битики в цикле с писать сумму в u64 или i64. А u16.into() превращается в нужный u64 вообще одной асм командой (в релизе). Просто от программиста требуется явно указать что он таки хочет ковертнуть типы.

    Но да, намного веселее получить CVE in the wild и взломы со словами "зато я пару тактов сэкономил!"))

     
     
  • 5.225, Tron is Whistling (?), 10:01, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И как, много CVE in the wild лично вас затронули? Ну или хотя бы кого-то из крупняка?
     
  • 4.161, Аноним (-), 21:46, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Накладные расходы на такие извращения в inner/medium inner loop могут быть очень весёлыми.

    Могут быть, а могут и не быть. У тебя есть профайлер для того, чтобы увидеть разницу, и если накладные расходы кусаются, то сделать как-то иначе. В большинстве же случаев приведения эти накладные расходы невозможно заметить никакими приборами, и жертвовать надёжностью кода во всех этих случаях ради некоторых особых случаев -- это так себе идея.

     
     
  • 5.223, Tron is Whistling (?), 09:56, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Хруст и профайлер, вы серьёзно? Они консольные утилиты-то годами переписывают кое-как в версию 0.01 с кучей багов.
     
  • 4.204, n00by (ok), 07:24, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это выявляется на этапе трансляции, но в Си не является ошибкой. Если же требуется проверка именно во время исполнения, то накладные расходы на неё существенно меньше, чем на "выделение буфера [неверного размера]".
     
  • 3.163, Аноним (-), 21:56, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кек try_into unwrap Смотри и учить, салага, как делать без проверок и ... большой текст свёрнут, показать
     
     
  • 4.165, Анонимусс (-), 22:15, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Если преобразовываться будет не числовой литерал, а аргумент функции, компилятор промолчит.

    И нафиг такое счастье? Мне наоборот нужно, чтобы он меня предупредил.
    Варнинги в коде признак того, что код начинает попахивать. И их нужно исправлять.

    > Если второе

    Вроде бы очевидно что второе. Тебе что в одном варианте, что в другом нужно явно написать "ДА, я хочу конвертнуть числа".

     
  • 3.178, мяв (?), 02:31, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >разумеется

    а если скобки почитать ?
    компиляторы С тоже об этом пишут. просто ребята с фридесктопа "проверили на ошибку", поотрубав варнинги.

     
  • 2.160, Аноним (-), 21:44, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В расте неверные приведения целых чисел генерируют ошибки, а не варнинги И ошиб... большой текст свёрнут, показать
     
     
  • 3.167, Вася Пупкин (?), 22:44, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >// вот тут явное приведение типа, которое компилятор скушает молча

    бзв поэтому лучше писать let b = u16::from(a);

     
     
  • 4.172, laindono (ok), 23:55, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    the trait 'From<u64>' is not implemented for 'u16'

    А вот TryFrom<u64> вполне себе.

     
  • 3.179, мяв (?), 02:36, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    вообще, да.
    но и варнинги не по приколу существуют.
    более того, их описания тоже на что-то обычно наталкивают.
    поэтому тут скорее плохой танцор, решивший танцевать с инструментом с таким к.-вом ub.
     
     
  • 4.180, мяв (?), 02:40, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    причем, __явно__ проигнорировавший табличку о последствиях.
     

  • 1.148, Аноним (-), 21:07, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Использование Rust позволило значительно снизить вероятность появления проблем при работе с памятью,

    Ссылку на измерения в студию или не было.

    > По статистике Google и Microsoft около 70% опасных уязвимостей вызваны проблемами при работе с памятью,

    Это всё та же статистика десятилетней давности, про которую растоманы нам не устают повторять, или были какие-то фоллоап исследования, подтверждающие числа?

     
     
  • 2.152, Аноним (-), 21:20, 20/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Использование Rust позволило значительно снизить вероятность появления проблем при работе с памятью,
    > Ссылку на измерения в студию или не было.

    security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html

    > Это всё та же статистика десятилетней давности, про которую растоманы нам не устают повторять, или были какие-то фоллоап исследования, подтверждающие числа?

    Там был классный followup - отчет о написании 1.5млн строк расто кода в 13 андроиде.
    To date, there have been zero memory safety vulnerabilities discovered in Android’s Rust code.


     
     
  • 3.173, Аноним (41), 00:35, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > 1.5млн строк расто кода

    если написать 1.5млн строк на си типа 2+2, в них тоже будет zero memory safety vulnerabilities

     

  • 1.183, Аноним (183), 02:54, 21/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Rust предотвращает double-free и use-after-free. Никаких гарантий невыхода за границы буфера он не дает. Покажите где я не прав.
     
     
  • 2.192, Аноним (192), 05:42, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Покажите где я не прав.

    Где-то в части про никаких гарантий.
    Раст, если при реализации втупую обратиться к индексу за пределами массива, просто паникнёт, не приводя к получению доступа к произвольным данным, выполнениям произвольного кода и прочим UB, за которые так любят сишку 90-летние пердуны.
    Но нормальный разработчик будет использовать интерфейсы к массиву, которые будут давать Option или Result, которые обязательно надо обработать... либо использует iter().

     

  • 1.193, Аноним (193), 06:13, 21/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Отлично! Гугл таки вляпался в раст. Будет весело)))
     
     
  • 2.222, Аноним (34), 09:55, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Настало время изумительных историй.
     

  • 1.208, Pret78 (?), 08:19, 21/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Похоже, что основная причина создания Rust это работа со шрифтами:
    "Использование Rust позволило значительно снизить вероятность появления проблем при работе с памятью, повысить качество кода, снизить затраты времени на исправление проблем с безопасностью и ускорить внесение улучшений в возможности Chrome, связанные со шрифтами."
     
     
  • 2.221, Аноним (34), 09:54, 21/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут шрифты до Раста?
    Сильно печот?
     

  • 1.209, Аноним (209), 08:27, 21/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Использование Rust позволило значительно снизить вероятность

    Просьба дать точечную и интервальную оценку указанной вероятности. Хотя полагаю, что подобные исследования вряд ли выполнялись. Автор исследования любит использовать терминологию из области науки, в которой не является специалистом. Все это характеризует обстоятельства вокруг сабжа как не имеющие никакого отношения к программированию.

     
  • 1.226, Аноним (226), 10:05, 21/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > По статистике Google и Microsoft около 70% опасных уязвимостей вызваны проблемами при работе с памятью, которых можно избежать при использовании языка Rust **без unsafe-блоков**.

    Ну как бы даже в основной новости написано, что Rust'ом тоже надо уметь пользоваться, чтобы избежать проблем с памятью. Вот внезапность то! И с C / C++ надо уметь пользоваться! И если всё делаете правильно, а не неправильно, то не будет проблем. XD

    В общем: как всегда, гаркнуть лозунг гаркнули, а вот в реальности всё будет обстоять совершенно иначе. И Раст ну никак нигде не поможет.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру