Опубликованы корректирующие выпуски поддерживаемых веток почтового сервера Postfix 3.x - 3.10.7, 3.9.8, 3.8.14 и 3.7.19. В новых версиях устранена проблема со сборкой из исходного кода, возникающая в новых версиях дистрибутивов Linux, перешедших на набор компиляторов GCC 15, по умолчанию переведённого на использование стандарта С23...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64393
> Проблема в том, что в стандарте С23 определено новое зарезервированное ключевое слово "bool", которое сопоставлено с типом, имеющим размер 1 байт.Ну наконец-то. Пол века прошло...
> Так как связанное с поддержкой нового типа "bool" изменение охватывает много строк кода, решено не переносить его в стабильные веткиНорм так проблемы на этом поле.
>Пол века прошло...ещё через полвека догадаются на bool один бит потрптить )
для CISC процессоров вообще не имеет смысла и разницы нет, только в размере хранимого, но врядли у тебя миллионы булов по приложению
test reg,same_reg шустрее test reg,reg и test reg,imm, внезапно
Угу, и результат - поцфикс не собирается.Ну зато васянские лефтпады, ну никак не могущие прожить без ненужногоненужна - щасливы.
Думать головами прежде чем пихать в стандарты нужное необходимое и полезное (нет) - у современных тяпляперов не принято.
> Угу, и результат - поцфикс не собирается.Возможно умственно отсталым разработчикам похфикса не нужно было использовать общепринятое ключевое слово?
Сделали бы свой pBool.
ничего что стандарт языка на котором этот постфикс написан тридцать лет назад - не содержит подобных "ключевых слов"?Потому что те кто этот язык придумали - совершенно намеренно не пихали туда абстракций, не имеющих аппаратной поддержки процессором. Предоставив желающим сделать это самостоятельно если тем так хочется называть int - bool. (интересный конечно bool к которому можно добавить ну например... 42? От чего бы и не добавить к true - 42? При этом он останется bool. Ну а что поделать, нет же в процессоре никаких булей.)
А вот модные комитетные работнички - решили поулучшайкать в очередной раз для своих хеловротов.
> От чего бы и не добавить к true - 42?Конечно! Это же абсолютно логично добавлять к булевому типу, который прям по своему определению может иметь всего два значения, целое. А потом удивляться почему софтина работает не так как должна.
> А вот модные комитетные работнички - решили поулучшайкать в очередной
> раз для своих хеловротов.Ну конечно. Нельзя же исправлять то, что сами ДИДЫ выпрограммировали!
А то вдруг сломаешь обратную совместимость, которая делалась для систем, которые сдохли десятилетия назад.
> Конечно! Это же абсолютно логично добавлять к булевому типу,в процессоре НЕТ никаких "булевых типов". Есть jz, и ей ВСЕ РАВНО, 42 в регистре лежит или 41, и совершенно логично добавить к регистру что-нибудь. Он целочисленный. Булевых - не бывает.
Если тебе нужен нескучный йезычок который за тебя будет вытирать слюнки изобретая высокоуровневые абстракции - там уже вон предложили прекрасный algol60. Типы есть, а компиляторов нет. Потому что он вообще был предназначен для эталонного ненужно - "записи алгоритмов". Компиляторы потом написали, конечно, чего б студентам не практиковаться. А вот софта - не написали.
> Есть jz, и ей ВСЕ РАВНО, 42 в регистре лежит или 41Так весь смысл языка в том, чтобы в регистре не оказалось 42, а был напр. 0 или 1.
И нет абсолютно никакого логического объяснения ЗАЧЕМ может понабиться прибавлять 42 к булу.> algol60
> нескучный йезычокНе, это не algol60 нескучный йезычок, а си кусок ... переносимого асма, который был создан для ускоренного 6ыdлокодинга юникса на другие версии PDP.
Но как это часто бывает в этом мире, на нем могла писать даже бебезяни и он стал PHP своего времение, вытеснив нормальные языки. Потому что раньше надо было х-к,х-к и в прод, что сейчас. И мир расхребывает этот недоязык до сих пор.
> Так весь смысл языка в том, чтобы в регистре не оказалось 42, а был напр. 0 или 1.нет. Весь смысл языка Си, во всяком случае, его первоначальной разработки - чтобы не приходилось помнить что у тебя в регистре, что в памяти, и не забыть сохранить одно из второго.
Его задачей было упростить написание кода, а не усложнить в разы.
> И нет абсолютно никакого логического объяснения ЗАЧЕМ может понабиться прибавлять 42 к
> булу.ну раз тебе низачем - вот язык этого и не проверяет. Ты можешь конечно объявить typedef bool, а можешь просто назвать переменную bool_result, и никогда-никогда не прибавлять к ней 42.
Смысл примерно один и тот же.> Не, это не algol60 нескучный йезычок, а си кусок
в третий раз предлагаю подумать, если есть чем - почему на алголе не написано ровно вот нихрена из используемого тобой и вокруг тебя. И даже с компиляторами для хеловротов - полный швах.
Даже на паскале есть отдельные успехи (правда это не системный софт, и это очень специфический паскаль, с кучей низкоуровневых внепаскалевских доделок от которых Вирт бы на двадцать лет раньше окочурился если б увидел). А на нескучном очень-очень правильном - нихренашечки.
> Смысл примерно один и тот же.Смысла как раз нет.
> почему на алголе не написано ровно вот нихрена из используемого тобой и вокруг тебя.
Потому что
а) Pascal заменил алгол где смог.
б) 6ыdloкодеров на сишечке намного больше чем на других языках, как раз потому что можно взять и 6ыdloкодить.> правда это не системный софт
Первая версия GCC была написана на версии паскаля.
Classic Mac OS была написана на паскале, и наличие булевого типа им совсем не мешало.
>> Весь смысл языка Си, во всяком случае, его первоначальной разработки - чтобы не приходилось помнить что у тебя в регистре, что в памяти, и не забыть сохранить одно из второго.Ух ты, а создатели С об этом знают? 😂 А то вот тут в сатье Денис Ричи рассказывает, что Си создавался, чтобы решить проблемы своего еще более дубового предка - B (в котором был только int и char):
http://csapp.cs.cmu.edu/3e/docs/chistory.html
>> Не, это не algol60 нескучный йезычок, а си кусок
> в третий раз предлагаю подумать, если есть чем - почему на алголе не написаноТы лучше сам подумай, почему C и его предшественник B вдозновлялись Алголом 68 (см. статю выше), но при этом тип bool не позаимствовали.
> Ты лучше сам подумай, почему C и его предшественник B вдозновлялись Алголом 68потому что других более-менее не привязанных к специфическим задачам, как фортран - не было.
> (см. статю выше), но при этом тип bool не позаимствовали.
а про это я тебе и в третий раз отвечу - потому что это в отличие от бесполезного алгола был язык - системного программирования. Максимально приближенный к железу, просто избавляющей от необходимости вручную отслеживать что в каком регистре лежало и не забыли ли мы это сохранить. Нет в аппаратуре никакого bool - вот и в языке его нет.
И строк с встроенной длинной не было - поэтому в языке они zero-terminated.А на паскале никакой ос, почему-то не получилось. Странно, ведь прекрасный же ж язычок?
И компилятор был (по недоразумению, правда, как и для алгола)
> Нет в аппаратуре никакого bool - вот и в языке его нет.Ага, но там есть железный "нуль" и "единица" если че :)
> И мир расхребывает этот недоязык до сих пор.все ЯП - недоязыки ибо наследуют мракобесие от предков. А предком предков мракобесия - математическая нотация, которая такая же мракобесная со времен кризиса оснований и расцвета формализма.
y := f(x); что бл*ть это за запись? О чем она говорит? Сама по себе - ни о чем, ибо надо где-то вверху искать определения (типы, ху*пы и т.д. ересь), вопрос зачем мне эта "акробатика", бегать вверх вниз по тексту - тексту КАРЛ? Всюду используют идентификаторы для переменных, а тип иди ищи вверху где-то, зачем? Нельзя проще - var_name_type - mynumber_int имя и тип переменной всегда явный, зачем заниматься акробатикой?
пс: короче, бл*вать хочется от всех этих ЯП с их мракобесным неявным, не однозначным синтаксисом.
> Нельзя проще - var_name_type - mynumber_int имя и тип переменной всегда явный, зачем заниматься акробатикой?Думаешь - самый умный?
Но нет - было такое уже... Perl к примеру :) В ранних BASIC-ах тоже ...
А теперь оглянись вокруг ... как то - народу _такое_ не зашло :-\
:)
> Но нет - было такое уже... Perl к примеруточно? //perldoc.perl.org/perldata#Identifier-parsing
Ну Perl же всё же - там немного не так как аффтЫрь выше хотел но идея - та же :)
> но идея - та же :)Ну вот идея в том, что не делить переменные на понятия объявлений (декларирование), инициализация и использование, а сразу использование, где var_name_type это требование синтаксиса переменной, var_varname_int и использовать его всюду. К примеру:
-- var_varname_type := function_function-name_return-type(args);
var_y_int := function_f_int(var_x_int);
Читаешь и сразу ясно, что тут происходит (с точки зрения типов), а не делаешь сальтуху вверх или в какие-то "заголовочные" файлы.
> Не, это не algol60 нескучный йезычок, а си кусок ... переносимого асма, который был создан для ускоренного 6ыdлокодинга юниксаДа забей. Это персонаж даже не в курсе, что С и его предшественник B делались с оглядкой на Algol 68.
и делалось все это лишь с одной целью - нужен был "амерский ЯП", как это так, такая "великая нация" использует европеоидный ЯП. Отсюда и такой дизайн С - х*як, х*як и в продакшен - "типовый кастрат".
> и делалось все это лишь с одной целью - нужен был "амерский ЯП",Нет, все гораздо проще: ребята по-быстрому сделали на коленке свой огрызочный инструмент сугубо под свои нужды (как замена языка В для портирования Юникса). Никакой bool и безопасность типов им даром была не нужна. Подробности тут: http://csapp.cs.cmu.edu/3e/docs/chistory.html
А местные бедолаги со Стокгольмским синдромом нюхают копиум, рассказывая, какой гениальный дизайн диды сделали. 🤦
> Нет, все гораздо прощеа кто сказал, что по вашей ссылке мы должны увидеть приказ анб? Исторически все ЯП создавались в Европе, а надо было переломить эту тенденцию.
> Никакой bool и безопасность типов им даром была не нужна.
А пишут ведь "Derived from the typeless language BCPL, it evolved a type structure;", зачем им вообще типы сдались? А кастрированной системой типов видать получилась из-за того, что не усвоили материал теории типов?
> А местные бедолаги со Стокгольмским синдромом нюхают копиум, рассказывая, какой гениальный дизайн диды сделали.
ЯП последнее, чтобы я критиковал бы, я начал бы с самой теории информации, алгоритмов, формальных систем, архитектур аппаратных, а потом только ЯП. С прадедов еще надо спрашивать.
> Исторически все ЯП создавались в Европе, а надо было переломить эту тенденцию.Ы... FORTRAN, COBOL оне что - ывропейские?!?! 8-о
Чем же вас таких делают?!! ;-)
Это уж _потом_ европа включилась, они тогда ещё пытались сами в ИТ...
> Ы... FORTRAN, COBOLibm, и бабушка грейс - ты эти языки в глаза видел? Я нет, ибо не для масс. Может в универах преподавали? Открой википедию и посмотри, там таблица есть когда первый стандарт Fortran-a появился, они даже имя сменили :)
Ну сделали они огрызок по-быстрому, но получился то гениальный дизайн в итоге. Одно другому не мешает.А языки, которые вдумчиво проектировали, на них ничего не написано - всякие zig, hare, rust и тд
> Если тебе нужен нескучный йезычок который за тебя будет вытирать слюнки изобретая высокоуровневые абстракцииСмешно читать это бред в свете того, что сишочники городили свой bool примерно с момента появления С в массах.
> algol60 [...] вообще был предназначен для эталонного ненужно - "записи алгоритмов".
А С знаешь для чего был предназначен? Чтобы по-быстрому переписать Юникс со своего предшественника В, в котром вообше не было никаких типов кроме int и char. Поэтому по традиции "тяп-ляп - и в продакшн" на коленке и состряпали пародию на язык. Добвлять bool и какую-то там безопасность типов у ребят не было времени, лол.
> А С знаешь для чего был предназначен? Чтобы по-быстрому переписать Юникс со
> своего предшественника В, в котром вообше не было никаких типов кромеюникс никогда не был написан на B.
Он был написан на ассемблере мертвой уже в то время архитектуры, которая не тянула единственную прикладную программу, ради которой его и писали.> int и char. Поэтому по традиции "тяп-ляп - и в продакшн"
> на коленке и состряпали пародию на язык. Добвлять bool и какую-то
> там безопасность типов у ребят не было времени, лол.поэтому они написали нам юникс и всю его экосистему, сделавшую его пригодным не для демонстрации бесполезных концепций, а для работы.
А изобретатели bool'ов - вот, сломали работающий софт, и на этом их успехи заканчиваются.
> нужное необходимое и полезное (нет)Тут позорище как раз в том, что в этом так называемом "стандарте" bool появился только с С23. С другой стороны, что еще ожидать от переносимого ассемблера, где каждый проект вынужден городить свои bool.
> Тут позорище как раз в том, что в этом так называемом "стандарте"
> bool появился только с С23. С другой стороны, что еще ожидать
> от переносимого ассемблера, где каждый проект вынужден городить свои bool.именно. Потому что такому языку этот бул нахрен был не нужен. В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42. Это просто синтаксический сахарок - который каждый мог реализовать для себя (и даже реализовали общепринятым образом... спустя лет десять после того как уже БЫЛ написан postfix)
А если в кои-то веки кто-то придумает такой процессор в котором есть аппаратный bool - вероятно, придется придумать к нему какой-то другой язык низкоуровнего программирования. Потому что там еще много чего не будет иметь подходящих механизмов в языке.
> В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42.Так это недостаток языка, а не его достоинство.
> А если в кои-то веки кто-то придумает такой процессор в котором есть аппаратный bool
А чё тогда прям в машинных кодах не писать? Или на макроасме?
Языки существуют именно для того, чтобы делать валидные абстракции над вещами, которые напр. не поддерживает проц.
>> В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42.
> Так это недостаток языка, а не его достоинство.Это особенность. Если она не устраивает - ты выбрал не только не тот язык, но и не ту сферу деятельности. Попробуй себя в чем-то еще, может в тебе дремлет художник или повар.
> А чё тогда прям в машинных кодах не писать? Или на макроасме?
А ты как думаешь? При том что в машинных кодах перестали писать из-за упаковки байтиков и использования hex вместо octal, а на ассемблере пишут по сей день весьма немало кода.
> Языки существуют именно для того, чтобы делать валидные абстракции над вещами, которые
> напр. не поддерживает проц.Си - ни разу не был для этого предназначен.
Это тебе вон в пролог. Где программа вообще может только либо вернуть true, либо вернуть false. А Hello, world - это побочный эффект. Удобно на таком почтовый сервер, наверное, писать?
>> Языки существуют именно для того, чтобы делать валидные абстракции над вещами, которые напр. не поддерживает проц.
> Си - ни разу не был для этого предназначен.Да что ты! А Денис Ричи, глупый, об этом не знает и пишет:
“BCPL, B, and C all fit firmly in the traditional procedural family typified by Fortran and Algol 60. [...] their abstractions lie at a sufficiently high level that, with care, portability between machines can be achieved."
http://csapp.cs.cmu.edu/3e/docs/chistory.html
>>> В нем все равно нет механизма проверки что ты не пытаешься добавить к нему 42.
>> Так это недостаток языка, а не его достоинство.
> Это особенность. Если она не устраивает - ты выбрал не только не тот языкЭто именно что недостаток - последствие дизайна на коленке. И, внезапно, те, кого это не устраивало, полвека велосипедили свой bool (сперва ручками, потом через stdbool.h), пока наконец этот недостаток не устранили на уровне самого языка.
>Да что ты! А Денис Ричи, глупый, об этом не знает и пишет:Жирный вброс. Вот тоько приёмнчик не сработал. Во времена Ритчи абстрации ложились поверх голого железа, внизу только ассемблер или сразу машинные коды. Сегодняшние абстрации это не то о чём говорит Д. Ритчи. если бы ритчи заглянул внутрь компилятора Rust он бы ужаснулся.
>И, внезапно, те, кого это не устраивало, полвека велосипедили свой bool
В Си проблем с булевими типами никогда не было. В самом языке было закреплено, что символ 1 - истина, символ 0 - ложь. И оказывалось, что никакие булевые типы не нужны.
> В самом языке было закреплено, что символ 1 - истина, символ 0 - ложь.Вот это экспертиза! А что тогда значат символы 2, 3, -1 и т.п.? 😂
> Во времена Ритчи абстрации ложились поверх голого железа, внизу только ассемблер или сразу машинные коды.Ага, и при этом в Алголе (которым вдохновлен С и В) был boolean. Удивительно, да?
> В самом языке было закреплено, что символ 1 - истина, символ 0 - ложь. И оказывалось, что никакие булевые типы не нужны.только этот 1 или 0 в регистрах разной битности - разные, ну попробуйте сравнить такие булеаны с разной битностью в том же асм той или иной аппаратной архитектуре.
>только этот 1 или 0 в регистрах разной битностиЧувак ты о чём? Символ 1 и 0 в UTF-8 кодируются одним байтом. Мне про регистры ничего знать не требуется.
>попробуйте сравнить такие булеаны с разной битностью в том же асм той или иной аппаратной архитектуре.
Вообще без разницы в какой апаратной платформе, и с каким количеством битов эти типы представлены. При портировании мы переносим исходники на целевую машину, и там компилируем. Единственное требование это наличие сишных библиотек и самого компилятора под конкретную архитектуру.
> Чувак ты о чём? Символ 1 и 0 в UTF-8 кодируются одним байтом.чувак, я о том, что в какой регистр ты будешь класть этот однобайтный литерал? Ваш ЦПУ регистры разной длины (битности) сравнивать умеет?
> Мне про регистры ничего знать не требуется.
Ну а в байте у вас сколько битов? Тоже не важно?
> Вообще без разницы в какой апаратной платформе, и с каким количеством битов эти типы представлены.
для ЦПУ и компилятору - не без разницы, ваш этот булеан длиной с размерность регистра если че.
> В Си проблем с булевими типами никогда не было. В самом языке
> было закреплено, что символ 1 - истина, символ 0 - ложь.не ,не было.
В языке было закреплено то что и осталось до сих пор - 0 ложь, любое отличное от нуля значение - истина. Причем это значение НЕ ОБЯЗАНО было получаться именно из операции сравнения. Потому что так работает процессор - по сей день. jz/jnz ничего с нулем (и тем более с единицей) не сравнивают. Состояние zero bit - _побочный_ результат предыдущей операции.
zero terminated strings - ровно оттуда же. _сейчас_ иногда стало можно оперировать строкой с преварительно посчитанной длинной, да и то - то эта длина слишком коротко ограничена, то не везде применимо, то - операция с ней дороже получается чем без проверки.
Все по той же самой причине. Мы просто перекладываем байтики (или сравниваем с чем-то что ищем) - никакого явного сравнения с нулем у нас нет. zero bit взводится сам, как только мы на этот ноль наткнулись.
> И оказывалось, что никакие булевые типы не нужны.
это синтаксический сахарок. Предполагается что компилятор вовремя даст по рукам, если к такому типу прибавят 42. Зачем это делать - незнааааааю.
> Состояние zero bit - _побочный_ результат предыдущей операции.ну какой же этой операции? cmp (sub)?
> никакого явного сравнения с нулем у нас нет
эт как, я что не могу что-либо сравнить с нулем? А нуль то у меня может быть разных сортов инта если че.
> это синтаксический сахарок. Предполагается что компилятор вовремя даст по рукам, если к такому типу прибавят 42. Зачем это делать - незнааааааю.
Это не сахарок, это подтип если ваш булеан из инта составлен, а почему компилятор должен ругаться в таком случае? он тупо НЕЯВНО приведет подтип булеана к инту и сложит, и вернет тип инт. Магия? - нет, МРАКОБЕСИЕ!!! Это банальное незнание для чего вообще необходима система типов.
Вот это поворот.
> Потому что такому языку этот бул нахрен был не нужен.Настолько не нужен, что люди на протяжении полувека ю сперва лепили свой bool, потом притянули stdbool.h, а потом наконец-то ввели его в сам язык.
Если быть точным, то с 99 был тип _Bool, который так назвали, чтоб не пересекаться с bool определенным много у кого.
А тут решили _Bool - deprecated, а должен быть новый тип - bool.
Ну и длину ему определили заодно. Но не такую как у авторов Postfix была - бывает.
> Угу, и результат - поцфикс не собирается.доа? и как же я его собрал? наверное, у меня случайно получилось, мы же по тебе судим?
В книжке BLFS 12.4 инструкция по сборке Postfix с поддержкой GCC 15 еще с сентября прописана.
LFS-ники молодцы, горжусь ими. Сам периодически собираю LFS. Свой Линукс - это круто.
Как там сейчас собрать с раздельным /usr ?
>в стандарте С23 определено новое зарезервированное ключевое слово "bool", которое сопоставлено с типом, имеющим размер 1 байтСие есть кpетинизм
Сие есть стандарт. Ты или поддерживаешь код в соответствии со стандартами, или нет. Если не поддерживаешь, объективно твой код перестает следовать стандарту.Зачем существуют стандарты, надеюсь, объяснять не нужно.
Нет, прошу обьясните нам!
он не знает, что бул еще может быть 8-ми байтовым :)
Чтобы "умные" дядьки из корпов, имён которых никто не знает, дерьмократическим путём решали, что правильно, а что нет.
При сборке нельзя указать стандарт? Нужно обязательно менять код под самый новый gcc?
А последнюю строку прочитать не судьба?
Странно, что ни в postfix ни в gcc нет что-то типа пространства имен, что бы исключить пресечения.
Как вы себе это представляете?
Префиксы, например как в GLib: gchar, gint, gsize, gboolean.
Язык созданный для написания хелловордов, другого пространства имён там нет.
>Язык созданный для написания хелловордов, другого пространства имён там нет.Чёт ты херню несёшь.
Префиксы - понятно, указал, но можно ещё через struct сделать, если уж шибко надо.
> можно ещё через struct сделатьЭто как?
>> можно ещё через struct сделать
> Это как?Простейший способ, не лучший, описан https://blog.tal.bi/posts/namespaces-in-c/
Ещё есть Cello. https://libcello.org/home
Покажи как?
>Странно, что ни в postfix ни в gcc нет что-то типа пространства именСкажите, а пространства имен в пространствах имен должны быть? А то нам слишком просто трассировать проблемы и выявлять закладки.
> Скажите, а пространства имен в пространствах имен должны быть?Да, должны. Существуют в C++ с самого момента появления в нем пространства имен.
Gсс реализует то, что есть в языке, А в C пространств имён отродясь нет. using namespace это в C++.
> В коде Postfix определён собственный тип "bool",нафига? <stdbool.h> с какого года существует? 98-99? поотбивать руки
> нафига? <stdbool.h> с какого года существует? 98-99?Ну как нафига? Уважающие себя сишочники всегда писали код так, чтобы он собирался на воображаемых некросистемах системах с воображаемыми некрокомпиляторми, поддерживающими лишь C89. Ну а потом через десятки лет уже другим людям приходит понимание, что страдать такой глупостью больше нецелесообразно - и приходится выпиливать все эти бесполезные костыли.
ifdef-ам в школе не учили? 25 лет назад можно было добавить
> ifdef-ам в школе не учили?Ты спросил, зачем они добавляли свой bool - я тебе ответил. Вопросы про ifdef-ы задавай уже авторам кода.
ты не ответил, ты написал несвязанный набор слов
> несвязанный набор словОк, в следующий раз буду знать, что текст длиной больше одного твита ты воспринимать не способен.
> ты не ответил, ты написал несвязанный набор словЕсли то был "несвязный набор слов", то зачем ты на него отвечал "ifdef-ам в школе не учили"?
переводить стрелки - национальная российская забаваещё и русского языка не понимаем, одни проблемы с тобой
> Так как связанное с поддержкой нового типа "bool" изменение охватывает много строк кода, решено не переносить его в стабильные ветки, а добавить при вызове gcc и clang флаг компиляции "-std=gnu17" для использования стандарта C17.Они конечно авторы и сами вправе решать, но ума не приложу, почему они просто не переименовали автозаменой bool в boolean.
Потому что это (bool) в стандарте языка, и стало быть иное - костыль.Хотя нах и пох правы на все 146% - эпические еланы это в язык ввели...
На Си аппликейшены только долбонавты пишут, он для системы, для лютого байтодрочЪа "по локти в железе!"(С) и вот это вот всё ... А в железе - ни у одного проца нет бит-wide boolean, только как слово или (реже) - байт.Ну и напуркуа тогда?!?! ИдиЁты ....
> А в железе - ни у одного проца нет бит-wide boolean, только как слово или (реже) - байт.подробней с этого места
Смешно.
В fortran добавили LOGICAL еще в 1962 году.
В ALGOL 60 есть BOOLEAN! В Pascal есть Boolean. В куче других языков древнее сишки есть логический тип.Но dыpяшечники они особенные...
В убожестве под названием сишечка stdbool появился только в С99 и не как тип, а как макросовый костыль. А нормальный тип пришлось ждать аж до С23.
> Смешно.
> В fortran добавили LOGICAL еще в 1962 году.
> В ALGOL 60 есть BOOLEAN! В Pascal есть Boolean. В куче другихи сколько операционных систем написано на этих языках? Правильно - ноль.
> и сколько операционных систем написано на этих языках?Ну-ну, а в какой момент посфигс стал ОС?
> Правильно - ноль.
Не правильно. CHAOS OS, PRIMOS, Apollo Domain OS.
>> и сколько операционных систем написано на этих языках?
> Ну-ну, а в какой момент посфигс стал ОС?окей, сколько mta, используемых не в виртуальной реальности, а чью-то почту реально принимающих? Ой, опять ноль?
>> Правильно - ноль.
> Не правильно. CHAOS OS, PRIMOS, Apollo Domain OS.спасибо чатугпт за список эталонного ненужно. Кстати, почему ты еще не поставил себе все три и не выкинул немодные написанные на си? Потому что они - мертвенькими родились, не?
>>> и сколько операционных систем написано на этих языках? Правильно - ноль.
>> Не правильно. CHAOS OS, PRIMOS, Apollo Domain OS.
> список эталонного ненужно.А ты как всегда держишь марку!
- Написано ноль ОС.
- Нет, вот список.
- Это неправильные ОС.
> Не правильно. CHAOS OS, PRIMOS, Apollo Domain OS.Это что ещё за редоксы такие?
>> В fortran добавили LOGICAL еще в 1962 году.
>> В ALGOL 60 есть BOOLEAN! В Pascal есть Boolean. В куче других
> и сколько операционных систем написано на этих языках? Правильно - нольЧел, речь шла о наличие типа boolean в языке К чему ты вообще спрашиваешь, сколько на них было написано ОС? Хотел намекнуть, что отсутсвие bool как-то в этом помогает, или что?
Не в языке! Вернее - непросто в каком то там языке!
А в Языке __Системного__ Программирования! По-локти в железе!(С)А postfix почему на Си написан ... ну всё остальное _тогда_ было ещё волшебнее чем Си :)
Сетевые сервисы которые пишут _сейчас_ - на Си пишут редко, и (тля!) - это правильно.
> А в Языке __Системного__ Программирования! По-локти в железе!(С)Ну всё правильно, нету в железе никакого boolean - все регистры минимум 16 бит. Что не так то?
НЕТ! :)Минимум - 8 бит.
А максимум - не определён. Практически есть 64 ну и спец архитектуры есть на 128 и бают весёлые деффки что - 256!
И на всём этом Си должен работать.
А теперь - думайте! :)
Ну ты ж сам вот тут написал - https://www.opennet.dev/openforum/vsluhforumID3/138582.html#89
> и сколько операционных систем написано на этих языках? Правильно - ноль.а сколько "Война и мир" написано на китайском? Правильно - ноль.
> В убожестве под названием сишечкапотому-что это "типовый кастрат"!
Лучший MTA стал еще лучше - теперь собирается и с gcc15