- что-то я ничего не понял в v3 ядро было не на си нужно почаще вставлять вперв, 12yoexpert (ok), 11:16 , 09-Янв-26 (1) –8 [V]

- Си был исконно с первейших версий придуман чтобы писать овнокод по типу такого w, Аноним (8), 11:21 , 09-Янв-26 (3) –25 [VVV]

- Пользуйся, aname (ok), 11:48 , 09-Янв-26 (18) +10 [^]
- Зато без begin-end-ов И что только сишники не придумают, лишь бы на паскале н, Аноним (58), 15:03 , 09-Янв-26 (134) +8 [^]
- Да программируйте хоть на Оббероне, никто вам не запрещает У сишников свой путь, Аноним (83), 16:40 , 09-Янв-26 (163) +1
- В паскале есть указатели, а это значит, что паскалисты - латентные сишники, порт, Аноним (90), 18:15 , 09-Янв-26 (213)
- Pascal относится к memory safe языкам как и Delphi, Ada и тд , анондирован (?), 20:20 , 09-Янв-26 (252) +1
- В расте есть unsafe, а это значит, что растисты - латентные сишники, портящие па, Аноним (58), 23:25 , 09-Янв-26 (318) +5
- Pascal сформировался в своём классическом виде только в 1974-м году, и он был пр, Аноним (278), 20:55 , 09-Янв-26 (274) –4 [V]
- Покажи мне хоть одну программу из исходного кода Unix 4 ссылка в новости , кото, Аноним (12), 21:09 , 09-Янв-26 (282) +2
- Си сформировался в своём классическом виде только в 1999 году Программа на Си п, Аноним (58), 23:46 , 09-Янв-26 (321) +2
- Ты не поверишь, но я один из редких иногда пишущих, который всю жизнь мечтал о х, Tron is Whistling (?), 10:19 , 10-Янв-26 (367)
- Узнаю сишников Вам дали язык, в котором компиляция возможна за вменяемое время,, Аноним (4), 18:34 , 10-Янв-26 (401)
>A... всё, приплыли, и надо либо костылить отдельный юнит, либо перетаскивать один из типов, полностью руша всю семантику использования.Узнаю сишников. Вам дали язык, в котором компиляция возможна за вменяемое время, а вы хотите его сломать, делая компиляцию столь же медленной, как и в крестах.
- Ну и правильно, так делать не надо Стол ссылается на плотника, а плотник - на с, randomize (?), 19:23 , 10-Янв-26 (409)
> Объявить в юните A тип, ссылающийся на другой тип из юнита B, и заодно наоборот - в юните B тип, ссылающийся на тип из юнита A... всё, приплылиНу и правильно, так делать не надо. Стол ссылается на плотника, а плотник - на стол...
- А куда деваться, если у тебя взаимозависимые объекты Самый простой пример у теб, Tron is Whistling (?), 08:37 , 11-Янв-26 (464)
А куда деваться, если у тебя взаимозависимые объекты.Самый простой пример: у тебя есть аппликуха со статической не-формовой частью, и есть форма. Форме нужна аппликуха и её типы/структуры, а аппликухе надо иметь ссылки на формы в тех самых структурах. И вот тут возникает полная опень, где все апликушные типы, ссылающиеся на форму, приходится перетаскивать в юнит формы, потому что перетаскивать класс формы в аппликуху - ещё более тупо. В итоге рушится вся семантика разделения, все типы оказываются скомканы в одном юните формы, хотя имплементация идёт только в апликухе. И это только самый простой пример. Как только юнитов становится сильно больше - начинается веселье с взаимными зависимостями. Короче если у тебя организация приложения не строго иерархична - то ты приплыл. В последнее время правда мне надоело, и я просто леплю внуть структур тупой Object/Pointer с названием и комментарием, позволяющими понять, что оно такое должно быть по классу на самом деле. И далее везде по всему коду тайпкасты на каждом обращении. Ловить ошибки в этом деле - то ещё приключение, но по крайней мере не надо запихивать все структуры с перекрёстными зависимостями в один юнит.
- https ru wikipedia org wiki Model-View-ControllerЛично я разделяю код на gui, , randomize (?), 02:42 , 12-Янв-26 (486)
- Не весь код - вебня , Tron is Whistling (?), 10:10 , 12-Янв-26 (490)
- Там понимаешь в чём дело, если у меня пойти и разделить дальше вот просто ради э, Tron is Whistling (?), 10:11 , 12-Янв-26 (491)
Там понимаешь в чём дело, если у меня пойти и разделить дальше вот просто ради этих соплей - юнитов станет в два раза больше, и код станет толще процентов на 20-30, причём эти 20-30% будут просто врапперами к коду из логики. Ага. Вызов в вызов.
- Вот тупо у меня в юните виситTXXXWindowList specialize TDictionary String, TFo, Tron is Whistling (?), 08:52 , 11-Янв-26 (465)
Вот тупо у меня в юните виситTXXXWindowList = specialize TDictionary<String, TForm>; // TForm => TXXXForm TXXXWindowPair = specialize TPair<String, TForm>; // TForm => TXXXForm ... WindowRegistry: TXXXWindowList; // id-based registry of TXXXForm Вообще в этом реестре хранятся окна типа TXXXForm, а не TForm. Вся основная имплементация для TXXXWindowList у меня в этом юните. Т.е. логично эти типы иметь в нём, подключив в interface TXXXForm. Но мне при этом в юните TXXXForm надо иметь внутри формы TXXXWindowPair, который возвращается из первого юнита, т.е. референс на некую другую TXXXForm, и я не могу перенести всё в implementation, потому что референсы получаются в одних вызовах, а используются другими - и специфично уничтожаются при уничтожении форм - например с обрывом связанных тредов. Каждый раз искать целевую форму по её String на каждый вызов я там не могу - слишком накладно. В итоге паскакаль впадает в ступор и не даёт создать циклическое включение юнитов в interface. Поэтому вместо TXXXForm в List/Pair пришлось нагородить TForm, и дальше везде костылить TXXXForm(SomeForm).SomeProp ... такие дела.
- Ты и в С так не сделаешь Максимум - указатель на предварительно объявленый тип , Аноним (12), 20:12 , 10-Янв-26 (414)
> Объявить в юните A тип, ссылающийся на другой тип из юнита B, и заодно наоборот - в юните B тип, ссылающийся на тип из юнита A... всё, приплылТы и в С так не сделаешь. Максимум - указатель на предварительно объявленый тип.
- C99 8212 днище полное Вот 89-й C гораздо лучше , Аноним (70), 20:01 , 10-Янв-26 (411)
C99 — днище полное. Вот 89-й C гораздо лучше.
- Это что за бред , Аноним (-), 20:08 , 10-Янв-26 (412) –2
>Программа на Си представляет собой портянку из инклудов, завёрнутых в макросы, чтобы инклуды не зацикливалисьЭто что за бред?
- Что, никогда не программировал на С Ну тогда вполне очевидно, что инклуды, зав, Аноним (12), 20:15 , 10-Янв-26 (415)
>>Программа на Си представляет собой портянку из инклудов, завёрнутых в макросы, чтобы инклуды не зацикливались > Это что за бред?Что, никогда не программировал на С? Ну тогда вполне очевидно, что "инклуды, завернутые в макросы" для тебя звучит как бред. А вот у сишников это суровая реальность.
- Ты не поверишь, но в Си тоже Тебе сишочный код из разных include в одну портян, Аноним (12), 01:33 , 10-Янв-26 (339)
- Можно было бы ещё раз объяснить тебе, для чего был придуман Си, но тебе уже объя, Аноним (15), 19:12 , 09-Янв-26 (222) –1
- Оператор был взят из Algol-68, Аноним (278), 20:47 , 09-Янв-26 (269) +1
- В чём глубинный смысл писать Си вместо C , Анон1110м (?), 21:51 , 09-Янв-26 (298) –2
- Зря заминусили, вообще-то под Юниксом неиронично предполагалось сишку использова, Bottle (?), 22:20 , 09-Янв-26 (303) –1
- Зря заминусили Керниганы с Ричами в своих книжках так и писали, что синтаксис С, Аноним (391), 16:20 , 10-Янв-26 (391)
Зря заминусили. Керниганы с Ричами в своих книжках так и писали, что синтаксис Си был разработан с упором на скорость написания программ, отсюда и ++i и i-- в любом месте, вместо i = i + 1 отдельной строкой.
- Так короткая альтернатива для i i 1 - это в любом случае хорошая вещь, котор, Аноним (57), 17:35 , 10-Янв-26 (392)
> отсюда и ++i и i-- в любом месте, > вместо i = i + 1 отдельной строкой.Так короткая альтернатива для i = i + 1 - это в любом случае хорошая вещь, которая избавляет от некоторых ошибок: - сложное имя переменной вместо i, можно ошибиться при дублировании или забыть поменять в двух местах. - понятное имя получается слишком длинным, чтобы его использовать в строке два раза и не превратить код в кашу. - инкремент выпиливают из языков по религиозным соображениям: проблема неоднозначных приоритетов решается без этого (Go смог: https://stackoverflow.com/a/25800388)
- Спасибо, один из коментариев особенно забавен inc func i int int i re, Аноним (391), 03:20 , 11-Янв-26 (449)
Спасибо, один из коментариев особенно забавен: inc := func(i *int) int { *i++; return i }
- Ну, там есть и такой msg key args i i И идею можно развивать, разрешив н, Аноним (57), 05:37 , 11-Янв-26 (452)
> Спасибо, один из коментариев особенно забавен: > inc := func(i *int) int { *i++; return i } Ну, там есть и такой: msg["key"] = args[i]; i++ И идею можно развивать, разрешив некоторые expressions. Это сейчас мода такая - ради безопасности и тонны boilerplate-кода не жалко. Чем больше boilerplate, тем безопаснее.
- Реликтовый вулн дидов Почти как первая ошибка ворлонов с которой начались их не, Аноним (-), 11:27 , 09-Янв-26 (8) –7 [V]

- На ассемблере по другому и не напишешь Или придется городить огороды размером б, Аноним (8), 11:46 , 09-Янв-26 (15) –2
- Охх, ты ж Вавилон 5 подкатил , сисикеч (?), 12:50 , 09-Янв-26 (52) +5
- за Вавилон-5 В условиях ограниченных ресурсов каждый байт за счету такое от, Лиечка (?), 21:14 , 09-Янв-26 (285) +2
- Тогда червь Морриса еще не показал в чем прикол И это рассматривалось как дурно, Аноним (-), 07:22 , 11-Янв-26 (454)
> + за Вавилон-5. В условиях ограниченных ресурсов (каждый байт за счету) такое > отношение к переполнениям буфера имело место быть... но в современных условиях > такое уже недопустимо.Тогда червь Морриса еще не показал в чем прикол. И это рассматривалось как дурной способ сооьщить о факапе в данных. А оказывается при креативном подходе программу можно не толко уронить. Впрочем даже и уронить в нужном месте в нужное время пару программ - так то вполне успешно бывает :)
- Это какая же , nio (??), 22:48 , 09-Янв-26 (308)
- Синдром вахтёра , Аноним (58), 23:53 , 09-Янв-26 (322)
- Бот скрывает ответ Ответ синдром чрезмерного величия при своём не очень выс, Аноним (58), 23:55 , 09-Янв-26 (324)
- Ворлоны очень развитая раса, помешанная на порядке и правилах Они познали многи, Аноним (-), 01:46 , 10-Янв-26 (341)
- отсылка к фильму Вавилон-5 Третье пространство , Лиечка (?), 14:29 , 10-Янв-26 (387)
отсылка к фильму "Вавилон-5: Третье пространство"
- Помню как разработчики sendmail в начале 1990-х отказывались править переполнени, Аноним (200), 11:27 , 09-Янв-26 (9) +17 [^]

