Куча говна / Говнокод #26810 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
// Это означает что, например, поведение следующего кода не определено:

fn cast(x: f32) -> u8 {
    x as u8
}

fn main() {
    let f = 300.0;

    let x = cast(f);

    println!("x: {}", x);
}

https://habr.com/ru/post/511546/
> Это мы называем ошибкой «корректности» (ведь unsafe кода тут нет) — то есть ошибка, когда компилятор делает неправильные вещи. Мы отмечаем их в нашем трекере как I-unsound, и относимся к ним очень серьёзно.

Запостил: gost gost, (Updated )

Комментарии (10) RSS

  • Так, падажжите, но ведь пuтухи в каждом углу кuкарекают, что у них ма-те-ма-ти-чес-ки доказанная корректность языка! Что это, получается, пuтухи пuздят?
    Ответить
    • > ма-те-ма-ти-чес-ки доказанная корректность языка!

      Пусть хотя бы математически докажут корректность центрального процессора, а то постоянно какие-то очередные мелтдауны и спектры всплывают.
      Ответить
      • >this is undefined behavior

        >Изначально Issue 10184 была открыта в октябре 2013 года, за полтора года до выпуска Rust 1.0. Так как rustc использует LLVM в качестве backend-компилятора

        То есть анскильная растомразь своровала чужое, обосралась ещё до релиза, но с неё так никто за это и не спросил.
        Ответить
  • Азаза. Пuтушатня опять обосралась.

    Ну а чего они хотели построить на ворованной инфраструктуре.
    Ответить
  • Это именно то, о чём твердил лалкам Царь

    https://tsar1997.blogspot.com/2019/11/blog-post_16.html?showComment=1574636735401#c 5507874678266117068

    Нет, ты обделался. Я уже объяснял вам, клоунам, про то - что такое первично. C++ относительно llvm первичен. Т.е. ллвм ДОЛЖЕН обеспечивать семантику С++ и С++ диктует семантику ллвм.
    
    Что такое недоязычок типа говнораста? Это просто обёртка над llvm-ir. Она вторична - она просто ворует всю семантику из llvm. Это говно ничего не может создать само. И по причине, что авторы этому мусора - биомусор. И по причине того, что оно находится у параши по праву рождения.
    
    Поэтому так и происходит. Есть в С++ корутины/исключения/конкретная модель памяти/базовые механизмы обеспечивающие много другой семантики. Те же сишные стуктуры, нейминг и прочее. Всё это было создано С++ и создано для С++.
    
    А потом прибегают ублюдки, берут ir и прикручивают поверх него примитивный транслятор. Берут крестовый нейминг и перегрузку - пытаются сваять на её базе говнотрейты. Всё это работает через жопу.
    
    Берут ворованные исключения и всю ту семантику крестовую, что генерирует llvm и называют это паниками. Очевидно, что всё это работает через жопу и при вылете исключения можно только упасть. Ну или попытаться её память, что, опять же, llvm позволяет делать. Но всё в говне. Берут аллоку и используют её как гц.
    
    [...]
    Особенно меня веселит то, как обезьяны кукарекают "вот запилим свой ллвм и уйдём". Клоун - ты сможешь этого сделать. Ты вторичен по отношению к ллвм. Это проблема всех идиотов. Это как С++ возьмёт и скажет "я уйду от си", хотя С++ в контексте именно своей семантики первичен.
    
    По-сути твой недоязычок находится в стадии си с классами. Есть llvm-ir поверх этого натянут сахар, которым и является твой недоязычок. именно llvm-ir и является языком. Ты не можешь от него уйти. Тебе придётся полностью реимплементировать llvm.
    Ответить
    • А мы недавно смеялись над компилятором языка «Zephir», который тупо всё переводит в сишку, не проверяя границы диапазонов, из-за чего наследует все UB сишки.

      Ладно, «Zephir» — узкоспециализированный ЯП, который придумали, чтобы быстро разрабатывать нативные расширения для «PHP». Но «Rust» вроде позиционировали как серьёзный ЯП. На него даже «Фуррифокс» попытались перевести.
      Ответить
  • Пошёл в статью про «Julia». И сразу Ctrl+F «LLVM»

    Извольте.
    Julia's core is implemented in Julia and C, together with C++ for the LLVM dependency. 
    
    The parsing and code-lowering are implemented in FemtoLisp, a Scheme dialect.
    
    The LLVM compiler infrastructure project is used as the back end for generation of 64-bit or 32-bit optimized machine code depending on the platform Julia runs on.
    Скоро в «Julia» UB найдут?
    Ответить

Добавить комментарий для 3.14159265 Отменить ответ

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8