The OpenNET Project / Index page

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

Fil-C - компилятор для языков C и C++, гарантирующий безопасную работу с памятью

17.11.2024 12:12

Филипп Пизло (Filip Pizlo) представил на конференции SPLASH'24 открытый C/C++ компилятор Fil-C, предоставляющий защиту от проблем, вызванных ошибками при работе с памятью. Проект нацелен на обеспечение полной совместимости с существующим кодом на языках C и C++ - для обеспечения безопасной работы с памятью достаточно просто пересобрать существующий код. Компилятор построен с использованием компонентов от проекта LLVM и распространяется под лицензией Apache 2.0. Runtime поставляется под лицензией BSD. В отличие от недавно анонсированного проекта TrapC, находящегося на стадии проектирования, компилятор Fil-C уже доведён до готовности сборки существующего кода.

Проектом также поставляются безопасно работающие с памятью варианты стандартных библиотек C (libc) и C++ (libc++), основанные на библиотеках Musl и LLVM libc++. Среди прочего, в собираемых программах могут использоваться такие возможности, как многопоточность, обработка сигналов, маппинг файлов в память (mmap), longjmp/setjmp и обработка исключений в C++. При помощи Fil-C без внесения изменений могут быть собраны проекты bzip2, zip, pcre и ncurses. С незначительными модификациями поддерживается сборка OpenSSH, OpenSSL, CPython, SQLite, Lua, Curl, Lynx, jpeg6b, zsh, xzutils и simdutf.

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

Заявлено, что комбинация из MonoCaps и FUGC позволяет отлавливать и блокировать все ошибки, связанные с выходом за границы буфера в стеке и куче, обращением к уже освобождённой памяти, состояниями гонки при работе с указателями, а также неправильной обработкой типов (Type Confusion) в контексте пересечения типов указателей и не указателей, проблем при динамической компоновке (linking) и некорректного использования va_lists. Кроме того, Fil-C отдельно проверяет границы и типы в буферах, передаваемых в системные вызовы.

Ценой возможности использования Fil-C для защиты существующих проектов, без необходимости переписывания их кода или задействования особых языковых конструкций, является снижение производительности. На текущем этапе развития, собираемые в Fil-C программы медленнее примерно в 1.5-5 раз, по сравнению со сборкой обычными компиляторами. В планах заявлена работа по проведению оптимизации. Предполагается, что после завершения этой работы в большинстве случаев код будет выполняться медленнее в 1.2 раза, а в наихудших сценариях замедление не превысит полтора раза. Компилятор пока поддерживает только платформу Linux на системах X86_64. Предыдущие версии поддерживали macOS и FreeBSD, но затем было решено не распылять усилия и вначале подготовить качественный порт libc для одной платформы.

Другим ограничением Fil-C является принципиальный отказ от сохранения совместимости на уровне ABI для кода на C/C++, что не позволяет связывать собираемый в Fil-C код с библиотеками и объектными файлами, собранными другими компиляторами. Методы вызова функций и способ динамического связывания в Fil-C отличается от существующих компиляторов и компоновщиков. Подобное решение объясняется тем, что при связывании с незащищённым кодом теряется суть предлагаемой в Fil-C защиты и возникает иллюзия защищённого приложения - при наличии совместимости ABI, у разработчиков возникал бы соблазн собрать в Fil-C лишь отдельные файлы, не утруждая себя портированием всего проекта.

Задействованный в Fil-C механизм MonoCap основывается на применении 16-байтовых указателей, в которых помимо адреса в памяти, указывается ссылка на объект, включающий сведения о возможностях (capability), таких как верхняя и нижняя границы буфера, ассоциированного с указателем, а также массив, определяющий типы данных, хранимые в каждом блоке памяти (1 байт с информацией о типе (unset, int, ptr, free) для каждого 16-байтового блока памяти). При каждом обращении к памяти по указателю осуществляется проверка границ и типа (например, в память с типом "ptr" не могут быть записаны данные с типом "int" и наоборот).