- Для тех кто помнит pe2 dos https snobol5 org pe3doc htmработающий редактор на, Аноним (12), 11:35 , 09-Янв-26 (12) +1
- У них никогда не было кота Или детей Не, ну детей к дорогущему компу может и , Аноним (-), 11:45 , 09-Янв-26 (14) –2

- А котов типа подпускали Тогда если ты там что-то переполнил ты не в другой стра, Аноним (8), 11:48 , 09-Янв-26 (20) +6 [^]
- Какие коты Просто коpоpaтивный paб устав грести на гaлepe упал моpдой лица прям, Аноним (53), 12:52 , 09-Янв-26 (53) +2
- А вот тут явно передёргиваешь , Аноним (-), 13:07 , 09-Янв-26 (62)
- Ты так говоришь, как будто сейчас что то изменилось Нет, просто за время компью, Аноним (51), 13:10 , 09-Янв-26 (65) +3
- Да, изменилось Как минимум прользователь будет расстроен если его комп или телео, Аноним (-), 13:24 , 09-Янв-26 (72) –1
- Тогда быстродействие считали в тактах процессора Что даёт это твоя проверка в д, Аноним (8), 13:48 , 09-Янв-26 (88)
- Там поди какойнить gets buff используется для чтения ввода, он не умеет в разм, Аноним83 (?), 13:48 , 09-Янв-26 (89) –2
- скорее всего тогда ещё не было sizeof , пишут, что он появился во времена Unix , Совершенно другой аноним (?), 14:40 , 09-Янв-26 (127)
- ну на самом деле его там не было потому что размеры на pdp11 и так все знали, за, нах.. (?), 16:39 , 09-Янв-26 (162)
- держи typedef unsigned char byte , Аноним (68), 19:56 , 09-Янв-26 (236) +1
- На C99 лучше uint8_t - потому что то что char именно byte ниоткуда не следует , Аноним (-), 04:05 , 11-Янв-26 (450)
> держи: > typedef unsigned char byte; На C99+ лучше uint8_t - потому что то что char именно byte ниоткуда не следует. И есть например выводки забавных DSP где char - внезапно - 16 бит. И все типа по стандарту, стандарт позволяет.
- Это из текста стандарта следует, уже говорил тебе 3 7 1 character 9001 concre, Аноним (57), 05:25 , 11-Янв-26 (451)
> потому что то что char именно byte ниоткуда не следуетЭто из текста стандарта следует, уже говорил тебе. 3.7.1. character 〈concrete〉 - single-byte character - bit representation that fits in a byte. https://port70.net/~nsz/c/c99/n1256.html#3.7.1 Стандарт подразумевает, что байт может не быть октетом. Но он с C89 разрешает отсеять странные платформы: #include <limits.h> #if CHAR_BIT != 8 #error "Unsupported platform" #endif
- И откуда тут следует что fits represented as Да, я именно про это То что в c, Аноним (-), 07:30 , 11-Янв-26 (456)
> 3.7.1. character 〈concrete〉 - single-byte character - bit representation that > fits in a byte.И откуда тут следует что fits == represented as? > #if CHAR_BIT != 8 > #error "Unsupported platform" > #endif Да, я именно про это. То что в char именно 8 битов - вообще совсем ниоткуда не следует. Насколько мы готовы называть байтом нечто не состоящее из 8 битов - можно поспорить. По состоянию на сейчас байтом обычно считают нечто состоящее из 8 битов а если битов иное количество - это скорее называют как "word" (machine word). А чтобы байтом назвали нечто не 8-битное - ужасная экзотика на данный момент.
- Оттуда, что двоичность битов в стандарте тоже не зафиксирована В троичную ячейку, Аноним (57), 07:52 , 11-Янв-26 (461)
> И откуда тут следует что fits == represented as?Оттуда, что двоичность битов в стандарте тоже не зафиксирована: > 3.5. bit unit of data storage in the execution environment large enough to hold an object that may have one of two values В троичную ячейку помещается объект, имеющий одно или два значения? Да. Такое намерение во фразу заложено? Нет. То есть размер char == размер byte (его определение на несколько строчек выше), который может быть 16-битным или ещё каким. > Насколько мы готовы называть байтом нечто не состоящее из 8 битов Настолько, насколько ты готов писать на стандартном Си (иначе надо другой язык выбрать). Определение байта в стандарте на несколько строчек выше.
- [.... слишком большой тред, остальное см. в режиме смотреть все |+ ] (462)!
- На самом деле он там есть https github com search q repo 3AEquilateral-AI 2FUn, Аноним (12), 21:24 , 09-Янв-26 (289)
- Писаки врут, ибо sizeof в исходниках есть https github com search q repo 3AEqu, Аноним (12), 21:26 , 09-Янв-26 (290)
- Ну вот упал он лицом и куда-то там вышел Комп завис, и Какая угроза пойяси Ли, Аноним (8), 13:45 , 09-Янв-26 (85)
- Это все еще в UHG описано Весь евнухс таким всегда был , Аноним (347), 02:56 , 10-Янв-26 (347)
- Вряд ли кто-то пускал котов или детей в офис Bell Labs, и уж тем более в помещен, Аноним (149), 15:50 , 09-Янв-26 (149) +1
- Ахахаха, диды писали Вот и ответ на вопрос сколько строк на СИ достаточно чтобы, Фнон (?), 11:46 , 09-Янв-26 (16) –2

- То ли дело CVE в Binder , aname (ok), 11:50 , 09-Янв-26 (22)
- CVE в Binder привело к падению Память не была испорчена, повышение привилегий ил, Фнон (?), 11:53 , 09-Янв-26 (25) –3
- Скрыто модератором, Аноним (9), 14:07 , 09-Янв-26 (111) +1 [---]
- Память не была испорчена, повышение привилегий или исполнение чужого кода не про, Аноним (47), 20:06 , 09-Янв-26 (242)
- Нет, это большая проблема Но с RCE было бы все гораздо хуже Да, работа с unsafe , Аноним (-), 00:51 , 10-Янв-26 (334)
- Эмм да Та часть кода которая отпустила лок на лист не нарушила гарантий сафе, Аноним (-), 17:30 , 11-Янв-26 (481)
> А, да, точно, "виновата" строчка unsafe где буквально происходит обычное удаление элемента из списка, а не та safe часть кода, которая отпустила лок на лист, продолжая работать с данными из негоЭмм... да. Та часть кода которая отпустила лок на лист не нарушила гарантий сафети. А вот та строчка которая вдруг расчехлила unsafe не проверив предварительно всех необходимых кондиций для того, чтобы этот unsafe был бы sane кодом, вот она виновата. Пока ты не трогаешь unsafe все нарушения гарантий сафети -- не твоя вина. Это вина того кода, который предоставил тебе API и пометил его как safe, хотя он на самом деле unsafe. Но как только ты используешь unsafe, вся ответственность на тебе. Ключевое слово unsafe можно трактовать как утверждение программиста о safety кода, мол, он сам всё проверил и говорит что тут всё ок, ничего плохого случится не может. Если ты ищешь "виноватых" то искать их надо среди людей: строчка кода не может быть виноватой. А если так, то вероятно тот, кто написал safe часть кода и тот кто написал этот unsafe -- это одно и то же лицо. Я даже могу предположить как у него мысль в голове текла (возможный ответ на твоё "зачем создавать локальную копию"): он думал что если забрать список на стек вместе с овнершипом, то овнершип позволит ему творить со списком что угодно. Но это не тот случай, mutable^shared не выполняется. И именно поэтому remove -- это unsafe операция. Если же говоря о "виноватой строчке unsafe" ты на самом деле хочешь поговорить о причинах, а не о вине, просто русская язык моя твоя ни панимай, то это бессмысленный разговор. В отрыве от процесса написания кода любая строчка, изменение которой может устранить этот баг, будет причиной этого бага по-определению причины. Всегда, для любого следствия, есть мириады причин, и выбор любой одной всегда выглядит субъективным произволом. В это можно привнести объективности, и если тебе интересно как, то попробуй погуглить по словам root cause, proximate cause. Википедию можно почитать напротив Proximate and Ultimate Causation и Causation in English Law. Обрати внимание на произвольность выбора причин, попробуй выявить критерий выбора граней ситуации для обозначения их словом "причина". Если у тебя будет оставаться желание к саморазвитию, когда ты это одолеешь, то попробуй подумать почему физика не любит говорить о причинах и следствиях. Там есть законы, типа закона гравитации, но если ты почитаешь учебники физики, там на удивление мало (или вообще нет) вхождений слова "причина". Но если ты послушаешь инженеров, то у тех причин очень много. Если провести аналогию между кодом/программистом и реальностью/инженером, то в коде как и в реальности нет причин и нет следствий, а вот в деятельности программистов и инженеров причины вдруг появляются. Забавно да?
- Unix V4 - дата создания 1973 год UUCP первые хоть какие-то сетевые средства - , Совершенно другой аноним (?), 13:42 , 09-Янв-26 (76)
- Да ты не суй всякую гадость в программу, и нормально будет , Аноним (33), 13:38 , 10-Янв-26 (385)
>Вот и ответ на вопрос "сколько строк на СИ достаточно чтобы написать CVE")))Да ты не суй всякую гадость в программу, и нормально будет.
- Глупость пишешь, тогда машинки были не такие шустрые и интернетов не было с ИИ, Sm0ke85 (ok), 10:26 , 12-Янв-26 (493)
>Вот и ответ на вопрос "сколько строк на СИ достаточно чтобы написать CVE")))Глупость пишешь, тогда "машинки" были не такие шустрые и интернетов не было с ИИ-агентами, поэтому ориентировались на локальное использование не обезьяной с гранатой, так что все отлично и их дело живо по сей день с учетом развития технологий...
- Он может гордиться следующими поколениями, которые совершают абсолютно такие же , Аноним (-), 11:54 , 09-Янв-26 (27) +8 [^]

- Нынешнему поколению плевать даже на сам Си не то, чтобы на баги Сишные, даже не , Аноним (79), 14:15 , 09-Янв-26 (118)
- То-то же современные программисты пишут либо на rust, либо на ocmal, либо на has, Аноним (90), 20:59 , 09-Янв-26 (275) +1
- Ага, все три современных программиста пишут именно на этом Один - на расте, вто, Аноним (329), 00:04 , 10-Янв-26 (329) +3
- Почему-то в топах рейтингов яп совсем другие языки А на каком месте там haskell, Аноним (38), 05:07 , 10-Янв-26 (353)
- Ага, поэтому получается постоянно при переписывание бэкдор на бэкдоре городить, Sm0ke85 (ok), 10:29 , 12-Янв-26 (494)
>То-то же современные программисты пишут либо на rust, либо на ocmal, либо на haskell, где ошибочная программа, в отлчии от си компилироваться не будет. А ведь есть ещё Lean и Idris.Ага, поэтому получается постоянно при "переписывание" бэкдор на бэкдоре городить... Программистов превратили в лингвистов...
- Ты по юлианскому календарю живёшь , Аноним (70), 21:58 , 10-Янв-26 (429)
> в 2025мТы по юлианскому календарю живёшь?
- Налепили, прибили, скотчем примотали и в продакшн Думать они начали с выпуском , Аномалии (?), 11:55 , 09-Янв-26 (28) +1

- Бугуга, с тех пор ничего и не изменилось Зато пару тактов можно будет сэкономи, Аноним (-), 11:58 , 09-Янв-26 (30) +3

