forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.GOLDED

Ответ
 
Опции темы Опции просмотра
  #11  
Старый 07.02.2023, 09:02
Nil A
Guest
 
Сообщений: n/a
По умолчанию Как бы так голдед зарефакторить?

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  
Старый 07.02.2023, 09:32
Alexey Vissarionov
Guest
 
Сообщений: n/a
По умолчанию Как бы так голдед зарефакторить?

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  
Старый 07.02.2023, 09:52
Nil A
Guest
 
Сообщений: n/a
По умолчанию Как бы так голдед зарефакторить?

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  
Старый 07.02.2023, 10:42
Vladimir Fyodorov
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 07.02.2023, 11:23
Nil A
Guest
 
Сообщений: n/a
По умолчанию Как бы так голдед зарефакторить?

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  
Старый 07.02.2023, 12:22
Vladimir Fyodorov
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 07.02.2023, 21:32
Nil A
Guest
 
Сообщений: n/a
По умолчанию Как бы так голдед зарефакторить?

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
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 09:48. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot