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 обязательно


Обсуждение (242) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:33, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +18 +/
    Скоро они узнают что кроме выхода за границы есть ещё много видов ошибок.
     

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

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

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

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

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


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

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

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

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

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

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

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

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

     
  • 3.97, Аноним (96), 18:03, 20/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Так это же его хлеб. Ему за это платят.
     
  • 3.182, Аноним (181), 02:46, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Ну почему сразу всем. Отвыкай говорить за всех. Мне вот стало хорошо. От того, что потенциальных дыреней стало (и станет) меньше.
     
  • 2.28, Oi (?), 16:23, 20/03/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    emerge www-client/google-chrome затащит бинарный пакет.
     
     
  • 3.35, Аноним (-), 16:32, 20/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > 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'е, ага.
     
  • 4.261, Герострат (?), 12:58, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Если вдруг захотелось собрать систему из исходников, это не значит, что нужно собирать абсолютно всё. Держишь хромы и расты во флатпаке и в ус не дуешь. Ещё и права доступа можно обрезать прямо в кдешном system settings.
     
     
  • 5.298, Аноним (207), 23:37, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Здесь компиляем, здесь не компиляем. Здесь рыбу заворачивали.
     
  • 2.86, FSA (ok), 17:32, 20/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    > "в хроме нет раста"

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

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

  • 1.5, Аноним (-), 15:43, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    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 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > Дырявую сишку потихоньку заменяют на нормальный язык.

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

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

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


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

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

     
     
  • 5.317, Ананимус (?), 09:59, 23/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Тот самый Zig, где ручками управляешь ресурсами.

    Он это и сказал.

     
  • 3.218, Аноним (217), 09:29, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Хватит вам носится со своим zig-ом, у него до сих пор релизной версии нет. А с учётом того, что ничего прорывного в нём нет, то это вообще какой-то позор. Ладно бы они там афинные/зависимые типы делали или какую-то другую вещ, они скопипастить готовый функционал не могут
     
  • 2.149, Аноним (-), 21:14, 20/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > Правда для этого нужно быть гуглом, а не неосилятором.

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

     

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

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

    > Несложную.

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

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

    Завидно?))


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

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

     
     
  • 3.162, anono111111111111111111 (?), 21:47, 20/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    Скоро и переписывать не надо будет - 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 [^] [^^] [^^^] [ответить]      [к модератору]
  • –3 +/
    А , ещё иногда требуется исправить заголовочные фаилы ты не ослышался: вручную , скоро всё вскроется это проект индустрия 2.0 тут можно стрелять так же и по своим ногам благославляя ложь и мошеннические действия в виде заговоров
     
  • 4.174, ИТ_НЕ_ТАК_ПРОСТО_КАК_ТЫ_ДУМАЕШЬ_КОПИРАЙТЕР (?), 01:04, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –3 +/
    Не поможет везде разные флаги , одна программа ждёт -03 другая может вообще какой нибудь -01 третья ждёт добавления пока не известного флага иначе будет в пол тора раза медленее и так далее и только вороватые чужих инвестиции через банки могут быть уверены что они правы
     
  • 2.201, Аноним (201), 07:13, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Это разные люди.
     
  • 2.245, Аноним (-), 11:53, 21/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     

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

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

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

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

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

     
  • 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, Аноним (241), 08:32, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Перед тем, как стать Firefox браузер успел побыть Phoenix и Firebird
    Но я не думаю, что с Mozilla Firebird сейчас можно хоть на какой-то сайт попасть
     
  • 4.324, Аноним (322), 20:41, 23/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    https://www.firebirdsql.org
     

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

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

     
  • 1.36, Аноним (58), 16:32, 20/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    на сайте 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 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    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 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +8 +/
    Отличная новость!
    Но что еще более отлично - что таких новостей будет все больше и больше :)

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

     
     
  • 2.200, User (??), 07:13, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Они стройными рядами перейдут на firefox...
    Oh, shi...!!?
     
     
  • 3.304, Аноним (303), 10:38, 22/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Да куда они там перейдут...
    Доля Лисички (к большому сожалению) такая, что её уже в микроскоп рассматривать надо... :(

    Но и таки вы правы - им ещё и с Linux придётся уходить, так как Линус там тоже это... В отношении Rust тоже не бездействует )))

     

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

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

     
     
  • 4.124, чатжпт (?), 19:03, 20/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

     
     
  • 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 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    ага, ничто не ново под луной, в раст собрано много хорошего из разных языков ... текст свёрнут, показать
     
  • 8.203, User (??), 07:16, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ужасный, отвратительный был язык Угнетал свободолюбивых дiдов и мешал стрелять ... текст свёрнут, показать
     
  • 5.186, Аноним (41), 03:19, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    И что ты тут понакалякал? v[5] - тут твой безопастный компилятор вставил рантайм проверку. Это умел делать ещё паскаль в прошлом веке.
     
  • 5.189, Аноним (189), 04:52, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Так даже в Си можно сделать, когда все известно на этапе компиляции.
     
  • 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

     
     
  • 6.255, Аноним (252), 12:49, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    заметим что данный код уже эквивалентен вот этому:

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

    и выдает ошибку компиляции:

    error: this operation will panic at runtime
    --> src/main.rs:3:20
      |
    3 |     println!("{}", v[5]);
      |                    ^^^^ index out of bounds: the length is 4 but the index is 5
      |
      = note: '#[deny(unconditional_panic)]' on by default

     
     
  • 7.280, n00by (ok), 15:06, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так я и заметил начало ветки - "А потом вдруг вспомнят, что выход за границы можно предотвратить только во время исполнения, а не на этапе компиляции."
     
  • 6.256, laindono (ok), 12:49, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ты забыл malloc/free. Тип std::vec::Vec<T> является contiguous growable array. Динамическим массивом.

    fn main () {
        let a = [1, 2, 3, 4];
        println!("{}", a[5]);
    }

    error: this operation will panic at runtime
    --> src/main.rs:3:20
      |
    3 |     println!("{}", a[5]);
      |                    ^^^^ index out of bounds: the length is 4 but the index is 5
      |
      = note: '#[deny(unconditional_panic)]' on by default

     
     
  • 7.281, n00by (ok), 15:08, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Я ничего не забыл. Я не реагирую на последнее сообщение ветки, а читаю с корневого сообщения:

    "А потом вдруг вспомнят, что выход за границы можно предотвратить только во время исполнения, а не на этапе компиляции."

    Почему меня и удивило, что спор ушёл не совсем туда.

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

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

     
  • 3.240, Аноним (56), 11:45, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Проблема останова лишь наглядно показывает, что нельзя доказать все-все-все д... большой текст свёрнут, показать
     
     
  • 4.292, Аноним (-), 22:41, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    У компилятора есть все исходные тексты под рукой, как у него может отсутствовать... большой текст свёрнут, показать
     
     
  • 5.299, Аноним (56), 00:16, 22/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    У компилятора си, плюсов и т д см предыдущее наследие старых ЯП с примитивны... большой текст свёрнут, показать
     
     
  • 6.314, Аноним (-), 17:07, 22/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Эти вещи принципиально не меняют расклада Анализ кода остаётся локальным, прост... большой текст свёрнут, показать
     
  • 2.210, Аноним (210), 08:27, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > А потом вдруг вспомнят, что выход за границы можно предотвратить только во время исполнения, а не на этапе компиляции.

    На этапе компиляции можно на зависимых типах: 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 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Хорошая ниша для rust. Никакого обрудования. Никаких вариантов компиляции. Строго берем файлы и вытаскиваем их них информацию аккуратно парся.

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

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

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

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

    могли лет 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 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    @font-face {
        font-family: 'MyCustomFont';
        src: url('/static/mycustomfont.woff') format('woff');
    }

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

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

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

     
  • 2.248, Аноним (-), 12:00, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Вопрос только почему шрифты окажутся подменёнными?

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

     

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

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

     
     
  • 2.306, Прохожий (??), 11:06, 22/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >форк кратно дороже любого питонокода будет

    В каком смысле?

    >и даже если там как-то можно что-то сделать ffi'ем, то, все равно, зачем ??

    Видимо, чтобы ускорить работу программ (библиотек).

     

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

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

     
     
  • 2.151, Вася Пупкин (?), 21:19, 20/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    с типами ржавый очень педантичный, все заставляет явно приводить
     
  • 2.153, Анонимусс (-), 21:22, 20/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Угу А дальше что было А дальше писали мимо буфера в результате чего может во... большой текст свёрнут, показать
     
     
  • 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 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +1 +/
    > Накладные расходы на такие извращения в inner/medium inner loop могут быть очень весёлыми.

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

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

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

    > Если второе

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

     
     
  • 5.295, Аноним (-), 23:10, 21/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 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    the trait 'From<u64>' is not implemented for 'u16'

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

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

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

    Пришлось искать ко(м)промисы и в kernel оно было включено не полностью.

     
  • 4.290, Аноним (312), 19:26, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ну так сишочный консенсус в том, что программист умнее каких-то там тупых компиляторов с варнингами, язык с создания это поощрял. Тем более что варнинг этот мог появиться позавчера, а код написал дед из Беркли в 1983.
     
     
  • 5.327, Аноним (60), 15:45, 24/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Причем у этого деда из Беркли в 1983, возможно код и не вызвал современных предупреждений.

    Как пример код, который может компилироваться и Qt4 и Qt5,Qt6.

    Там поменялось многое, но при желании можно писать один код для 3-х версий библиотек. Вот только он без танцев с бубном он будет вызывать предупреждения из-за несовпадения типов.

     

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

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

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

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

     
     
  • 2.152, Аноним (-), 21:20, 20/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    >> Использование 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

     
  • 3.297, Аноним (-), 23:18, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Спс за ссылку.

    Забавно, там есть анти-RiiR утверждение:

    > it’s interesting to note that the percent of vulnerabilities caused by memory safety issues seems to correlate rather closely with the development language that’s used for new code. This matches the expectations published in our blog post 2 years ago about the age of memory safety vulnerabilities and why our focus should be on new code, not rewriting existing components.

    Как я понимаю, бессмысленно переписывать старый код на rust'е, потому что там и так уже уязвимостей мало, но вот новый надо писать на rust'е, чтобы не создавать этих уязвимостей.

     
     
  • 4.315, Аноним (-), 00:33, 23/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Да, именно так гугл и делает И к этому пришли в ядре У них есть еще другая ста... большой текст свёрнут, показать
     
  • 4.316, Аноним (-), 00:35, 23/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ну и утверждение гугла валидно только для переписывания за деньги.
    Для их старых кодов это экономически не имеет смысла.

    А вот just for fun можно хоть на брейнфаке писать.
    И если есть люди, которые бесплатно переписывают что-то на раст - это наоборот отлично))

     

  • 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().

     
  • 2.234, Аноним (-), 11:21, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    > Никаких гарантий невыхода за границы буфера он не дает.
    > Покажите где я не прав.

    Ты не можешь выйти за границы буфера если программа паникует при попытке и аварийно завершается. И то что ты не выйдешь тебе гарантируется))

     

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

    Что значит вляпался?
    Он один из создателей RustFoundation и платиновый спонсор. Они платят деньги чтобы раст развивался и становился лучше.

    Код на расте гугл использует где-то с 2018-19 года (андроид).
    Но кто ж из хейтеров об этом знает)))

    И оно уже давно в проде у миллионов юзеров.
    Поэтому весело должно было быть уже лет пять, но что-то мир не рухнул (и андроид тоже).

     

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

    Читай внимательно - не шрифты для раста, а раст для шрифтов.

     
     
  • 4.307, Прохожий (??), 11:16, 22/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ваш оппонент написал "до Раста", а не "для Раста". И кто здесь невнимательно читает?
     
     
  • 5.308, Pret78 (?), 11:21, 22/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Ваш оппонент написал "до Раста", а не "для Раста". И кто здесь
    > невнимательно читает?

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

     
  • 2.286, анонимище (?), 18:08, 21/03/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Будьте осторожны в своих рассуждениях, ибо такими рассуждениями можно так же прийти к тому, что так же в основные причины создания Раст, можно включить ядра операционных систем и kernel драйвера)
     
     
  • 3.291, Pret78 (?), 21:45, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Будьте осторожны в своих рассуждениях, ибо такими рассуждениями можно так же прийти
    > к тому, что так же в основные причины создания Раст, можно
    > включить ядра операционных систем и kernel драйвера)

    Вообще, под Раст и ядро Линукс уже работает, и даже между мэйнтейнерами ядра Линукс была ссора (скорее всего всё ещё есть, потому что сишники не хотят код на раст и вроде даже не могут с ним работать).

     

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

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

     
     
  • 2.263, Аноним (252), 13:04, 21/03/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.ht

    "As the amount of new memory-unsafe code entering Android has decreased, so too has the number of memory safety vulnerabilities. From 2019 to 2022 it has dropped from 76% down to 35% of Android’s total vulnerabilities. 2022 is the first year where memory safety vulnerabilities do not represent a majority of Android’s vulnerabilities."

     

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

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

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

     

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

  • 1.250, Аноним (-), 12:07, 21/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.294, Аноним (294), 23:03, 21/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Минимум в виде 8 гб памяти больше не минимум. Покупаем сразу тридцать два. Для комфортной работы с хромом придётся купить 64 гигабайта.
     
  • 1.325, Анонимм (??), 20:58, 23/03/2025 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Мы заметим?
     

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



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

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