- А за какое время в расте длина char считается , Аноним (11), 12:32 , 09-Янв-26 (42)
- 1 А причет тут раст 2 В нормальных языках есть тип String, в котором при созда, Аноним (-), 12:40 , 09-Янв-26 (46) +1
- В расте есть нормальные строки вместо char И их длина считается за O 1 - там п, Анонимусс (?), 12:46 , 09-Янв-26 (47) +3
- Таких нормальных строк в С в разных либах фреймворках вагон и маленькая тележк, Аноним83 (?), 13:42 , 09-Янв-26 (78) +2
- Не лезут Чтобы структура вела себя как указатель, дополнительно хранящий размер, Аноним (57), 15:35 , 09-Янв-26 (144)
- Какая перегрузка операторов Зачем Структура длина, указатель - это совершен, Аноним (68), 17:36 , 09-Янв-26 (198)
- Верно, в Си ещё с обобщённым программированием проблемы Только на макросах, а и, Аноним (57), 18:02 , 09-Янв-26 (211)
- А смысл их тут рассматривать Только если сделать комбо, когда строки нуль-терми, Аноним (68), 19:13 , 09-Янв-26 (223)
- В C так делают В нативных строках D и Rust терминатора нет, но D умеет без ко, Аноним (57), 12:32 , 10-Янв-26 (382)
> если сделать комбо, когда строки нуль-терминированныеВ C++ так делают. В нативных строках D и Rust терминатора нет, но D умеет без костылей склеивать Си-строки с нативными: dStr ~ cStr[0..strlen(cStr)]; > Полноценное обобщенное программирование > не для продвинутого макроассемблера > слишком далеко от железа Расскажи Линусу, что он неправильно делает, у него всё ядро в _Generic, __auto_type, typeof(val) v = val.
- Зачем Достаточно выкинуть текущие строковые функции типа printf и strcpy и вмес, Аноним (4), 23:11 , 09-Янв-26 (314)
- Велосипеды Покупайте наши велосипеды Они самые велосипедистые в мире Потому ч, Аноним (-), 15:50 , 09-Янв-26 (150)
- А зачем нужны строки Так по хорошему в С есть строки, это то что const char , Аноним83 (?), 16:31 , 09-Янв-26 (159)
- Ну, например, чтобы не бежать каждый раз O n в поисках нуля Причем заметь ком, Аноним (216), 18:41 , 09-Янв-26 (216)
- Если у тебя проблемы с тем, чтобы писать код, в котором нету перепрыгивания чере, Аноним (47), 20:18 , 09-Янв-26 (250) –3
- А зачем Вы сами себе придумали проблему Достаточно просто рядом с указателем на , Аноним83 (?), 04:50 , 10-Янв-26 (351) –2
- Зачем не бежать по всей строке Ну ок Кто вы Не мы , а гениальные дизайнер, Аноним (12), 17:50 , 10-Янв-26 (393) –1
>> Ну, например, чтобы не бежать каждый раз O(n) в поисках нуля? > А зачем?Зачем не бежать по всей строке? Ну ок... > Вы сами себе придумали проблему. Кто "вы"? Не "мы", а гениальные дизайнерв языка С и его стандартной библиотеки. > Достаточно просто рядом с указателем на область памяти хранить размер. Только в сишных строках этого почему-то нет. > Это вы про: const char* = "abc". > Так оно через (sizeof(X) - 1) когда надо доступно. Ну удачи тебе дергать sizeof для const char*. Господи, да ты же в С обсолютно некомпетентен... >> Ну, или, не сношаться с буферами фиксированного размера > Буфера на стёке удобны, их и освобождать не надо. Никаких сношений там нет. Только вот что-то люди уже более полувека вылазят за их пределы.
- Зачем где то бегать когда рядом можно держать site_t с готовым результатом Так , Аноним83 (?), 19:11 , 10-Янв-26 (405)
> Зачем не бежать по всей строке? Ну ок...Зачем где то бегать когда рядом можно держать site_t с готовым результатом!? > Только в сишных строках этого почему-то нет. Так и строк в С как таковых нет, кроме того что в ковычках в коде. Остальное это указатели на области памяти, где вероятно /0 указывает на границу буфера/полезных данных. Искать там /0 или ложить рядом size_t - выбор каждого программиста в каждой отдельной ситуации. > Ну удачи тебе дергать sizeof для
Это вы уже сами с собой спорите, я немного другое написал. > Только вот что-то люди уже более полувека вылазят за их пределы.
Да вот только лет 20 как это стало проблемой программиста а не пользователя который фигню сделал. И программисты эту проблему решили неплохо так за последние 15 лет: если раньше оно само могло крашнутся, то сейчас нужно фазерами и анализаторами долго выискивать и потом пытатся придумать как это реализовать.
- Зато не лишнее - посношаться с фиксированным буфером и вылезти за его пределы , Аноним (12), 20:25 , 09-Янв-26 (253)
- ага, а потом пытаешься совместить эти либы в одном проекте, Аноним (113), 21:39 , 09-Янв-26 (294)
- проблема только в том что они - в хрусте ты и на си тоже вполне можешь заранее п, нах. (?), 13:49 , 09-Янв-26 (90)
- Я б посмотрел как ты имеючи только асм вообще забутстрапишь свой rust хоть как-т, Аноним (133), 01:53 , 10-Янв-26 (345) –2
- Давайе придумаем абсурдно нереальный сценарий, и будем судить на основе него А , Аноним (4), 18:18 , 10-Янв-26 (398) +2
>Я б посмотрел как ты имеючи только асм вообще забутстрапишь свой rust хоть как-то.Давайе придумаем абсурдно нереальный сценарий, и будем судить на основе него. А теперь вам абслютно симметричный ответ: как вы имея только ассемблер собираетесь работать с gcc, glibc и llvm? Никак? Или всё таки как-то собираетесь? Ну вот и с растом ситуация полностью аналогичная. >Поэтому есть те кто может поднять платформу с ноля при zero assumptions. Для начала, вам нужно обосновать, зачем это нужно. Поскольку от ваших велосипедов, написанных на ассемблере в 2026 году мир лучше не станет, зато гарантированно откатится по уровню развития до 1970-ых.
- Так дело в том, что не х86 единым Сейчас в приличных вузах технических студенты , Аноним83 (?), 23:38 , 10-Янв-26 (434)
Так дело в том, что не х86 единым. Сейчас в приличных вузах технических студенты свои системы комманд и процы делают, там нет гигагерц и гигабайт чтобы собирать ржавчину и ллвм, но накорябать простенький интерпретатор С и собрать им нечто по сложнее - вполне реально.Без велисипедов на асме у вас ни ОС ни написать ни кодеков приличных - не тормозящих. Вон AV1 на русте как то не пользуется популярностью, в отличии от С+асм поделок.
- Хотелось бы услышать комментарии ProfessorNavigator, который любит рассказывать,, Аноним (31), 12:03 , 09-Янв-26 (31) +2

- Конечно Проприетарный UNIXv3 переписывали для проприетарного ЭВМ PDP-11 45 в вид, Аноним (-), 12:07 , 09-Янв-26 (33) +4
- Разумеется Менеджер корпорации 822 у 822 г 822 н 822 е 822 т 822 а 822, Анонимусс (-), 13:37 , 09-Янв-26 (74) +4
- Не буди лихо, пока оно тихо Впрочем - уже поздно, хе-хе В новости прекрасно н, ProfessorNavigator (ok), 14:34 , 09-Янв-26 (124) +2
- Трёхмерные крестики-нолики в дополнение к двухмерным , шахматы, блэкджек, гене, Аноним (57), 17:15 , 09-Янв-26 (177) –1
- Проффесор, а читать не умеете Нет никакого падения, есть переполнение буфера И, Аноним (90), 19:50 , 09-Янв-26 (234) +1
- gt оверквотинг удален Код, написанный лично вами, покажите, потом продолжим , ProfessorNavigator (ok), 19:59 , 09-Янв-26 (241) –2
- А как ты думаешь почему параметры компиляторов включающие проверку выхода за гра, КО (?), 09:35 , 12-Янв-26 (488)
>И что? Если бы в код добавили проверку на выход из буфера, то что, программа бы сломалась?А как ты думаешь почему параметры компиляторов включающие проверку выхода за границы массива времен лохматых по умолчанию были выключены? Боролись за производительность, ибо ее не хватало. Вот и не было привычки его включать.
- Ага, за исключением тех случаев, когда пределы буфера не приводит к падению Или, Аноним (12), 20:50 , 09-Янв-26 (271)
- Прикольно V4 действительно считалась потерянной Более менее развитие шло с V5, Аноним (32), 12:06 , 09-Янв-26 (32)
- Скрыто модератором, Аноним (-), 12:11 , 09-Янв-26 (34) –2 [---]
- Впечатлило два момента 1 Как просто было переписать на другой язык Вот просто , Аноним (185), 12:12 , 09-Янв-26 (35) +1

- Хочешь прикол Они переписывали на печатной машинке телетайпе и у них не было , Аноним (8), 12:22 , 09-Янв-26 (39) +5
- С ассемблера на С переписать действительно было несложно Особенно если знать , Аноним (40), 12:25 , 09-Янв-26 (40) +1
- Потому что сама ОС занимала всего 27 тысяч на языке Си 30к ассемблера А su , Анонимусс (?), 12:27 , 09-Янв-26 (41) +4
- только сперва понадобилось создать этот самый язык Предназначенный именно для э, нах. (?), 13:43 , 09-Янв-26 (80) +1
- Сами исконные диды, создатели языка, заложили эту идеологию разработки ПО Это п, Аноним (38), 12:19 , 09-Янв-26 (38) +2

- СИ мы пишем овнокод прям с самого создания Отличный лозунг для отличного язык, Аноним (-), 12:36 , 09-Янв-26 (44)
- Тогда падение в невероятных условиях не считалось значительной проблемой Язык т, Аноним (1), 13:02 , 09-Янв-26 (59) +1
- Что значит программировать не придумали Они не могли написать если пароль бол, Аноним (-), 13:42 , 09-Янв-26 (77)
- ну вперед, напиши ОС или хотя бы попробуй переписать с ассемблера на smalltalk, нах. (?), 13:54 , 09-Янв-26 (96)
- Да есть уже https wiki squeak org squeak 1762, Диды (ok), 15:03 , 09-Янв-26 (133)
- Implement the bare minimum as native code a mix of assembly and C , and then d, нах.. (?), 16:29 , 09-Янв-26 (156)
- Да всё так Без нынче модно проклинаемого C и asm низкоуровневые штуки не написа, Диды (ok), 02:30 , 10-Янв-26 (346)
- Не следует смешивать ассемблер и си Программа на ассемблере строго определена, , Аноним (4), 18:31 , 10-Янв-26 (400)
>Да всё так. Без нынче модно проклинаемого C и asmНе следует смешивать ассемблер и си. Программа на ассемблере строго определена, в то время как компилятор си может выдать абсолютно любой произвольный код. >Многие ярые пропагандисты rust Лично я против раста, из-за того, что его система типов слишком слаба, по сравнению с тем же ats. >похоже не понимают истинного назначения UB в С Единственное назначение UB - стрельба по ногам. >Вот в C это UB - явное указание программисту избегать таких ситуаций. Ну сколько можно лгать? Указание избегать ситуаций - это либо ошибка компиляции, либо предупреждение. https://habr.com/ru/articles/827752/ Вот вам простейший пример, как компилятор может переделать программу по своему собственному усмотрению, просто выкинув условие. И если в данном надуманном примере всё просто и понятно, то когда у сишников ломается код в больших программах, то они долго не могут понять, в чём именно проблема.
- Опять же, откуда ты узнаешь, сколько байт ввели Это надо счётчик для каждого си, Аноним (1), 14:00 , 09-Янв-26 (106)
- нет, точно такой же ляп только там символы удалялись а не добавлялись , просто , нах.. (?), 16:31 , 09-Янв-26 (158)
- Ты в код заглядывал там while q getchar n Они и так считывали ввод , Аноним (174), 17:04 , 09-Янв-26 (174) +1
- Одна строка - один счётчик И В чём проблема проверять ввод, как минимум, когда , Аноним (90), 21:05 , 09-Янв-26 (280)
- Откровенно говоря, лучше бы Дуглас Макилрой вообще ничего не комментировал Ибо,, Аноним (31), 12:38 , 09-Янв-26 (45)

