#11
|
|||
|
|||
Как бы так голдед зарефакторить?
Nil A написал(а) к Alexey Vissarionov в Feb 23 07:27:14 по местному времени:
Нello, Alexey! Tuesday February 07 2023 06:09, from Alexey Vissarionov -> Nil A: AV> Выделиться-то он, может быть, и выделится, но при попытке работать с AV> этим огромным блоком в какой-то момент прилетит SIGSEGV. Дядь Гремлин, косячишь второй раз при мне. Первый раз был, когда утверждал, что на линуксовый epoll(2) можно повесить файловые операции, и ловить готовность также, как и на сокетах, но я тебе тогда указал на строчки в ядре, где тип дескриптора проверяется. Но тут то, в линуксах эти маллоки, если много просишь, то они уходят в mmap(2), и тот тебе даст без вопросов, если такой размер одним куском можно разместить в адресном пространстве процесса, привет все эти лимиты, хотя Виталий утверждает, что маллок проверит размер на ram+swap, но мне сейчас лень в либси лезть. А вот дальше с mmap начнутся чудеса, когда ядро не сможет тебе странички подтянуть, потому что вся память кончилась, то тут будет SIGBUS, и не как не SIGSEGV. Я уже сообщением ранее писал про SIGBUS. Но реально, ты будешь закилян oom killer быстрее, чем словишь SIGBUS, хотя есть варианты. NA>> но мне пофиг, ты просто не говорил ещё с этими, которые на NA>> ВаткомСи сидят, у них там чудеса вообще. AV> Вот как раз поддержку DOS можно выкидывать совершенно спокойно. По мои данным, под DOS собирают DJGPP, который можно найти современный, даже уровня std=c++14. А вот Watcom C/C++ собирают под OS/2, о чём я немного общался с Andrew Clarke <3:633/267>. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#12
|
|||
|
|||
Как бы так голдед зарефакторить?
Alexey Vissarionov написал(а) к Nil A в Feb 23 08:08:08 по местному времени:
Доброго времени суток, Nil! 07 Feb 2023 07:27:14, ты -> мне: AV>> Выделиться-то он, может быть, и выделится, но при попытке работать AV>> с этим огромным блоком в какой-то момент прилетит SIGSEGV. NA> Дядь Гремлин, косячишь второй раз при мне. Да мне, наверное, уже пора на какую-нибудь кнопку в эхотаге (вот, кстати, и антиоффтопик) повесить макрос для вставки фразы наподобие "пишу по памяти, проверять некогда"... NA> Первый раз был, когда утверждал, что на линуксовый epoll(2) можно NA> повесить файловые операции, и ловить готовность также, как и на NA> сокетах, но я тебе тогда указал на строчки в ядре, где тип NA> дескриптора проверяется. Проверяется, и пусть проверяется... Да, смысла в epoll() для файлов не очень много, но теоретически ничего не мешало: дескрипторы - они и есть дескрипторы. NA> Но тут то, в линуксах эти маллоки, если много просишь, то они уходят NA> в mmap(2), Ну да - щас почти все через анонимный mmap() выделяется. NA> и тот тебе даст без вопросов, если такой размер одним куском можно NA> разместить в адресном пространстве процесса, привет все эти лимиты, На 64-битных системах с околоединичной вероятностью таки можно. Жалко только, что адресное пространство - это не реально доступная физическая память :-) NA> хотя Виталий утверждает, что маллок проверит размер на ram+swap, но NA> мне сейчас лень в либси лезть. А уж мне-то как лень... NA> А вот дальше с mmap начнутся чудеса, когда ядро не сможет тебе NA> странички подтянуть, потому что вся память кончилась, то тут будет NA> SIGBUS, и не как не SIGSEGV. Если не сможет подтянуть - SIGBUS. Если полезть по указателю в дальний космос - соответственно, SIGSEGV. NA> Я уже сообщением ранее писал про SIGBUS. Но реально, ты будешь закилян NA> oom killer быстрее, чем словишь SIGBUS, хотя есть варианты. На практике - да. Причем не абы каким, а из memory cgroup. NA>>> но мне пофиг, ты просто не говорил ещё с этими, которые на NA>>> ВаткомСи сидят, у них там чудеса вообще. AV>> Вот как раз поддержку DOS можно выкидывать совершенно спокойно. NA> По мои данным, под DOS собирают DJGPP, который можно найти NA> современный, даже уровня std=c++14. А вот Watcom C/C++ собирают NA> под OS/2, о чём я немного общался с Andrew Clarke <3:633/267>. В любом случае эти системы являются если и не маргинальными, то как минимум экзотическими, а следовательно и сборки под них вторичны. Как и архитектуры, отличные от x86_64 и aarch64. -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... GPG: 8832FE9FA791F7968AC96E4E909DAC45EF3B1FA8 @ hkp://keys.gnupg.net --- /bin/vi |
#13
|
|||
|
|||
Как бы так голдед зарефакторить?
Nil A написал(а) к Alexey Vissarionov в Feb 23 08:33:44 по местному времени:
Нello, Alexey! Tuesday February 07 2023 08:08, from Alexey Vissarionov -> Nil A: AV> Да, смысла в epoll() для файлов не очень много, но теоретически ничего AV> не мешало: дескрипторы - они и есть дескрипторы. С точки зрения внешнего API, возможно, им ничто не мешало повесить и сокеты, и файлы на epoll(), но внутри там это две совершенно разные подсистемы. В файлах не возможно вообще такое, что делаешь write(10 байт), а возвращается только 5 записано, слишком много переписывать надо. Фейсбуки несколько лет назад влили io_uring фичу в кернел, что сделало возможным делать асинхронные файловые операции, без создания пула-тредов для операций, или асинхронщины на сигналах, которую нельзя использовать практически. AV> На 64-битных системах с околоединичной вероятностью таки можно. Жалко AV> только, что адресное пространство - это не реально доступная AV> физическая память :-) Проверять, вернул ли malloc() NULL на x86_64 довольно бестолково :-) AV> Если не сможет подтянуть - SIGBUS. Если полезть по указателю в дальний AV> космос - соответственно, SIGSEGV. Всё проще, если адрес по которому обращаются не смапирован в процесс, то SIGSEGV, а если адрес валидный, но котовасия с подтягивании странички, то SIGBUS. Жирный маллок уйдёт в mmap, и там всё валидно, с точки зрения адресов как раз. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#14
|
|||
|
|||
Re: Как бы так голдед зарефакторить?
Vladimir Fyodorov написал(а) к Nil A в Feb 23 09:29:47 по местному времени:
Разнообразно приветствую тебя, Nil! 07 Февраля 2023, Nil A писАл к Vitaliy Aksyonov следующее: NA> Тыж не программист на зряплате, забыл? Яб позвонил щас Одинну, У тебя телефон на тот свет звонить умеет? Соренсен умер несколько лет назад (инфа от mark lewis, 1:3634/12). Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр. ... Не так страшен электрик, как его электричка --- GoldED+/OSX 1.1.5-b20220504 |
#15
|
|||
|
|||
Как бы так голдед зарефакторить?
Nil A написал(а) к Vladimir Fyodorov в Feb 23 10:10:18 по местному времени:
Нello, Vladimir! Tuesday February 07 2023 09:29, from Vladimir Fyodorov -> Nil A: VF> Соренсен умер несколько лет назад (инфа от mark lewis, 1:3634/12). Печалька. Как-то без анонсов прошло. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#16
|
|||
|
|||
Re: Как бы так голдед зарефакторить?
Vladimir Fyodorov написал(а) к Nil A в Feb 23 11:01:16 по местному времени:
Разнообразно приветствую тебя, Nil! 07 Февраля 2023, Nil A писАл к Vladimir Fyodorov следующее: VF>> Соренсен умер несколько лет назад (инфа от mark lewis, 1:3634/12). NA> Печалька. Как-то без анонсов прошло. Я и сам узнал это случайно пару лет назад. Если где своевременно в Фидо про это и писали, то мне на глаза не попалось. Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр. ... Вступайте в секту атеистов седьмого дня! --- GoldED+/OSX 1.1.5-b20220504 |
#17
|
|||
|
|||
Как бы так голдед зарефакторить?
Nil A написал(а) к Vitaliy Aksyonov в Feb 23 20:22:40 по местному времени:
Нello, Vitaliy! Monday February 06 2023 19:12, from Vitaliy Aksyonov -> Nil A: VA> Ну вот. Поэтому лучше небольшие кусочки переделывать. Например, взять VA> один класс переделать или либу. Потом дальше. Да не напрягайся сам, составь просто грамотный запрос к ChatGPT, ну и потом ещё пару наводящих уточнений, и тебе перепишет половину голдеда эта штука. Там вообще можно скопипастить код и попросить переписать на какой-то другой язык, или попросить на C+11 переделать хотя бы. Best Regards, Nil --- GoldED+/LNX 1.1.5 |