Все операции выделения и освобождения памяти обрабатываются сборщиком мусора FUGC (Fil's Unbelievable Garbage Collector), который при освобождении памяти переводит все связанные с освобождаемым буфером записи о типах в значение "free" и затем перенаправляет все указатели на освободившиеся объекты на отдельный объект, сигнализирующий о том, что память уже освобождена. Любое дальнейшее обращение к блоку данных с типом "free" или по указателю, связанному с освобождённым объектом, приводит к генерации исключения, что позволяет защититься от уязвимостей класса use-after-free. Сборщик мусора работает параллельно и не приостанавливает выполнение других потоков.

Использование комбинации из MonoCaps и FUGC позволяет сохранить возможность привычной работы с указателями и оставить неизменной семантику вызовов malloc и free, предоставив при этом гарантированную защиту. Код программы может содержать различные логические ошибки, такие как неправильное приведение типов, неверные арифметические операции с указателями, состояния гонки и несвоевременный вызов функции free(), но независимо от всего этого, Fil-C запомнит исходные границы и тип данных, и прервёт выполнение, если будет предпринята попытка доступа по указателю к области вне запомненных границ, обращения к освобождённому блоку памяти или чтения данных с типом "int" как указателя или наоборот.

Автор Fil-C, Филипп Пизло, занимает в компании Epic Games пост директора, отвечающего за проекты, связанные с языками программирования. Филипп имеет богатый опыт работы над виртуальными машинами, языками программирования, компиляторами и сборщиками мусора, например, в IBM он развивал язык программирования X10, в Microsoft работал над сборщиками мусора Stopless, Clover и Chicken, в Apple занимался JIT-компилятором и оптимизациями браузерного движка WebKit, в Epic Games возглавляет команду разработчиков, развивающую язык программирования Verse и связанную с ним виртуальную машину. Филипп также является одним из ключевых разработчиков виртуальных машин Jikes RVM, Ovm и Fiji VM.



  1. Главная ссылка к новости (https://www.theregister.com/20...)
  2. OpenNews: Проект TrapC развивает Си-подобный язык, безопасно работающий с памятью
  3. OpenNews: C++ Alliance продвигает в C++ механизмы безопасной работы с памятью, опробованные в Rust
  4. OpenNews: Методы безопасной работы с памятью позволили существенно снизить число уязвимостей в Android
  5. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
  6. OpenNews: DARPA развивает AI-транслятор для переписывания Си-кода на Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62241-fil-c
Ключевые слова: fil-c, gcc, llvm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (147) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:14, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    А визгу то стояло на опеннете что сишка небезопасная, а всего то надо было сделать безопасную сишку и никакой раст больше никогда никому не необходим.
     
     
  • 2.2, Alladin (?), 13:24, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    да, всего-то.. на расте это гарантируется типами и маркерами, а на этом..
     
     
  • 3.4, Аноним (1), 13:33, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да гарантируется что боров запрещает объектам мутировать и делает так что программирование превращается в борьбу с этим самым боровом, а не в получение работающего продукта.
     
     
  • 4.7, Alladin (?), 13:37, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –5 +/
    борров это про мувинг семантику и заимствование структур

    если вы называете рабочий продукт в котором двойное освобождение и утечки памяти то пожалуйста

    другие вещи борров не решает

     
     
  • 5.14, Аноним (1), 13:46, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Это тоже самое что построить такой город в котором на входе и выходе каждого здания и в общественном транспорте поставить рамки, рентген и проверять каждого жителя не мутировал ли он после выхода из дома. А если по ходу надел шапку или сходил в туалет считать что он мутировал и собирать его гарбедж коллектором вместе во всеми связанными объектами. А вдруг он мутировал получив бомбу. Причём если он сразу вышел из дома с бомбой к нему вопросов нет. Сколько раз уже пытались построить такой город с названием то Серво, то Редокс получается ерунда, не выходить каменный цветок.
     
     
  • 6.37, Аноним (-), 14:36, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хм ты ж только, что описал Город-СИ Где вышедший из дома гражданин, может че... большой текст свёрнут, показать
     
     
  • 7.63, Аноним (1), 15:15, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дум даже на калькуляторе без ОС играется. А все остальное это называется свобода передвижения в конституции даже такое записано. Если мне нужно соседу в голову я просто иду к соседу в голову. И его на это согласие это очень опционально штука. И в такой город ты найдешь очень много программистов и строителей, которые тебе отстроят и запрограммируют.  
     
     
  • 8.73, Аноним (73), 15:40, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Хахаха, ты про ту смешную бумажку А ну давай-ка свободно передвинься в Ново-Ога... текст свёрнут, показать
     
     
  • 9.105, Аноним (105), 17:06, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты в таком городе живёшь и почему то не переезжает в безопасТный Даже если бы т... текст свёрнут, показать
     
  • 4.12, Аноним (-), 13:42, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да гарантируется что боров запрещает объектам мутировать и делает так что
    > программирование превращается в борьбу с этим самым боровом, а не в
    > получение работающего продукта.

    С другой стороны это гарантирует что не попробуют освободить еще используемое получив dangling pointer или не сделают освобождение дважды, и тому подобне факапы. Так то нормальная идея вполне. С основной ее прелестью - zero cost как таковое, в рантайме.

     
     
  • 5.18, Аноним (1), 13:51, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 5.59, Бывалый Смузихлёб (ok), 15:00, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    только cost совсем не zero
     
     
  • 6.64, Аноним (1), 15:16, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Zero только в случае если программируешь и запускаешь этот код не ты)
     
  • 4.75, Страдивариус (?), 15:57, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Перешел на rust с плюсов. Точнее пишу на обоих. Пока пытался писать на rust по плюсовому, то да, была борба с боровым. Как только достиг дзена, боров потрясающе помогает. Пишешь неделю код, потом запускаешь и с первого запуска почти без багов.
     
     
  • 5.87, Аноним (87), 16:27, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так себе из тебя погромист, если ты написанное только раз в неделю запускаешь.
     
  • 5.106, Аноним (105), 17:08, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Яркое описание того почему на расте нет софта из первых рук. Это я тут даже про тесты не пишу.
     
  • 2.3, laindono (ok), 13:28, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +7 +/
    На Rust всё вышеперечисленное либо дешевле, либо zero-cost, либо compile time.
    То есть да, сишечку можно превратить в жалкое подобие, но ценой производительности.
     
     
  • 3.5, Аноним (1), 13:34, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это что за магия такая или трава, про зеро кост? Ты надеюсь сам понимаешь что так не может быть и ты пересказываешь маркетинговые сказки.
     
     
  • 4.8, Alladin (?), 13:38, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    зероконст, если вы считаете что весь мир обкурился травой то это ваши проблемы, а не мира
     
  • 4.19, laindono (ok), 13:51, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Например вместо 128-битных указателей и прочей подобной фигни есть сильная типиз... большой текст свёрнут, показать
     
     
  • 5.26, Аноним (1), 14:13, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Предлагаю тебе зайти на сайт https://godbolt.org/ написать одинаковый код на расте и сишке и плюсплюске без llvm и пересчитать количество команд. Я конечно понимаю что для вас 10 км не круг и ты может быть найдешь пример где на расте будет меньше инструкция, но среднее количество команд сможешь оценить и ты.
     
     
  • 6.31, Фнон (-), 14:21, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Я конечно понимаю что для вас 10 км не круг

    Я конечно понимаю, что для вас "ну подумаешь сделали double free и подарили root" это не проблема, но другие не хотят писать такой код.

    Если вопрос в кол-ве команд - то можно на ассемблере все фигачить (в надежде что пряморукость будет больше чему у оптимизирующего компилятора).

     
  • 6.32, laindono (ok), 14:26, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://godbolt.org/z/Pv9E74Wan

    Окей, простой пример. Одинаковое количество инструкций. Придумай более сложный пример.

    Предположу, что ты, когда сам тестил, забыл добавить -C opt-level=3 компилятору Rust. По умолчанию rustc собирает в дебаг режиме.

     
     
  • 7.36, Аноним (36), 14:35, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не хейтер раста или плюсов, но у тебя получился слишком примитивный пример, который не показывает различий в подходе у этих ЯП.
     
     
  • 8.55, Аноним (55), 14:53, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я вообще другой аноним, но считаю для ответа доказательства моей правоты на... текст свёрнут, показать
     
     
  • 9.66, Аноним (1), 15:21, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Явно видно как деградирует уровень аргументации у адептов раста Раньше было бол... текст свёрнут, показать
     
     
  • 10.69, Аноним (-), 15:27, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Приходится опускаться на донный уровень оппенентов, тк они по другому не понимаю... текст свёрнут, показать
     
  • 10.85, Аноним (55), 16:22, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Экая самокритичность, но адепт ты какой-то странный ... текст свёрнут, показать
     
  • 8.74, laindono (ok), 15:50, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну давай чуть менее примитивный Аллокация динамического массива Код делает при... текст свёрнут, показать
     
  • 7.65, Аноним (1), 15:18, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и я говорю нашел едж кейс и пытаешься им что-то себе доказать. Но это лишь доказывает бессмысленность существования раста.
     
     
  • 8.68, laindono (ok), 15:24, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так я не знаю, что ты вообще хочешь увидеть Эквивалентный код выдаёт эквивал... текст свёрнут, показать
     
  • 8.100, Аноним (-), 16:54, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хм а разве не ты пернул в комментарий напиши код и считай кол-во команд Теб... текст свёрнут, показать
     
     
  • 9.109, Аноним (105), 17:17, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 10.114, Аноним (-), 17:31, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.30, Ан (??), 14:21, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Для типов, не меняющих свой размер, ничего держать в RAM не требуется, всё известно на этапе компиляции.

    поэтому чтобы код был безопасным надо чтобы всё было написано на раст, один внедряла в ядро уже сдулсо..

     
     
  • 6.42, Аноним (-), 14:40, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > один внедряла в ядро уже сдулсо..

    из-за дидов-"вы не заставите миня учить раст, ррряяя!!!1"-неосиляторов.
    Перешел туда, где его умения ценятся. И правильно сделал.
    Пусть лучше меньше дырений будет в андроиде, хроме, винде. А ядро... типа кому оно нужно.

     
     
  • 7.50, Ан (??), 14:48, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Пусть лучше меньше дырений будет в андроиде, хроме, винде. А ядро... типа кому оно нужно.

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

     
  • 7.111, Аноним (111), 17:29, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вы про того, кто придя в проект как разработчик, захотел свою работу свалить на других а сам рулить?

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

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

     
     
  • 8.137, Аноним (-), 18:09, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, ага, настлолько что Линус разочарован тем, что все так медленно внедляется ... текст свёрнут, показать
     
  • 2.11, Аноним (11), 13:41, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Справедливости ради, отлов ошибки во время компиляции гораздо лучше аварийного завершения во время выполнения.
     
     
  • 3.53, _kp (ok), 14:51, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, так поставил ловушку, перехватывай и обрабатывай, кто ж запретит..
    А если именно бросать неосвобожденные объекты на самотек, то вполне вариант.
     
  • 3.67, Аноним (1), 15:24, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Аварийное завершение наоборот лучше чем выход за пределы.
     
  • 2.33, Аноним (-), 14:29, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > а всего то надо было сделать безопасную сишку

    Так это и не сишка, а какой-то кадавр с си-синтаксисом.
    В соседних темах люди не хотят использовать раст из-за просадки производительности на 1-2% по сравнению с чистой сишкой.
    А тут просадка в "1.5-5 раз" (ПЯТЬ!!!) и вы называете это заменой сишки??
    Лучше уже на шарпе или свифте писать вместо этого недоразумения.

     
     
  • 3.41, Аноним (41), 14:39, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там не 1-2%. Всё, что во время компиляции не вычислить, не бесплатно.
     
     
  • 4.60, Анонимусс (-), 15:09, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.115, Аноним (111), 17:31, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это хороший инструмент отлавливать ошибки.

    Знаешь, что есть проблемное место. Собираешь - тестируешь. Ловишь - исправляешь.

    Возвращаешь назад обычную Си. Просто еще один способ отловить ошибку.

     
  • 2.35, Аноним (55), 14:33, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А визгу то стояло на опеннете что сишка небезопасная, а всего то
    > надо было сделать безопасную сишку и никакой раст больше никогда никому
    > не необходим.

    О, опять перепись не умеющих читать опеннетных Экспердов^W Военов Супротив Раста ...

    > Защита от проблем с памятью обеспечивается благодаря применению 128-разрядных указателей MonoCaps с метаданными для проверки типов и отслеживания границ буферов, а также задействованию сборщика мусора FUGC
    > При каждом обращении к памяти по указателю осуществляется проверка границ и типа (например, в память с типом "ptr" не могут быть записаны данные с типом "int" и наоборот).
    > собираемые в Fil-C программы медленнее примерно в 1.5-5 раз, по сравнению со сборкой обычными компиляторами
    >

     
  • 2.49, Аноним (-), 14:47, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.54, Аноним (-), 14:53, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ахаха, какое молниеносное переобувание. От "сишка быстрее раста на 5 процентов" до "замедление в 5 раз это норм" и "GC рулит".
     
  • 2.71, Аноним (71), 15:35, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В то время, когда типизированный код, не важно, на rust, ocaml или haskell приниципиально защищён от некоторых ошибок, например null pointer, сишники изобретают какую-нибудь java, который будет падать с NPE. Словно мы живём в 1990-ых, а не 2020-ых.

    А ATS сишникам даже и не снится.

     
  • 2.83, Аноним (83), 16:18, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Типы стали как в бейсике (с аппаратно-зависимыми границами) плюс сборщик мусора. Вообщем как у многих ЯП. Остался только синтаксис.
     

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

  • 1.6, Аноним (1), 13:36, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Конечно не мешало бы более подробно расписать чем сабж лучше zig, но в первом приближении ничем.
     
     
  • 2.21, Аноним (-), 13:57, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    zig если и иожно сравнивать - то с СИ.
    До плюсов ему еще расти и расти.
    (Если он вообще дорастет до чего-то внятного).

    А сабж, как заявляется, поддерживает С++ - вот уже причем "чем лучше".
    Как в анекдоте
    "- Ну чем он лучше?
    -- Чем Zig!"

     
  • 2.25, Анонимусс (-), 14:10, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А чем вообще зиг лучше чем си в плане безопасности?

    Как сделать use-after-free на "безопасном" zig'e демонстрировали не раз и не два
    opennet.ru/openforum/vsluhforumID3/132732.html#71
    opennet.ru/openforum/vsluhforumID3/134833.html#48

    У зига есть свой unsafe для рантайма @setRuntimeSafety(false), что те же зиганутые и сишники указывали недостатком раста.

    В общем когда это васяноподелие дорастет хотя бы до версии 1.0 - тогда и поговорим.

     
     
  • 3.27, Аноним (1), 14:15, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так если на сабжевом языке начать снимать штаны через голову тоже можно что-нибудь словить. Так что в этом плане паритет.
     
     
  • 4.29, Анонимусс (-), 14:20, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Так если на сабжевом языке начать снимать штаны через голову тоже можно что-нибудь словить.

    Та ну. Это просто максимально упрощенный пример.
    В сишке тоже такие примеры выглядят смешно "Да кто так вообще может писать??".
    И при этом use-after-free попадает в тройку самых популярных причин дыреней.

    > Так что в этом плане паритет.

    Теорема Эскобара в действии))
    Ну и зачем оно тогда нужен. Особенно с такими ограничениями как жырнючие указатели и ломание ABI.

     
  • 2.40, Аноним (36), 14:39, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тем что не нужно переписывать код и сишки? И там что заявлена поддержка механизмов "безопасного" программирования?
    Каким местом ты вообще сюда zig приплёл?
     
     
  • 3.47, Аноним (-), 14:46, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Тем что не нужно переписывать код и сишки?

    Что значит не нужно?
    Прямо в новости написано:


    Другим ограничением Fil-C является принципиальный отказ от сохранения совместимости на уровне ABI для кода на C/C++, что не позволяет связывать собираемый в Fil-C код с библиотеками и объектными файлами, собранными другими компиляторами.

    Это значит, что для взаимодействия с другими либами тебе придется переписывать все или почти все.
    А учитывая просадки в производительности - то нафига оно вообще надо?

     
  • 2.139, Аноним (139), 18:17, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как минимум тем, что пробелы никакие неадекваты не навязывают.
     

  • 1.9, Аноним (11), 13:39, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это Valgrind на стероидах?
     
     
  • 2.45, Аноним (36), 14:43, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это не внешняя тулза для поиска "сишных дыреней" при выполнении.
    А встроенная система для поиска "сишных дыреней" при выполнении.

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

     
  • 2.81, Аноним (81), 16:11, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Valgrind медленнее в 30 раз.
     

  • 1.10, Аноним (-), 13:40, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > - All allocations are *garbage collected* using

    Ну, блин, да... яву можно и из сишки сделать. Я так то и -fsanituze=address,undefined могу вхреначить с тем же успехом.

     
     
  • 2.23, Аноним (-), 14:00, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А поможет?
    Тут на форуме кидали ссылку на "очередную сишную дырень" в проекте обмазанному санитайзерами.
    Искать лениво, но там оно не помогло.
     
     
  • 3.48, Аноним (36), 14:47, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что не было покрыто тестами, очевидно.
    И фаззинг не выполняется, или неправильно прикручен.

    Если бы релиз распространялся бы с санитайзерами, то твоя "дырень" бы просто не выстрелила, так как программа бы скоропостижно скончалась. И работала бы в 10 раз медленнее.

     
  • 2.28, Фнон (-), 14:17, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не поможет.
    Вот хрестоматийный пример из такой "ненужной" SSL либы:

    Целая куча дыреней в OpenSSL/LibreSSL - https://www.opennet.dev/opennews/art.shtml?num=58622
    - чтение из области вне границ буфера
    - Use-after-free
    - двойное освобождение памяти
    - некорректное разыменование указателя
    - разыменование указателя NULL (x2)
    ну и еще одна логическая проблема, которая решается нормальными типами

    При этом ворнинги включены, оба проекта обмазаны санитайзерами по самое немогу - и memory, и thread, и еще куча других
    https://github.com/openssl/openssl/actions/runs/4124496105
    Там даже фаззинг какой-то есть.

    Так что санитайзеры и анализаторы это как "мертвому припарки".
    Да может что-то найдется из элементарного, но скорее для самоуспокоения "я сделал все что мог"))

     

  • 1.13, Аноним (-), 13:45, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Хаха, сколько лет дµряшечники рассказывали "да не нужны никакие дополнительные проверки, нормальный программист не совершает таких глупых ошибок!".

    А тут бац - парад мутантов, то TrapCʼы, то Circleʼы и вот новый, с применением 16-байтовых указателей и отказом от сохранения совместимости на уровне ABI для кода на C/C++ и сборщиком мусора/.

    Наверное что-то случилось))

     
     
  • 2.20, Гильгамеш (?), 13:54, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Наверное что-то случилось))

    трон зашатался, вот и зашевелились

     
     
  • 3.82, Аноним (82), 16:16, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Хотел бы я посмотреть, как вы от C ABI откажетесь, программируя задачи реального мира на любом языке, тронные шатуны.
     
     
  • 4.107, Аноним (-), 17:10, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.108, Аноним (105), 17:15, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Главное громко верещать что все перепишут на свой язык. И обвинять других что они не переписывают. Детский подход как всегда.
     
     
  • 5.110, Аноним (-), 17:25, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Главное громко верещать что все перепишут на свой язык. И обвинять других что они не переписывают. Детский подход как всегда.

    Главное громко верещать "вы не заставите всех выучить раст" как диды из ядра.
    И ставить палки в колеса.

     
     
  • 6.118, Аноним (111), 17:35, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Отказываться выполнять чужую работу - это палки в колеса?
     
     
  • 7.150, Советский инженер (ok), 19:39, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Отказываться выполнять чужую работу

    Писать ядро без дыреней  - это чужая работа?

     

  • 1.15, Аноним (-), 13:46, 17/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
  • 1.16, Stanislavvv (?), 13:51, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > С незначительными модификациями поддерживается сборка OpenSSH

    Интересно, это как когда-то в дебиане, где вырезали нужное?

     
     
  • 2.38, Аноним (-), 14:37, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> С незначительными модификациями поддерживается сборка OpenSSH
    > Интересно, это как когда-то в дебиане, где вырезали нужное?

    Жирный набросю. В дебиане ничего нужного не вырезали.
    Это просто вы почему-то считаете ненужное нужным.

     
  • 2.44, Аноним (55), 14:42, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> С незначительными модификациями поддерживается сборка OpenSSH
    > Интересно, это как когда-то в дебиане, где вырезали нужное?

    Не вырезали, а оптимизировали!
    https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2008-0166

     

  • 1.17, Аноним (17), 13:51, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > имеет богатый опыт работы над

    камнеукладчик

     
  • 1.22, Аноним (22), 14:00, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А он то этот компелятор новый совместим полностью со старым кодом? Или это новое слово в науке, типа Раста.
     

     ....ответы скрыты (2)

  • 1.34, Аноним (-), 14:29, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лол, история Раста это прямо как в цитате
    "Сначала они тебя не замечают, потом смеются над тобой, затем борются с тобой, а потом" ... начинают лепить корявые велосипеды из костылей

    Видно последние заявления АНБ и прочих про "дырявые языки" слишком много пятых точек подожгло.

     
  • 1.39, Аноним (39), 14:38, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Язык Rust занервничал?
     
     
  • 2.43, Аноним (22), 14:41, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Rust уже вытеснил Си, поэтому Сишники подсуетились и выпустили костыль...
     
     
  • 3.132, 12yoexpert (ok), 18:04, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    у меня жир из монитора потёк, прямо как твой бачок
     
  • 2.46, Аноним (55), 14:45, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > собираемые в Fil-C программы медленнее примерно в 1.5-5 раз
    > Язык Rust занервничал?

    Скорее, питоны с жабками - конкурент, понимаешь, появился ...

     
     
  • 3.52, Аноним (-), 14:51, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Какой конкурент?
    Если нужно побыстрому накидать кода - например прототип сделать, то этот описанный монстр не подойдет.

    Потому что где ты будешь искать кучу сишников и плюсовиков, которые еще и эту шнягу выучили?
    Обычно мозгов среднестатистичного СИшника шаватает на С99.
    А питонистов с жаваскриптерами - много.

     
     
  • 4.58, Аноним (55), 15:00, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Какой конкурент?

    По жору ресурсов, вестимо - там же "луДьшее" из обоих миров: куча бойлерплейта и прочего "заката солнца вручную" от сишки и производительность от питона!

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

     
     
  • 5.62, Аноним (-), 15:12, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На самом деле, сабж имеет смысл для определенной ниши применения - пересобрать
    > то, что "больно" или дорого переписывать (или делать серьезный аудит) так, чтобы дырени не торчали приглашающе наружу, в тырьнет.

    Меня терзают смутные сомнения (с)
    А не выйдет ли что переписать проще, чем прикостыливать этого монстра?


     

  • 1.51, Аноним (51), 14:48, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Еще раз повторяю. Это просто противоречит причинам, по которым создавался Си. Посмотрите сурцы Win 3.1 SDK. Там все на голом асме. Вот чтобы не писать на нем, но иметь те же преимущества по размеру и производительности - изобрели Си. Если Си завернуть в виртуальную машину или что то типа того - от него не будет никакого толку. Просто нынешнее поколение проггеров это не понимает. Они уже привыкли писать ОС на питоне. После этого уже ничего не страшно.
     
     
  • 2.57, Аноним (-), 14:55, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, ты полностью прав.
    СИ - это переносимый ассемблер *
    И его делали, чтобы даже самые тупые прогаммеры (не осилившие фортран) могли наовнячить по быстрому какой-то код. Типа ПХП из 70х.

    Про корректность или безопасность вообще никто не думал.
    Как и про "архитектуру языка". Об этом начали думать примерно когда сочиняли АДУ.

    * но придется обмазаться ifdef'ами. и подобрать нужную версию компилятора.
    И надеяться, что создатели компилятора обработали UB и твой код не сделает тебе больно.
    И молиться, что при переходе на след версию языка поведение не поменяется.
    А так, в общем вполне переносимый))

     
     
  • 3.70, Аноним (1), 15:28, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Какая безопасность когда у тебя в 70-х сотня ЭВМ на всё США. Если в него залезет хакер и выйдет за пределы буфера, он ничего там не найдет. Кроме безысходности. Больше того сейчас критическая инфраструктура не использует раст, а просто использует закрытый контур. Точно так же как в 70-е. И в 1 году после р.х. Кому нужны твои котики на пхп сайтике? Даже от майнера там толку нуль.
     
     
  • 4.72, Аноним (-), 15:39, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.77, Аноним (77), 16:06, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > придется обмазаться ifdef'ами. и подобрать нужную версию компилятора.

    Это не совсем так. У меня 100% исходников компилируются GCC под ОС Linux, Windows (MinGW), BSD, macOS и Haiku.

     
     
  • 4.80, Аноним (-), 16:09, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не совсем так. У меня 100% исходников компилируются GCC под ОС Linux, Windows (MinGW), BSD, macOS и Haiku.

    Хм.. предположу что это не helloworld.
    А как решаются системо-зависимые штуки?
    Ну хотя бы пути к файлам, которые для Linux, Windows и macOS слегка разные?

     
     
  • 5.122, Аноним (111), 17:40, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://en.cppreference.com/w/cpp/filesystem
     
     
  • 6.123, Аноним (-), 17:52, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.130, Аноним (77), 18:02, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это приложение научного назначения, а абсолютная кроссплатформенность - это, ско... большой текст свёрнут, показать
     
     
  • 6.142, Аноним (-), 18:22, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну погоди Тогда это не уникальная особенность СИ или плюсов Сделать некое ядро... большой текст свёрнут, показать
     
  • 3.84, Аноним (84), 16:21, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.76, Аноним (77), 16:04, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Phyton уступает C по скорости в 60 тысяч раз. Он никаким образом ему не конкурент.
     
     
  • 3.86, Аноним (84), 16:23, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну про 6*10^4 раз это вы, конечно, сиильно загнули.
     
  • 3.92, Аноним (92), 16:45, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Производительность даже кор 2 дуо избыточна для тех задач (сеть, I/o) где используется пайтон
     
     
  • 4.133, 12yoexpert (ok), 18:06, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    то-то у меня кура на райзене полчаса стартует, нужно было брать кор два дуо
     
  • 2.140, Аноним (139), 18:20, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Напомнить, как Windows 3.11 зависала и крашилась?
     

  • 1.61, Аноним (61), 15:10, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Работа с памятью некогда не было такой безопасной!
     
  • 1.78, Аноним (78), 16:07, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего только не придумают,  только бы не начинать пользоваться Ада/Spark. Уже и расты понаписали, и эрзац Си понаделали.
     
     
  • 2.97, Аноним (92), 16:51, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ада/Spark

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

     

  • 1.79, Аноним (79), 16:08, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего только не придумают,  только бы не начинать пользоваться Ада/Spark. Уже и расты понаписали, и эрзац Си понаделали.
     
  • 1.88, morphe (?), 16:28, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Look What They Need to Mimic a Fraction of Our Power!
     
  • 1.89, Аноним (61), 16:37, 17/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.90, ffsdmad (ok), 16:44, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Получается, что Руст не нужен, но спрашивается, а зачем на него вообще тратят время и средства?
     
     
  • 2.94, Аноним (92), 16:48, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Много чего ненужного существует. Я вот считаю продукцию эппла сферическим ненужно в вакууме,но ведь есть хомячьё, которое её скупает и стоит в очередях перед выходом нового ипхона.
     
  • 2.95, Аноним (-), 16:49, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Получается, что Руст не нужен,

    Неа, как раз с учетом того, что нынешняя поделка "медленнее примерно в 1.5-5 раз" да еще и GC сверху - раст очень нужен)

    > но спрашивается, а зачем на него вообще тратят время и средства?

    Твои что ли?
    В опенсорсе парад велосипедов это норма.
    100500 ДЕ, десятки дистрибутивов, сотни однообразных утилит разной степени кривости...

     
     
  • 3.127, ffsdmad (ok), 17:58, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Получается, что Руст не нужен,
    > Неа, как раз с учетом того, что нынешняя поделка "медленнее примерно в
    > 1.5-5 раз" да еще и GC сверху - раст очень нужен)
    >> но спрашивается, а зачем на него вообще тратят время и средства?
    > Твои что ли?
    > В опенсорсе парад велосипедов это норма.
    > 100500 ДЕ, десятки дистрибутивов, сотни однообразных утилит разной степени кривости...

    я думаю, что не стоит очаровываться на долгий период Рустом, поигрались и ладно

     
     
  • 4.149, Аноним (-), 19:35, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем им очаровываться вообще?

    Он свою задачу выполняет? Выполняет.
    Безопаснее чем сишка? Безопаснее.
    Что тебе еще нужно?

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

    > поигрались и

    используем в проде. И не только мы.

     
  • 2.102, Аноним (-), 16:59, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Удивительно, что про ненужность раста пишет Илья - Веб-программист, который программирует на Python и JavaScript (рак современного интернета).
    И который рассказывает про Flask/Angular1/Vue2.
     
     
  • 3.124, ffsdmad (ok), 17:53, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А я и на Си программирую и на Руст, но от Руст начинает подташнивать. Карго у них хорош, вот его в Си не хватает
     
     
  • 4.126, Аноним (-), 17:58, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 5.128, ffsdmad (ok), 18:00, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.134, 12yoexpert (ok), 18:07, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    его лоббируют майки
     
     
  • 3.141, Анонимусс (-), 18:21, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > его лоббируют майки

    Его лоббирует гугл.
    Не просто так они весь дыряшечный код заменяют на раст или на крайняк на с++.
    Хотя если посмотреть на поддерживающих Rust Foundation, то там и AWS, и Meta, и Huawei... и это только платиновые)))

     

  • 1.96, тоже Аноним (ok), 16:51, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Названия компилятора и сборщика мусора почему-то напомнили, что Линус Торвальдс собственную ОС назвал - Freax...

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

    С точки зрения ПО, которому не критична производительность (а это 90% всего софта) - это заведомо более дешевое и перспективное решение, чем "выкинуть и написать правильно".

     
     
  • 2.99, Аноним (92), 16:54, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > С точки зрения ПО, которому не критична производительность (а это 90% всего софта)

    А потом удивляются почему хром тормозит на свежем i9 и RTX какой-то там.

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

     
     
  • 3.104, Аноним (-), 17:05, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > исторически браузер мало чем отличался от блокнота по потреблению ресурсов

    А содержимое браузера было "слегка форматированный ХТМЛ".
    Многие поделки из той эпохи, типа линкса или дилло, даже не поддерживают CSS в полном объеме.

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

     
  • 3.112, тоже Аноним (ok), 17:29, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Напомню, что современный браузер - это фактически виртуальная машина и среда для исполнения ПО.
    Разумеется, к прикладному софту, не требующему оптимизации, браузеры не относятся.
    Но относятся к постоянно и динамически изменяющемуся софту, обеспечивающему обратную совместимость. Что неизбежно сопровождается неуклонным ухудшением оптимизации.
     
     
  • 4.117, Аноним (92), 17:35, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вспоминаю вэб конца 2000х и начала 2010х, тогда был расцвет нетбуков на немощных атомах, и тот вэб был идеален и в плане дизайна вэб страниц и в плане информационного наполнения. И всё летало, не лагало, сейчас же браузер наверное даже более требователен к ресурсам, чем игры AAA.
     
     
  • 5.121, тоже Аноним (ok), 17:40, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Вспоминаю вэб конца 2000х и начала 2010х, тогда был расцвет нетбуков

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

     
     
  • 6.129, Yevgeny Vaganovich (?), 18:01, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Никакого "расцвета нетбуков" не было

    Возможно ты ещё дaжe и не родился тогда.

    > У меня на айпаде

    Что забыл на оупеннете? 🤡

     
  • 6.135, Yevgeny Vaganovich (?), 18:08, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.131, Yevgeny Vaganovich (?), 18:02, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Cpыгнул ка отcюда быстро и решительно
     
  • 2.113, Аноним (-), 17:31, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.119, Аноним (119), 17:37, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.136, 12yoexpert (ok), 18:08, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > С точки зрения ПО, которому не критична производительность (а это 90% всего софта) - это заведомо более дешевое и перспективное решение, чем "выкинуть и написать правильно".

    пока бинарник на расте будет грузиться в раму, сишная прога уже отработает

     
     
  • 3.138, Аноним (-), 18:16, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > пока бинарник на расте будет грузиться в раму, сишная прога уже отработает

    а потом подарит рут доступ соседу)

    Вообще твое слабоумие оправдывает твой ник на 100%.
    Уже с такими убогими спорили, в итоге они посмотрели на helloworld на раст в 500 байт и заткнулись.
    Но осень, обострения.. и вот опять сумасшедшие начинают нести чушъ(((



     

  • 1.101, Аноним (101), 16:58, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Безопасные сишечки еще не готовы, а опасный gcc 14 уже жалуется на указатели.
     
  • 1.116, imsushka (??), 17:35, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в паскале все и так это было ужо лет 30-35
     
     
  • 2.120, Аноним (92), 17:37, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Паскаль противопоказан из-за своего синтаксиса если у тебя окр/сдвг.
     
  • 2.148, Аноним (148), 18:44, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В паскале тоже есть препроцессор и указатели (во всяких delphi и lazarus). И в общем-то проблемы те же самые, что и в C. Просто используются эти "опасные возможности" на порядке реже.

    Могут ли использоваться чаще? Могут, если начать драйвера на паскале переписывать... А самый простой вариант - посчитать хеши... там уже приходится бороться с runtime exception'ами из-за переполнения целых чисел (которое в данном случае нужно, а не вредно).

     

  • 1.125, Филипп Филиппович (ok), 17:55, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оно мило, может иметь некоторое ограниченное применение, но всё-таки это прикрученный контроль в рантайме, отсюда и оверхед, в том числе и по памяти. А современный подход -- максимум контроля в compile-time, а в рантайме -- только то, что никак при компиляции не сделать. В чистом C сделать контроль многих вещей при компиляции в общем случае почти нереально. В C++ -- тоже только при соблюдении определённого стиля программирования (ибо C++ без ограничений допускает всё, что допускает C, и имеет потому все грабли C).
     
     
  • 2.144, Аноним (84), 18:32, 17/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Филипп Филиппович, а что, с программированием на Rust даже Шариков справится?
     
     
  • 3.146, Аноним (-), 18:39, 17/11/2024 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.143, Аноним (143), 18:23, 17/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     ....ответы скрыты (2)

  • 1.151, Аноним (151), 19:40, 17/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Филипп Пизло, занимает в компании Epic Games пост директора, отвечающего за проекты, связанные с языками программирования.

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

     

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



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

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