- Зато сегодня они могут кряхтеть и бухтеть воооот смyзихлебы а вот в мое врем, Аноним (83), 12:49 , 09-Янв-26 (50) +3
- Вызывает восхищение, что чел не просто дожил до 93 лет и способен говорить осмыс, Аноним (51), 12:50 , 09-Янв-26 (51) +4
- На тот момент важна была работоспособность в принципе А не надежность , потому ч, Аноним (32), 13:00 , 09-Янв-26 (57)
- А вот Дуглас говорит что nobody would ever want to input a 200-character line, , Аноним (71), 13:20 , 09-Янв-26 (70) +2
- Это домыслы и натягивание совы, Аноним (32), 17:20 , 09-Янв-26 (180) –1
- Да малоли что он говорит Дениса уже не спросить, но есть Кен Томпсон, а также Р, Кошкажена (?), 01:51 , 10-Янв-26 (344) –3
- С фига ли мало ли что Только лишь потому, что его слова разрушили твой розовы, Аноним (12), 18:02 , 10-Янв-26 (395) +1
>> А вот Дуглас говори > Да малоли что он говорит.С фига ли "мало ли что"? Только лишь потому, что его слова разрушили твой розовый мирок "крутых сишных дидов"? Если ты намекаешь, что он лжет, то неплохо бы тебе привести доказательства (хотя, казалось бы, вот код у тебя под носом). Но вместо этого ты фантазируешь, что сказал бы почивший Денис Ричи. > но есть Кен Томпсон, а также Роб Пайк Ну иди спроси их. Уверен, они выведут лжеца Дугласа на чистую воду.
- Как возбудился растовщик Веришь словам, которые не понятно как проверить , Кошкажена (?), 18:08 , 10-Янв-26 (397) –1
>>> А вот Дуглас говори >> Да малоли что он говорит. > С фига ли "мало ли что"? Только лишь потому, что его слова > разрушили твой розовый мирок "крутых сишных дидов"? > Если ты намекаешь, что он лжет, то неплохо бы тебе привести доказательства > (хотя, казалось бы, вот код у тебя под носом). Но вместо > этого ты фантазируешь, что сказал бы почивший Денис Ричи.Как возбудился растовщик. Веришь словам, которые не понятно как проверить.
- Кто Лучше попытайся по существу что-то внятное ответить на аргементы , Аноним (12), 19:17 , 10-Янв-26 (406)
> Как возбудился растовщик. Кто? Лучше попытайся по существу что-то внятное ответить на аргементы.
- Разуй глаза, у тебя код под носом , Аноним (12), 21:21 , 10-Янв-26 (422)
> Веришь словам, которые не понятно как проверить. Разуй глаза, у тебя код под носом.
- У меня почти весь код в системе на с или с А что касается какого-то старого к, Кошкажена (?), 00:04 , 11-Янв-26 (440) –1
>> Веришь словам, которые не понятно как проверить. > Разуй глаза, у тебя код под носом.У меня почти весь код в системе на с или с++. А что касается какого-то старого коа, который кто-то нашел где-то, да и еще и нейронкой сверху обработал... А потом разработичк сказал что-то... Растовщикам-идеалистам не понять. Для такого нужно уметь анализировать.
- Мы этот старый код и обсуждаем, если ты забыл К чему ты вообще приплел код из с, Аноним (12), 01:55 , 11-Янв-26 (446) +1
> У меня почти весь код в системе на с или с++. > А что касается какого-то старого коа,Мы этот старый код и обсуждаем, если ты забыл. К чему ты вообще приплел код из своей системы? > да и еще и нейронкой сверху обработал Ах, так это нейронка подложила свинью сишочным дедам? А в оригинале там были проверки как положено? Господи, вот это копиум! > А потом разработичк сказал что-то.. Намекаешь на то, что Дуглас Макилрой соврал? >>> Веришь словам, которые не понятно как проверить. >> Разуй глаза, у тебя код под носом. > Для такого нужно уметь анализировать. Ты уже наанализировал, спасибо. Анализ уровня "вы все врети!".
- Элементарно, Ватсон сейчас весь рабочий код нем Намекаю, что надо опросить боле, Кошкажена (?), 17:38 , 11-Янв-26 (482) –1
> Мы этот старый код и обсуждаем, если ты забыл. К чему ты вообще приплел код из своей системы?Элементарно, Ватсон: сейчас весь рабочий код нем. >> А потом разработичк сказал что-то.. > Намекаешь на то, что Дуглас Макилрой соврал? Намекаю, что надо опросить более одного человека. Бывает так, что один говорит "они все были дураками". Это однобокая точка зрения. Сказать можно, проверить ты никак не можешь. >>>> Веришь словам, которые не понятно как проверить. >>> Разуй глаза, у тебя код под носом. >> Для такого нужно уметь анализировать. > Ты уже наанализировал, спасибо. Анализ уровня "вы все врети!". А вот и нет. У меня недостаточно данных для анализа. А вот растовщики верят всему, что написано на заборе.
- Другими словами, твой код не имеет никакого отношения к обсуждаемому коду из Uni, Аноним (483), 20:29 , 11-Янв-26 (483) –1
>> Мы этот старый код и обсуждаем, если ты забыл. К чему ты вообще приплел код из своей системы? > Элементарно, Ватсон: сейчас весь рабочий код немДругими словами, твой код не имеет никакого отношения к обсуждаемому коду из Unix 4 1973 года. >>> А потом разработичк сказал что-то.. >> Намекаешь на то, что Дуглас Макилрой соврал? > Намекаю, что надо опросить более одного человека. Бывает так, что один говорит "они все были дураками". Что ж ты так о дедах-первопроходцах - "были дураками"? Ведь Дуглас даже приблизительно не намекал, что они были "дураками", а наоборот: заявлял, что решение было взвешенным, учитывая время и обстоятельства. > Это однобокая точка зрения. Сказать можно, проверить ты никак не можешь. Я так и не понял как, по-твоему, могла бы звучать противоположная Дугласу точка зрения (от условного Кена Томпсона)? Типа "у нас бали высочайшие стандарты, а за буфер мы случайно вылезли"? У тебя просто стадия отрицания. Это пройдет. >> Ты уже наанализировал, спасибо. Анализ уровня "вы все врети!". > А вот и нет. У меня недостаточно данных для анализа. Только ты почему-то тактично о них умалчиваешь. 😂 > А вот растовщики верят всему, что написано на заборе Так и запишем: слова Дугласа Макилроя - это "написано на заборе" А слова опеннетного непойми кого под ником "Кошкажена" - объективная истина.
- Да, хочу Допустим, во время разработки си они не понимали, какого монстра они д, Аноним (4), 18:22 , 10-Янв-26 (399)
>Хотите назвать их бракоделами?Да, хочу. Допустим, во время разработки си они не понимали, какого монстра они делают. Но во времена разработки голанга, они уже должны были понимать, в какого монстра превратился си, и каким монстром будет голанг. Умные люди, уже в 1980-ых понимали, как сделать лучше, и уже начали работу над Standard ML. Во времена нулевых уже был и хаскель, и окамл.
- Причем тут Си ML - это развитие типизированного лямбда исчисления Там люди в п, Кошкажена (?), 00:10 , 11-Янв-26 (441)
>>Хотите назвать их бракоделами? > Да, хочу. Допустим, во время разработки си они не понимали, какого монстра > они делают. Но во времена разработки голанга, они уже должны были > понимать, в какого монстра превратился си, и каким монстром будет голанг. > Умные люди, уже в 1980-ых понимали, как сделать лучше, и уже > начали работу над Standard ML. Во времена нулевых уже был и > хаскель, и окамл.Причем тут Си? ML - это развитие типизированного лямбда исчисления. Там люди в первую очерель решали математические задачи. И каким образом go относится ML, есди по дизайну не поощрается функциональный подход?
- Т е академического брейнфака для их игрищ ума - страшно далеких от того как соф, Аноним (458), 07:37 , 11-Янв-26 (458)
> Причем тут Си? ML - это развитие типизированного лямбда исчисления. Т.е. академического брейнфака для их игрищ ума - страшно далеких от того как софт применяется в этом мире на практике. Ну это и использует - полтора извращенца. А с точки зрения майнтенанса и эксплуатации это воообще п...ц ибо в такой код въедет полтора профессора на всю планету. Проблема в том что их на всех резко не хватает, и в итоге продакшны с всеми этими лямбдами - дают дуба. Вместе с их проектами. > Там люди в первую очерель решали математические задачи. И каким образом go относится > ML, есди по дизайну не поощрается функциональный подход? И правильно делает что не поощряет. Брейнфак вместо программирования - это очень сомнительное достоинство. Ведущее к кончине софтварного проекта.
- Почитай про JaneStreet, MirageOS который ипользуется в Docker или про Rocq Та, Кошкажена (?), 17:29 , 11-Янв-26 (480) +2
>> Причем тут Си? ML - это развитие типизированного лямбда исчисления. > Т.е. академического брейнфака для их игрищ ума - страшно далеких от того > как софт применяется в этом мире на практике. Ну это и > использует - полтора извращенца. > А с точки зрения майнтенанса и эксплуатации это воообще п...ц ибо в > такой код въедет полтора профессора на всю планету. Проблема в том > что их на всех резко не хватает, и в итоге продакшны > с всеми этими лямбдами - дают дуба. Вместе с их проектами. Почитай про JaneStreet, MirageOS (который ипользуется в Docker) или про Rocq. Также OCaml много где использовался в fb: flow, pyre-check.
- Опять растовщики что-то выдумали , Кошкажена (?), 00:11 , 11-Янв-26 (442) –1
>>Хотите назвать их бракоделами? > Но во времена разработки голанга, они уже должны были понимать, в какого монстра превратился си, и каким монстром будет голанг.Опять растовщики что-то выдумали.
- Вы так и не поняли нифига Идея была в том, что прогу писали для выполнения конкр, Аноним83 (?), 13:39 , 09-Янв-26 (75) +4
- Да, только ты один тут владеешь сакральным знанием Про червя Морриса он вспомина, Аноним (-), 13:44 , 09-Янв-26 (82)
- Не надо путать причину и следствие Пока не появился червь морриса никто не заду, Аноним (40), 13:56 , 09-Янв-26 (100) –1
- Червь Морриса был уже когда было написано много всего Представь что у тебя был к, Аноним83 (?), 13:58 , 09-Янв-26 (104) +1
- Перевожу на современный лад если программисту нравится код, написанный им год , Аноним (185), 14:13 , 09-Янв-26 (117) –1
- Ну да, а потом пришел червь Морриса, и они сделали удивленные глаза И, главное,, Аноним (71), 13:55 , 09-Янв-26 (99) +1
- Опять сишники лгут Оно не крашится, оно предоставляет уязвимость Пароль будет п, Аноним (90), 19:53 , 09-Янв-26 (235)
- То есть пароль в 200 символов - корректные данные, а 201 - уже нет Хм, а Дуглас , Аноним (12), 19:57 , 09-Янв-26 (239) +1
- Та не он прокомментировал, стало чуть понятнее Академия уже тогда говорила о т, Аноним (-), 16:02 , 09-Янв-26 (152) –1
- Они это и сейчас продолдают Вон в rust - брякнуться в паник это вообще стандарт, Аноним (-), 01:27 , 10-Янв-26 (338) –1
- Брякнуться в паник - это да, очень пригодно для реалтайм систем А чо, нормально, Tron is Whistling (?), 10:38 , 10-Янв-26 (370)
- UB для систем реального времени точно так же противопоказано, как и паника , Аноним (4), 18:42 , 10-Янв-26 (403)
>Брякнуться в паник - это да, очень пригодно для реалтайм систем.UB для систем реального времени точно так же противопоказано, как и паника.
- Я б посмотрел как вы бы ющали ядро падающее в панику если ему памяти не хватило , Аноним (458), 07:38 , 11-Янв-26 (459) –1
> UB для систем реального времени точно так же противопоказано, как и паника. Я б посмотрел как вы бы ющали ядро падающее в панику если ему памяти не хватило :)
- Противопоказано, но далеко не всегда фатально Из реальной жизни история Вот есть, Tron is Whistling (?), 09:15 , 11-Янв-26 (468)
Противопоказано, но далеко не всегда фатально.Из реальной жизни история. Вот есть у меня плата большого сложного сетевого шкафчика. Там допустим несколько NPU, и на них крутится софт, который при определённом "UB" испортит некие _данные_ соседнего пакета в том же самом flowchain раз в столетие, и эта ошибка ещё не обнаружена. И тут юзер начинает слать какие-то пакеты, которые эту ошибку триггерят - мне неведомо, что он там шлёт, и мне абсолютно наплевать, что он этим самым испортит свои собственные данные собственного потока - да, юзер будет недоволен, и возможно даже прилетит bug report, по которому эту ошибку начнут искать у вендора. Но железка будет работать. Если у тебя вместо этого будет паника - упадёт весь NPU - все N 100-гигабитных портов, на этом NPU висящих. На которых таких юзеров - тысячи. И будет переинициализирован. Это минута-полторы стояка для всех этих юзеров, пересчёт BGP по всей сети, пересчёт OSPF по всей сети, обрыв состояний всех треков на портах за NPU, обрыв BFD на портах за NPU, и т.п. Дальше NPU поднимется - и снова получит этот странный бажный трафик - и снова упадёт. Но и это ещё не всё. В сети происходит рероутинг. Источники трафика многоногие, и трафик пойдёт другим путём, где налетит на точно такой же NPU с другим портом - и положит этот NPU - уже на другом роутере. В итоге упадёт ещё один NPU и ещё один путь трафика. Короче говоря, твоя паника положит мне полсети очень надолго, и заставит в этом бардаке искать источник странного трафика, выкладывая пачку юзеров за пачкой юзеров, получая при этом кучу жалоб и убытков - в т.ч. для юзеров. И всё это будет продолжаться, пока саппорт вендора наконец не проанализирует проблему и не выкатит фикс - даже с наивысшим приоритетом саппорта чудес не бывает, и занимает это более суток... Честно - я лучше некоторую долю UB допущу, чем вот такое вот.
- Красивое , Аноним (56), 12:59 , 09-Янв-26 (56) –1
- Хейтеры не желают понимать очевидных вещей Все версии Юникса это закрытые и про, Аноним (58), 13:00 , 09-Янв-26 (58) +2

- Ну да, ну да Продемонстрировано несколько способов обхода изоляции FreeBSD jail, Аноним (174), 13:09 , 09-Янв-26 (63)
- Что значит проблематично Просто забываешь проверить размер буфера и кто угодно, Анонимусс (?), 13:16 , 09-Янв-26 (68) +3
- Так хэйтеры именно поэтому и облизывают дырявую проприетарь Нет, говорят, не ну, Аноним (1), 13:22 , 09-Янв-26 (71)
- настолько закрытые и настолько запрещалось - что исходник версии которая и работ, нах. (?), 14:00 , 09-Янв-26 (107)
- Как давно мы обсуждали древнюю уязвимость, cve в утилите su Кто его знает как р, Джон Титор (ok), 23:25 , 09-Янв-26 (317)
- Откопали копролитЪ Умудлились восстановить А там 822 а 822 р 822 м 822 я , Аноним (174), 13:06 , 09-Янв-26 (61)

- Дыра для сегодняшнего времени Для тех далёких времён, это не считалось дырой , Аноним (-), 13:09 , 09-Янв-26 (64)
- Какого года червь Морриса На минуточку код по таким же стандартам писали и 80 , Аноним (-), 13:17 , 09-Янв-26 (69) –1
- Отец Морриса, на секундочку, работал в АНБ , Аноним (8), 13:42 , 09-Янв-26 (79) +1
- Ты в глаза долбишься 1988 года А код UNIXv4 какого года 1972-го Читай всю ново, Аноним (153), 13:49 , 09-Янв-26 (91) +1
- Пф, ты сначала мозг включи, а потом оскорбляй А UNIX System V - 1983 И что там А, Аноним (-), 14:03 , 09-Янв-26 (109) –1
- Повторю сначала новость полностью читай , Аноним (153), 14:08 , 09-Янв-26 (112)
- Так я и говорю Они знали что переполнение это плохо Им просто было на это плеват, Аноним (-), 14:09 , 09-Янв-26 (114) –1
- Неправильно Они знали, что в тех условиях, в которых создавалось, это не имело , Аноним (153), 14:31 , 09-Янв-26 (123) +3
- вот фу таким быть Во-первых надо было конечно первым делом проверить что гиф эт, нах.. (?), 16:50 , 09-Янв-26 (169) +2
- Нет Проверки не нужны Всегда приятно сделать чашечку крепкого кофе и почитать н, Аноним (174), 17:12 , 09-Янв-26 (176) –2
- Боюсь что в его случае он воспользуется советом LLM воспользоваться каким-нибудь, Tron is Whistling (?), 09:34 , 11-Янв-26 (470)
Боюсь что в его случае он воспользуется советом LLM воспользоваться каким-нибудь облачком, и безопастно решит проблему через какой-нибудь reqwest. А потом пойдёт на мороз, потому что гифки были конфиденциальные, и в облака их грузить было нельзя. Даже безопастно.
- Через 15 лет после появился Выше же написали, что до него никто и не задумывалс, КО (?), 09:44 , 12-Янв-26 (489)
>Какого года червь Морриса?Через 15 лет после появился. Выше же написали, что до него никто и не задумывался, что переполнением можно воспользоваться.
- Ух ты, дедуля ещё живой и комментирует Классный чувак, долгой жизни ему , Admino (ok), 13:45 , 09-Янв-26 (83) +1
- Ознакомился с глупостями, начиная с первого комментатора Заучите наизусть испо, Аноним (163), 13:45 , 09-Янв-26 (84) –5 [V]

