Забавные новости 0й-Ti :)

Тема в разделе "WASM.HEAP", создана пользователем UbIvItS, 18 июн 2018.

Статус темы:
Закрыта.
  1. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    На практике просто где-то вылетает рандомный эксепшн с рандомной причиной, и мы падаем. Не обязательно даже там, где случилась ошибка (например, где-то испортился битик, а через 100500 инструкций из-за него мы обратились по мусорному адресу).
    Процессор даже сам умеет детектить некоторые аппаратные проблемы, кидая #MC (Machine Check).
    Но в любом случае, со стороны софта ты никак эти проблемы нивелировать не сможешь.
     
  2. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    Переписать уефи можно, а пережить мусорный адрес нет? Я не думаю, что при желании, спец системы проектируются так же.
    А вот с ошибками, причина которых выше по стеку вызовов, ну если это не стек планировщика задач ядра, то, опять же, просто архитектурить надо иначе. В конце концов, пример с авто, заглох двигатель, но есть же возможность отжав сцепления еще раз повернуть ключ. Если архитектить по другому, можно придумать способ. Общая идея, что при стрессе должна происходить некоторая деградация, которая затем подхватывает прикопанный стэйт и вновь развивается до точки падения, ожидая, что будет иной контекст к времени выходу на позицию, а значит и шансы довычислять дальше.

    Это не то как есть, и если вы уверены что я в бреду - это нормально.
     
  3. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Ты же не знаешь, почему он мусорный - из-за ошибки в процессоре или из-за ошибки в коде. Он просто невалидный, и нет возможности узнать, какой там должен быть, ведь нет никакой избыточной информации, чтобы восстановить правильный.
    А переписать уефи - это ты про что?
    Нет даже гарантии, что у тебя вообще будет стек. Вылетел первый эксепшн, начали его обрабатывать - и вылетел второй.
    Да, можно периодически скидывать состояние на диск и, если что-то упало, откатываться на эти чекпоинты, но это больше про сохранность данных, чем про устойчивость к аппаратным ошибкам: всё равно на сломанном процессоре где-то упадёт - может даже в ядре, повесив всю систему.
     
  4. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    HoShiMin, если у тебя микро ядро гипервизора, то даже если упадет ядро оси, не говоря уже о приложении - не страшно, можно и перезапустить. Про сохранение данных, в лиспах особой разницы нет между данными и кодом. В си и расте такой фокус не прокатит. Поясню примером. Clojure.

    чтение из файла
    (def code (slurp path-to-file))
    а там макрос для редукции АСТ, что-то типа такого
    (defmacro infix-1 [expr]
    (println expr)
    (if (list? expr)
    (let [[a op b] expr]
    `(~op (infix-1 ~a) (infix-1 ~b)))
    expr))

    (infix-1 (10 + (20 * 3)))

    (defn plusik [a b] (+ a b))
    (infix-1 (500 plusik (10 plusik 32)))
    (let [a 20] (infix-1 (a plusik (a * 2))))

    Короче просто мир идет не туда. Винда и Линукс - это примеры того, как врядли стоило делать.
    --- Сообщение объединено, 3 янв 2024 ---
    точнее редукцию делает движ кложуры, но удобочитаемая нотация стоит копейки, а сам движ, тоже не большой, если сбор АСТ не обвешивать до полноценного языка.
     
  5. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Так у тебя и гипервизор нестабилен. Ты не можешь полагаться на правильное выполнение даже простейших операций.
    Хм, почему? Если речь об отказоустойчивости, то операционки вообще не должны беспокоиться о проблемах с железом. Если сломано - значит, сломано. Зачем пытаться что-то вытянуть из мёртвого железа?
    Не, если тебе надо делать чекпоинты - ты просто учишь свой код сохранять и восстаналивать данные. Не важно, на каком языке.
    Не сказать, что я понял из этого примера хотя бы строчку)
     
    q2e74 нравится это.
  6. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    ну и # с ним. С новым годом :) давайте продолжать праздновать
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    1ым делом нужно помнить/понимать, что нагрузка проца заключается не в циклах, а в амплитуде тока (подаваемого на проц).. к примеру, навесив на проц слишком много оперативы, можно получить перегрев даже на холостых режимах. тч система защиты проца от перегрева, просто замеряет ток и/ль температуру. а софтинно - да, можно путать время ожидания и исполнения.
    можешь провести сам эксперименты, как происходят скачки из линейного в нелинейный рост - комп не является линейным устройством: увеличивая РЕАЛЬНУЮ загруженность проца, увеличивается подаваемый ток и с ростом температуры ухудшается теплоотвод, но это в случае нарушения теплозащиты. меж тем, и теплозащита отлично роняет производительность - скорость проца сразу может падать на 10ки процентов. короче, работает принцип последней соломки, ломающей хребет верблюду. а на современных ЖЕСТЬанках теплозащита предельно лютует, иначе же пожжёт всё и ко всем чертям.
    так мы же говорим про стандарты качества - пиши хоть брейнфаком, но главное, чтоб аптайм был приличным.
    сахар и фичи - это не про яп как правило, а про среду разработки и либы. лишь два яп-а сделали революцию в плане удобств (си и фортран) - они были чудовищно удобней асма. другие же ничего в этом плане не добавили (паскаль ничем не удобней сишки, васик - та же хистория итд-итп). а вот среды разработки действительно радикально улучшили уют (делфи, с++ билдер да и тот же вижуал васик 6 от мокрых). а теперь вскод и вим рулят. к примеру, ржака под вскодом значительно удобней сишки под блокнотом, хотя сишка куда читабельней ржачного кода.
    сервач можно делать на 2-4 нода и на каждом ноде игруха параллельно бегает.. но удовольствие влетит в копеечку :)
    --- Сообщение объединено, 4 янв 2024 ---
    одна из ценностей линя - это способность работать со сбойным железом + сейчас новые жестянки практически на самой грани аварийного режима. :)
     
  8. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323

    Не, по видео это всё понятно и известно, но почему Страуструп так свистит, когда говорит? Не первый раз замечаю...
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    особого свиста не заметил, а вот чушь этот Товарищ несёт знатную - вот что именно ему в сишке мешает сделать матрицу???:crazy: в плюхе матрица будет классом, а в сихе функцией.. и в плане экономии озу сиха явно рулит :)
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    В целом мире все несут чушь, кроме васмовских спецов, это уже давно известная история. Чтобы понять, нужно слушать, а ты не готов это делать и никогда готов не будешь.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323

    В целом уважаю Линуса, во-первых, за то, что он знатный тролль и часто говорит то, что думает, без внимания на авторитеты и деньги, а во-вторых, за то, что несмотря на то, что он дед, он не позволяет своему дедовскому нежеланию выходить из зон комфорта стагнировать его проекты.
     
    alex_dz нравится это.
  12. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Ох уж эти порриджи, верящие всему, что говорят в интернетах... Я тебе секрет открою - ему платят за то, чтобы он нахваливал раст. Да-да, всем говорящим головам платят за то, чтобы они нахваливали раст. Потому что разрабы раста уже хотят получать с языка профит, но никто на нем ничего не пишет :)
     
    UbIvItS нравится это.
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    8bi066.jpg
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    Торвальдсу вряд ли кто за такое платит - он просто не хочет тратить себе нервы на идиотов: в любом случае время всем покажет непригодность ржаки для написания ядерных кодов. :)
    кхм.. а это что такое???
    Код (C):
    1. int main()
    2. {
    3.  
    4.   int i, j, lines, columns, **intMatrix;
    5.  
    6.   printf("Type the matrix lines:\t");
    7.   scanf("%d", &lines);
    8.   printf("Type the matrix columns:\t");
    9.   scanf("%d", &columns);
    10.  
    11.   intMatrix = (int **)malloc(lines * sizeof(int *));
    12.   //pointer to an array of [lines] pointers
    13.  
    14.   for (i = 0; i < lines; ++i)
    15.       intMatrix[i] = (int *)malloc(columns * sizeof(int));
    16.       //pointer to a single array with [columns] integers
    17.  
    18.   for (i = 0; i < lines; ++i)
    19.   {
    20.       for (j = 0; j < columns; ++j)
    21.       {
    22.         printf("Type a number for <line: %d, column: %d>\t", i+1, j+1);
    23.         scanf("%d", &intMatrix[i][j]);
    24.       }
    25.   }
    26. /*
    27. https://stackoverflow.com/questions/12747731/ways-to-create-dynamic-matrix-in-c
    28. */
    какое чудоооооо.. на сишке без 100500 обёрток можно писать предельно компактные решения :)
     
  15. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Дык посыл Страуструпа именно в том, что уровнем выше ты можешь завернуть матрицу, сделать для неё оператор квадратные-скобочки, и вообще можешь не делать её компактной, а сделать удобной.
    --- Сообщение объединено, 7 янв 2024 ---
    А на что тратится оперативка в плюсах?
     
  16. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    на классы == куча обёрток на небольшую кучку базовых фунок. убрав те обёртки, получаем примерно равный бинарь по размеру да содержимому.
    ну-опять же при чём тут яп??? - для удобств пишут отдельные либы. в некотором плане удивительно аким дикобразом плюха сумела занять столь высокие позиции - она не способствует ни читабельности кодов, ни их качеству (реально вопиющий уродец).
     
  17. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    А можешь привести пример? Какие-нибудь две простенькие эквивалентные программы, где код на плюсах тяжелее сишного.

    Неа, способствует. Мне ведь проще и удобнее писать на плюсах. Думаю, не слишком ошибусь, если скажу, что девятерым из десяти разработчиков - тоже.

    А на си просто нет выразительных средств, чтобы написать дружелюбный API. Структуры, функции и указатели - вот и всё. Не далеко от чистого ассемблера.
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    Код (Text):
    1. #include <cstdio>
    2. // Type your code here, or load an example.
    3. class print_string{
    4.     public:
    5.     print_string(){
    6.       printf("string");
    7.     }
    8. };
    9. class print_string_clone: public print_string{
    10.     public:
    11.     int i;
    12. };
    13.  
    14. int main(int argc, char* argv[]){
    15.    printf("string");
    16.    print_string str;
    17.    print_string_clone str1;
    18.  
    19. }
    плюха очень способствует сказке про белого бычка :) вот таким дикобразом и получаются любые размеры бинаря.
    тут вопрос не столько реальных удобств, сколько привычки - можно сказать, это Стокгольмский синдром + у Тебя и остальных 9ти (аль сколько их там?) попросту ужо выбора нет - куча проектов жёстко завязаны на плюху.
    Ты прям у Рела учишься в аргументации :) стесняюсь спросить, а тот же винапи разве не имеет сугубо сишные корни??? потом опять же - любой яп можно неограниченно расширять за счёт развития сред разработки и именно редактор кода позволяет достичь нужной выразительности, сниженной нагрузки на зрение итд-итп.
     
  19. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    134
    UbIvItS, на чем пишешь код для Це если не секрет? В какой ide?
     
  20. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    А где проверки от malloc, scanf? Так вообще не стоит выделять память. Для матрицы память можно выделить сразу одним куском - это намного производительней если речь как раз идет о производительности. Короче такой код в помойку. Добавь к данной логике все проверки и выйдет код почти один в один как на ЯП с концепцией безопасного программирования.

    Это наследие. Многие современные WinAPI имеют объектно-ориентированные интерфейсы (COM) и безопасные типы (BSTR, VARIANT, SAFEARRAY и т.п.).
     
Статус темы:
Закрыта.