- Если это не Настоящие 8482 Сишники 8482 , то кто тогда достоен этого звания , Аноним (-), 13:46 , 09-Янв-26 (86) –2

- А обои у них неплохие были , Аноним (57), 15:58 , 09-Янв-26 (151)

- В 73 году там скорее всего только консоль была А десктоп с обоями , 1 (??), 19:30 , 09-Янв-26 (227) +2
- а не десктоп, 1 (??), 19:31 , 09-Янв-26 (228) +1
- Терминал это все лучшем случае, если не перфокарты , Аноним (101), 05:50 , 10-Янв-26 (360) +1
- ну не, PDP-11 я думаю все-таки терминал, но конечно без мыши, 1 (??), 10:48 , 10-Янв-26 (371)
- да, помнится читал, у них там дисплей с круглым экраном был, как на радаре они , 1 (??), 10:52 , 10-Янв-26 (372)
- По ссылке Equilateral-AI с соавтором Claude Opus 4 5 свалил вместе V4, V5 и V6 б, Аноним (57), 16:37 , 09-Янв-26 (161)

- Наконец-то фанаты философии UNIX смогут пользоваться настоящим Юниксом, написанн, Bottle (?), 18:42 , 09-Янв-26 (217) +1
- Это просто гимн качеству кода на си Упаковать уязвимость в 50 строк кода - это , Аноним (90), 19:41 , 09-Янв-26 (230) +2

- Только один даже этот перл кода, побуждает сходить за пивом To convert to mse, Roman Dyaba (ok), 19:50 , 09-Янв-26 (233)

- Пионеры IT , Anm (?), 20:46 , 09-Янв-26 (267)
- Стиль убогий Но где вы хороший стиль программирования на С видели Разве что в , nox. (?), 21:08 , 09-Янв-26 (281) +1
- А ничего что математический сопроцессор появился после написания этого кода , Аноним83 (?), 05:08 , 10-Янв-26 (354)
- Это код из 1993 или позже Как делить u64, если ещё не вышел C99 с требованием , Аноним (57), 14:48 , 10-Янв-26 (388)
Это код из 1993 или позже. "Как делить u64, если ещё не вышел C99 с требованием реализовать u64 в компиляторе". https://github.com/simh/simh/blob/master/sim_timer.c#L421clever multiply - это про работу компилятора, подбирать разложения для деления на константу Например, u32 / 10000 == u64(u32) * 3518437209 / 2^45. Но если у нас нет u64 в языке, то мы даже вручную переносимо это не повторим. i386 умеет делать u32*u32=u64, а сишка нет.
- А с чего вдруг компилятор должен что то подбирать Ему дали код - он его должен т, Аноним83 (?), 19:17 , 10-Янв-26 (407)
А с чего вдруг компилятор должен что то подбирать? Ему дали код - он его должен транслировать в машинный, на этом всё.
- Ты говоришь, что компилятор должен , не я Это подходящая работа для компилято, Аноним (57), 19:57 , 10-Янв-26 (410)
Ты говоришь, что "компилятор должен", не я.Это *подходящая* работа для компилятора. Программист пишет переносимый код (он же не ассемблер взял), компилятор генерирует хороший код под конкретные платформы. Он не обязан генерировать хороший код. Но пользоваться таким компилятором тоже не обязаны. Обычно конфликта нет, потому что компилятор-без-оптимизаций нужен для бутстрапа или обучения, например.
- В исходном сообщении написан конкретный код, с чего бы компилятору там какие то , Аноним83 (?), 23:44 , 10-Янв-26 (435)
В исходном сообщении написан конкретный код, с чего бы компилятору там какие то множители подбирать!?Попробовать распихать по регистрам, срезать лишние операции, развернуть циклы - да, но подбирать множитель - это к ИИ.
- С того, что остальные понимают, что такое язык высокого уровня , а ты нет Сишн, Аноним (57), 07:22 , 11-Янв-26 (455)
> В исходном сообщении написан конкретный код, с чего бы компилятору там какие > то множители подбирать!?С того, что остальные понимают, что такое "язык высокого уровня", а ты нет. Сишный комитет ещё 40 лет назад говорил, что у него везде as if principle (и abstract machine), чтобы у компилятора был простор для оптимизаций. Как ты собираешься вручную оптимизировать случай, когда знаменатель - макроконстанта (как минимум) или он станет известен на этапе компиляции только после инлайнинга (как максимум)? Если человек умеет подбирать разложения с учётом возможностей конкретного процессора (размеры регистров, стоимость инструкций), он пишет компиляторы. Если это делать вообще, то это просто логично помещать в компиляторы, чтобы два раза не вставать и иметь удобный интерфейс (`-Os` и деление опять деление).
- С того что mul и div не особо быстрые операции Заметно медленнее остальных опер, Аноним (458), 07:42 , 11-Янв-26 (460)
> В исходном сообщении написан конкретный код, с чего бы компилятору там какие > то множители подбирать!?С того что mul и div не особо быстрые операции. Заметно медленнее остальных операций регистр-регистр как правило. Поэтому продвинутые компилеры пытаются сие оптимизнуть порой. > Попробовать распихать по регистрам, срезать лишние операции, развернуть > циклы - да, но подбирать множитель - это к ИИ. Советую посмотреть как LTO например работает. Черт, там есть прувер что "вот это всегда только с этим аргументом" и мы тут вообще - выпилим 80% вашего "dead code" и еще смержим с вон тем наполовину. Оппппа? Кода на треть меньше в бинаре? И он даже быстрее? Вааау!
- А с чего этим должен заниматься программист Всё что возможно автоматизировать н, Аноним (478), 16:39 , 11-Янв-26 (478)
> с чего бы компилятору там какие то множители подбирать!?А с чего этим должен заниматься программист? Всё что возможно автоматизировать надо автоматизировать. Подбор этого множителя выполняется алгоритмически. Деление на константу попадается часто и деление по жизни тормозная операция. То есть вещь востребованная и рутинная, то есть не требующая интеллекта. Значит это задача компилятора.
- Это как uint64_t кто-то стырил , Аноним (472), 10:52 , 11-Янв-26 (472)
> Но если у нас нет u64 в языке, то мы даже вручную > переносимо это не повторим. i386 умеет делать u32*u32=u64, а сишка нет. Это как? uint64_t кто-то стырил?
- А в чём проблема-то Обыкновенное деление с бинарными сдвигами Нет там 64-битны, Tron is Whistling (?), 09:39 , 11-Янв-26 (471)
А в чём проблема-то? Обыкновенное деление с бинарными сдвигами. Нет там 64-битных типов ещё, поэтому реализовали почти так же, как на асме бы было без DIV, но переносимо.
- Обыкновенное деление - это когда рисуешь уголок и начинаешь механически повторят, Аноним (57), 14:22 , 11-Янв-26 (477)
> Обыкновенное делениеОбыкновенное деление - это когда рисуешь уголок и начинаешь механически повторять забытые действия. Это же надо постараться, чтобы понять, что мы так же делим. (в худшем случае тег ['code'] ниже будет работать только в окне ответа ("Ответить"))123456 / 28 = ? + ?/28 divrem(12345,28) = {?;?} digitsCount(123456) = 6; 6 steps 0.123456 / 28 = 123456 / 28 * 10^-6 remainder next check step ---------------------------+-----------+------ 0) 0.123456/28 | begin | x10 1) 1.234560/28 | 1 < 28 | x10 2) 12.345600/28 | 12 < 28 | x10 3) 123.456000/28 | 123 >= 28 | . -28x? | . | . -28x4 divrem(123,28) | . | . -112 = {4;11} | . | . = 11 | . | . 11.456000/28 + 4 | (11 < 28) | x10 4) 114.560000/28 + 40 | 114 > 28 | . -28x? | . | . -28x4 divrem(114,28) | . | . -112 = {4;2} | . | . = 2 | . | . 2.560000/28 + 44 | (2 < 28) | x10 5) 25.600000/28 + 440 | 25 < 28 | x10 6) 256.000000/28 + 4400 | 256 >= 28 | . -28x? | . | . -28x9 divrem(256,28) | . | . -252 = {9;4} | . | . = 4 | . | . 4.000000/28 + 4409 | (4 < 28) | end 123456 / 28 = 4409 + 4/28
- Я не понял, а лицензия то какая на этот код AT T разрешение дало на публикацию , Аноним (278), 20:43 , 09-Янв-26 (265) +1

- Unix в Bell Labs , Anm (?), 20:49 , 09-Янв-26 (270)
- Тоже задался этим вопросом Но надо помнить, что исходный код уже публиковался O, Аноним (101), 05:44 , 10-Янв-26 (359) +1
- Исходные коды AT T продала давно, долгое время хозяева менялись С появление GNU, Аноним (-), 07:40 , 10-Янв-26 (364)
- macOS 15 Sequoia актуальная прошла, грядущая macOS Tahoe 26 тоже в списке ht, Аноним (101), 11:26 , 10-Янв-26 (379)
- Так что все пользователя Макбуков это ту ЮНИКСоиды То-то же https www opengro, Аноним (101), 11:27 , 10-Янв-26 (381)
- SCO Group, сейчас это Xinuos , oldzoomer (ok), 03:05 , 11-Янв-26 (448)
>Последний хозяин - Novell*SCO Group, сейчас это Xinuos.
- там интересно, что getchar возвращает 0 а не EOF если конец ввода или ошибка в m, RM (ok), 21:09 , 09-Янв-26 (283)
- Скрыто модератором, Джон Титор (ok), 21:36 , 09-Янв-26 (293) [---]
- Вот видите, человек всю жизнь писал на С, и в 93 года у него всё ещё хорошая пам, Аноним (310), 22:40 , 09-Янв-26 (305) +2

- Теряют часто, но зато уборку делают редко, Аноним (310), 22:43 , 09-Янв-26 (306)

- Я не понял, там что GUI был, да ещё цветной, да ещё в приличном разрешении Как, Аноним (123), 08:44 , 10-Янв-26 (366) +1

- Интересно, сколько эта магнитная лента пролежала к вопросу о бекапах на lto , Андрей (??), 14:59 , 10-Янв-26 (389)
Интересно, сколько эта магнитная лента пролежала... к вопросу о бекапах на lto ))
- Мало делать бэкапы - надо еще и ответственно их хранить , Аноним (41), 16:13 , 10-Янв-26 (390) +1
Мало делать бэкапы - надо еще и ответственно их хранить.
- Для своего времени была топ, сейчас как и её производные Linux BSD устаревшая к, Аноним (420), 21:03 , 10-Янв-26 (420)
Для своего времени была топ, сейчас как и её производные(Linux/BSD) устаревшая концепция монолитного ядра
- Господа, кто пишет на современном Си не MISRA и не Реалтайм, а что-то системное, Мимо проскочил (?), 21:26 , 10-Янв-26 (425)
Господа, кто пишет на современном Си (не MISRA и не Реалтайм, а что-то системное), считается ли нормальным использовать goto, как в коде сабжа, без спагетти? И если нет, чем заменяется?

- Неважно системное или не системное стараемся писать хороший структурный код Лич, Аноним (-), 22:05 , 10-Янв-26 (431)
Неважно системное или не системное стараемся писать хороший структурный код. Лично мне никогда goto не понадобилось. Незнаю, может со мной что-то не так (шутка). Как только появится надобность выйти из глубоких вложений при помощи goto, я обязательно тебе отпишусь.А если серъёзно, просто пиши хорошо читаемый код с копилефт лицензией. И будет тебе счатье.
- Считается Нормальный способ обработки ошибок Просто функции не должны быть на , Аноним (432), 22:06 , 10-Янв-26 (432) +1
>считается ли нормальным использовать gotoСчитается. Нормальный способ обработки ошибок. Просто функции не должны быть на 20 экранов.
- Goto иногда полезен, хоть и очень редко, например, в выходе из множества циклов , Аноним (70), 23:45 , 10-Янв-26 (436)
Goto иногда полезен, хоть и очень редко, например, в выходе из множества циклов.
- goto ничем не заменяется, удобно юзать в обработке ошибок, в остальных случаях в, Аноним83 (?), 23:46 , 10-Янв-26 (437)
goto ничем не заменяется, удобно юзать в обработке ошибок, в остальных случаях встречается крайне редко.
- Подозреваю, в коде сабжа goto используется потому что не просто переписали на C,, Аноним (153), 11:39 , 11-Янв-26 (473)
Подозреваю, в коде сабжа goto используется потому что не просто переписали на C, а перевели из асма напрямую, без перетряхивания архитектуры. Правильнее назвать наверно было бы конвертацией. Ну и мышление у людей тогда было асм-направленное.
- Да, ну и, собственно, все эти прыжки и ужимки середины-конца 90-х евнухс-евнухс, Аноним (432), 22:04 , 10-Янв-26 (430)
Да, ну и, собственно, все эти прыжки и ужимки середины-конца 90-х: евнухс-евнухс, "моя операционная система" и т.п. В UHG было все по делу, а какие-то преимущества евнуxс имел только перед Win9x.
- ппц они там превозмогали, в тамошнем ассемблере mov cryptp,r11 movb r1 ,r0 b, Аноним (439), 23:55 , 10-Янв-26 (439)
ппц они там превозмогали, в тамошнем ассемблере. mov cryptp,r1 1: movb (r1)+,r0 beq 1f jsr pc,pput br 1b 1: mov $':,r0 jsr pc,pput Метки огонь, следи теперь, если нужно вставить ещё одну между ними, исправить все 1f или 1b на нужные 2b и 2f и так далее. С таким ассемблером они не могли не придумать Си. И да, из кода passwd.s непонятно, какая максимальная длина пароля могла храниться в passwd. А в login.c похоже проверялось только первые 8 символов пароля. 
- Ты ничего не понимаешь в колбасных обрезках Такие метки очень удобны Они испол, Аноним (478), 16:47 , 11-Янв-26 (479)
Ты ничего не понимаешь в колбасных обрезках. Такие метки очень удобны. Они используются на локальном уровне, для организации циклов и ветвлений, как правило они перед глазами полностью и место декларации и место (как правило одно место) использования. Вот как в процитированном куске.А насчёт "вставить ещё одну" -- это вряд ли. Это ассемблер а не C/C++ или спасибоже хруст. Если ты над асм кодом проводишь такие рефакторы, что у тебя метки поехали, то вероятно ты делаешь что-то не так, и твой код должен быть на высокоуровневом языке с ассемблерными вставками. А даже если твой подход уместен, то ты должен хорошо понимать что происходит, прежде чем что-то менять в асм коде, и выверять это строчка за строчкой, на фоне этого перенумерация меток оказывается полезной активностью, которая помогает держать фокус внимания на выверке кода, не срезая при этом углов так, как нейросети (белковые или кремниевые) любят делать.
- Там есть гораздо хуже ошибка badpw printf bad password file n ok setuid 0, Аноним (485), 00:18 , 12-Янв-26 (485)
Там есть гораздо хуже ошибка :)badpw: printf("bad password file\n"); ok: setuid(0); ...
- А что за window manager на скриншоте , Аноним (492), 10:22 , 12-Янв-26 (492)
А что за window manager на скриншоте?
- Удивительно что смогли достать оборудование и восстановить данные Я думаю что т, Феникс123 (?), 11:42 , 12-Янв-26 (496)
Удивительно что смогли достать оборудование и восстановить данные. Я думаю что текущие данные человечества, которые большей часть на жестких данных в ДЦ в случае кризиса восстановить будет нельзя. В этом смысле шумерские носители пережили где-то 5 тысяч лет, а греческие пергаменты времен например 2 тысячи лет назад утрачены. К сожалению, все наши котики, мемы, демативаторы пропадут навсегда.

- Опять римляне Пергамент в нормальных условиях пролежит Но его могут стереть и, Аноним (57), 12:50 , 12-Янв-26 (497)
> В этом смысле шумерские носители пережили > где-то 5 тысяч лет, а греческие пергаменты времен например 2 тысячи > лет назад утрачены. К сожалению, все наши котики, мемы, демативаторы пропадут > навсегда.Опять римляне? Пергамент в нормальных условиях пролежит. Но его могут "стереть" и переиспользовать.
- А надо ли это всё сохранять Важные знания никуда не денутся - останутся в виде , ProfessorNavigator (ok), 13:46 , 12-Янв-26 (498)
> Удивительно что смогли достать оборудование и восстановить данные. Я думаю что текущие > данные человечества, которые большей часть на жестких данных в ДЦ в > случае кризиса восстановить будет нельзя. В этом смысле шумерские носители пережили > где-то 5 тысяч лет, а греческие пергаменты времен например 2 тысячи > лет назад утрачены. К сожалению, все наши котики, мемы, демативаторы пропадут > навсегда.А надо ли это всё сохранять? Важные знания никуда не денутся - останутся в виде навыков и понимания устройства природы у будущих поколений. Если они будут. А остальное - да и пускай исчезает. Никто не помнит, что делали и как жили люди например 30 тысяч лет назад. Остались в основном обрывочные материальные следы в виде костей и прочей археологии. Что-то дошло в виде мифологии. Да, по этому можно восстановить определённые вещи, но далеко не полную картину. Главное в другом - благодаря тем людям существуем сегодняшние мы. И нас также забудут - если будет кому забывать. Это нормально. Наша задача не мемуары свои оставлять и прочее подобное, а сделать так, чтобы будущие поколения смогли жить, желательно - лучше нас.
|