The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз набора компиляторов LLVM 9.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от opennews (??), 20-Сен-19, 10:31 
После шести месяцев разработки представлен релиз проекта LLVM 9.0 (Low Level Virtual Machine) - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=51523

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


3. "Релиз набора компиляторов LLVM 9.0"  –2 +/
Сообщение от Аноним (3), 20-Сен-19, 10:56 
Как его на винду установить?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Релиз набора компиляторов LLVM 9.0"  +22 +/
Сообщение от 1 (??), 20-Сен-19, 10:57 
запускаешь setup.exe и все дела
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от commiethebeastie (ok), 20-Сен-19, 11:19 
https://devblogs.microsoft.com/cppblog/clang-llvm-support-in.../
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

10. "Релиз набора компиляторов LLVM 9.0"  +3 +/
Сообщение от Аноним (10), 20-Сен-19, 12:14 
Как что-то скомпилировать без студии?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

12. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от commiethebeastie (ok), 20-Сен-19, 12:19 
https://releases.llvm.org/

Бинарники под маздайку еще не собрали, а так 8.0.1 есть.

А собирается что-либо через clang.exe

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

19. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (19), 20-Сен-19, 12:53 
Час ведь собираться будет ....
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

28. "Релиз набора компиляторов LLVM 9.0"  –4 +/
Сообщение от Аноним (28), 20-Сен-19, 13:47 
Купи комп нормальный
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

40. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (40), 20-Сен-19, 15:13 
Даже больше... поверь старому гнентушнику. Часа два (если у тебя не 8-ядерный ксеон конеш)
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

57. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от letsmac (ok), 21-Сен-19, 00:47 
Когда у меня был первый пень - все говорили - о всего за час :-)
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

6. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Anonymoustus (ok), 20-Сен-19, 11:58 
> Добавлена реализация специфичного для GCC выражения "asm goto", которое позволяет выполнить переход из ассемблерного inline-блока к метке в коде на языке Си.

Вот это правильно! Даёшь ещё более запутанный код!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Релиз набора компиляторов LLVM 9.0"  +7 +/
Сообщение от Аноним (9), 20-Сен-19, 12:09 
В ассемблере нет ни while, ни for, если ты не в курсе. Только goto (jmp* в x86, b* в arm).
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

37. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (37), 20-Сен-19, 14:50 
repn cmpsb ? :)
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

43. "Релиз набора компиляторов LLVM 9.0"  +3 +/
Сообщение от Аноним84701 (ok), 20-Сен-19, 16:00 
> repn cmpsb ? :)

Пфф, слишком узкоспециализированно:


; FASM, assembly time
macro showPos msg, val
{
bits = 16
    display msg
    repeat bits/4
        x = '0' + val shr (bits-%*4) and 0Fh
        if x > '9'
            x = x + 'A'-'9'-1
        end if
        display x
    end repeat
    display 13,10
}


xor  ecx, ecx
    .REPEAT
        PrintText "this is MASM, runtime"
        inc     ecx
    .UNTIL ecx == 10


.WHILE ecx <= 10
        PrintText "это тоже MASM"
        inc     ecx
    .ENDW

Впрочем, в NASM/TASM высокоуровневщины тоже хватает (о HLA вообще лучше не будем упоминать), поэтому все таки следует различать "assembler","assembly" и собственно то, что можно получить из второго с помощью первого ;)  
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

11. "Релиз набора компиляторов LLVM 9.0"  +10 +/
Сообщение от Аноним (10), 20-Сен-19, 12:16 
goto-фобам среди нормальных программистов делать нечего, это мощный инструмент, который имеет свое применение к примеру для выхода из вложенных циклов, при чем читаемость гораздо выше, чем при использовании разных флагов. Это мощный инструмент, но который надо использовать с умом
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

13. "Релиз набора компиляторов LLVM 9.0"  –5 +/
Сообщение от commiethebeastie (ok), 20-Сен-19, 12:20 
Из вложенных циклов надо выходить выносом оных в отдельные функции, а не созданием говнолапши с goto и флагами.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "Релиз набора компиляторов LLVM 9.0"  +21 +/
Сообщение от A.Stahl (ok), 20-Сен-19, 12:40 
А я-то думал что хорошим тоном является вынос в функции логически законченных блоков, а оказывается функции нужны для выхода из вложенных циклов. Век живи -- век учись...
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

25. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (25), 20-Сен-19, 13:17 
> является вынос в функции логически законченных блоков

Как бы и да, и нет. Смотря что и где. Для повышения читаемости и поддерживаемости кода иногда лучше просто куски убрать в отдельные функции. А потом и станет очевидным, на какие логические блоки разделить можно. И вот в таком случае как пример вынос цикла или куска цикла в отдельную функцию - вполне ок, вместо лапши goto или каких-нибудь break. Если нет каких-то особых требований по стилю, производительности, чему-то ещё... Но, судя по вашим утверждениям выше, вы будете упираться и настаивать на своём. А ведь конкретных подход оч. сильно зависит от проекта.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

55. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Sw00p aka Jerom (?), 20-Сен-19, 22:54 
>Для повышения читаемости и поддерживаемости кода иногда лучше просто куски убрать в отдельные функции.

и срать в стек

>А ведь конкретных подход оч. сильно зависит от проекта.

бред, все должно сводиться к оптимальному набору инструкций.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

65. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (65), 21-Сен-19, 15:36 
>>Для повышения читаемости и поддерживаемости кода иногда лучше просто куски убрать в отдельные функции.
> и срать в стек

"Преждевременная оптимизация есть корень всех зол" (с)

System V AMD64 ABI для первых 6-ти параметров использует регистры процессора. Это в случае, если не будет произведена подстановка (inline) функции.

>>А ведь конкретных подход оч. сильно зависит от проекта.
> бред, все должно сводиться к оптимальному набору инструкций.

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

66. "Релиз набора компиляторов LLVM 9.0"  –2 +/
Сообщение от Sw00p aka Jerom (?), 21-Сен-19, 15:51 
> "Преждевременная оптимизация есть корень всех зол" (с)

что за ересь несете? я посмотрел бы если бы с таким утверждением писали бы математические алгоритмы.

> System V AMD64 ABI для первых 6-ти параметров использует регистры процессора. Это
> в случае, если не будет произведена подстановка (inline) функции.

читайте конвенции системных вызовов

Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

68. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним84701 (ok), 21-Сен-19, 21:11 
>> "Преждевременная оптимизация есть корень всех зол" (с)
> что за ересь несете? я посмотрел бы если бы с таким утверждением писали бы математические алгоритмы.

Это
> The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at > the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

(c) некий Knuth в каком-то "Computer Programming as an Art"


> я посмотрел бы если бы с таким утверждением писали бы математические алгоритмы.

Алгоритм Кнута — Морриса — Пратта,  Алгоритм X … хм, и правда – кто такой Кнут супротив опеннетчиков? 🙄

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

69. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Anonymoustus (ok), 21-Сен-19, 21:26 
> кто такой Кнут супротив опеннетчиков?

Это уж точно.

Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

75. "Релиз набора компиляторов LLVM 9.0"  –4 +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-19, 00:20 
>> The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at > the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

читайте внимательно, "уделяют заботе об эффективности в неправильных местах и в неподходящее время" - где бл*ть обоснование? что значить оптимизация в его понимании? когда необходимо использовать слово оптимальность.

> Алгоритм Кнута — Морриса — Пратта,  Алгоритм X … хм, и

открою вам секрет, мои студенты сами додумываются до этого алгоритма


Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

76. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-19, 00:32 
>"в неправильных местах и в неподходящее время"

попробуйте обосновать за него, что это значить? как понимать неправильное место в алгоритме и темболее неправильное время? эт когда луна не в той фазе? или проснулся не с той ноги?


Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

91. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним84701 (ok), 22-Сен-19, 15:00 
>>"в неправильных местах и в неподходящее время"
> попробуйте обосновать за него, что это значить?

Зачем мне за него что-то обосновывать, если он сделал это сам?
> programmers in the past have tended to be so preoccupied with efficiency that they have produced needlessly complicated code; the result of this unnecessary complexity has been that net efficiency has gone down, due to difficulties of debugging and maintenance.

[ ...]
> My point is that there is a time and place for efficiency; I have discussed its proper role in my paper on structured programming, which appears in the current issue of Computing Surveys

http://www.kohala.com/start/papers.others/knuth.dec74.html#e...
> Knuth, Donald E. Structured programming with go to statements.
> a methodology of program design, beginning with readable and correct, but possibly inefficient programs that are systematically transformed if necessary into efficient and correct, but possibly less readable code. The discussion brings out opposing points of view about whether or not go to statements should be abolished;

[...]
> Experience has shown (see [46], [51]) that most of the running time in non-IO-bound programs is concentrated in about 3 % of the source text.

...
> There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97 % of the time: pre mature optimization is the root of all evil.

Классика, вообще-то.
Можно соглашаться, можно не соглашаться, но умничать про алогритмы и не знать хотя бы в общих чертах, о чем это высказывание …  "This is Spa^W Opennet!",  угу.


> как понимать неправильное место в алгоритме и темболее неправильное время? эт когда луна не в той
> фазе? или проснулся не с той ноги?

Это когда, для начала, не умеют отличать алгоритм от его реализации и начинают заявлять, что использование функций вместо goto == "срать в стек", при этом совершенно независимо от конкретных затыков конкретной реализации конкретного алгоритма, использованного для этой реализации ЯП и компилятора (профайлинг, инлайнинг, да хоть макросы – не, не слышали).

> открою вам секрет, мои студенты сами додумываются до этого алгоритма

Да-да! Все мы (особенно почему-то опеннетчики на опеннете) очень крепки задним умом.
Ну вот просто не повезло нам, великим опенетчикам, родиться позже и всё уже успели "застолбить" до нас всякие Кнуты, Дейкстры, Таненбаумы и Торвальдсы! А не то бы мы ух, всем показали бы!  🙄

Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

92. "Релиз набора компиляторов LLVM 9.0"  –2 +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-19, 20:09 
> Зачем мне за него что-то обосновывать, если он сделал это сам?

ну конечно, что и требовалось доказать. а собственных мыслей как нет так и не будет.

> Классика, вообще-то.

"""
Программисты тратят огромное количество времени на размышления или беспокойство по поводу скорости некритических частей своих программ, и эти попытки повышения эффективности на самом деле оказывают сильное негативное влияние при рассмотрении вопросов отладки и обслуживания.
"""

ну конечно, программистам нужно думать как срубить быстрей бабла. Да бля хрен с эффективностью в угоду отладки и обслуживания.

> Можно соглашаться, можно не соглашаться, но умничать про алогритмы и не знать
> хотя бы в общих чертах, о чем это высказывание …  
> "This is Spa^W Opennet!",  угу.

все у вас походу в общих чертах, поэтому вам чужда оптимизация и оптимальность.


>Это когда, для начала, не умеют отличать алгоритм от его реализации и начинают заявлять, что использование функций вместо goto == "срать в стек", при этом совершенно независимо от конкретных затыков конкретной реализации конкретного алгоритма, использованного для этой реализации ЯП и компилятора (профайлинг, инлайнинг, да хоть макросы – не, не слышали).

и что значить уметь "отличать алгоритм от его реализации"? вы хоть представляете для чего нужны функции и тот же goto? Алгоритму пофиг на чем он будет написан, его на листе бумаге ребенку можно объяснить. И собственно - вы не согласны с тем что, вызов функции "срет в стек"?

>Да-да! Все мы (особенно почему-то опеннетчики на опеннете) очень крепки задним умом.

У вас походу и заднего ума нет, раз принимаете все на веру.

>Ну вот просто не повезло нам, великим опенетчикам, родиться позже и всё уже успели "застолбить" до нас всякие Кнуты, Дейкстры, Таненбаумы и Торвальдсы! А не то бы мы ух, всем показали бы!

Вы им про Евклида расскажите, а Торвальдс - бездарь.


Ответить | Правка | ^ к родителю #91 | Наверх | Cообщить модератору

94. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним84701 (ok), 22-Сен-19, 21:22 
>> Зачем мне за него что-то обосновывать, если он сделал это сам?
> ну конечно, что и требовалось доказать. а собственных мыслей как нет так и не будет.

Доказать что и кому? Похоже, кто-то что-то себе придумал (или взял из методички) и сам же, гордо подтвердил/опроверг придуманное.

Вообще-то, это был контекст цитаты. Более подробные разъяснение автора, так сказать.
Причем тут вообще "собственные мысли", кроме как очередной попытки ad hominem-балаб^W демагогии – не ясно. Ну да *рен с ним - мне ваши дальнейшие фантазии на эту тему абсолютно не интересны.  

> """
> Программисты тратят огромное количество времени на размышления или беспокойство по поводу
> скорости некритических частей своих программ, и эти попытки повышения эффективности на
> самом деле оказывают сильное негативное влияние при рассмотрении вопросов отладки и
> обслуживания.
> """
> ну конечно, программистам нужно думать как срубить быстрей бабла. Да бля хрен
> с эффективностью в угоду отладки и обслуживания.

Остальное, особенно ту часть где описывается, что "огромная часть сил" тратится на "оптимизацию" кода, который в общем случае занимает пару процентов времени выполнения вы, походу, выборочно не ос^W увидели?
Причем, это писалось в те времена, когда о профайлерах и прочих современных инструментах могли только мечтать.
Жаль (ну, почти).

>> Можно соглашаться, можно не соглашаться, но умничать про алогритмы и не знать
>> хотя бы в общих чертах, о чем это высказывание …
>> "This is Spa^W Opennet!",  угу.
> все у вас походу в общих чертах, поэтому вам чужда оптимизация и оптимальность.

Когда нечего возразить по теме, упомяни что-то про общие черты и погадай по аватарке.

>>Это когда, для начала, не умеют отличать алгоритм от его реализации и начинают заявлять, что использование функций вместо goto == "срать в стек", при этом совершенно независимо от конкретных затыков конкретной реализации конкретного алгоритма, использованного для этой реализации ЯП и компилятора (профайлинг, инлайнинг, да хоть макросы – не, не слышали).
> и что значить уметь "отличать алгоритм от его реализации"?  вы хоть представляете
> для чего нужны функции и тот же goto? Алгоритму пофиг на
> чем он будет написан, его на листе бумаге ребенку можно объяснить.

Вам лучше знать, что вы там себе придумали. Конкретно тут, в #25 речь шла о реализации чего-то
>> Для повышения читаемости и поддерживаемости кода иногда лучше просто куски убрать в отдельные функции.

Вы, в #55 обозвали этот шаг мудрым "и срать в стек", а в #55 приплели алгоритмы, заодно назвав довольно известную цитату "ересью".

> И собственно - вы не согласны с тем что, вызов функции  "срет в стек"?

Конечно не согласен с тем, что оно "вообще и всегда делает " <это-самое> в стек. C чего бы? Есть инлайнинг, есть макросы - пиши не хочу.
Так же, не согласен с тем, что <это-самое-в-стек> всегда плохо.  
Потому что кэш не резиновый. И есть такая штука, как вытеснение из кэша, когда более компактная реализация с вызовом функции будет быстрее простыни с анроллами, просто потому что будет меньше "выпадать" из кэша. Тем более, есть еще такая штука, как пайплайны, так что "лишний" call может вообще обойтись в "копейки" (а уж по сравнению с кэшмисом). Ну вот такой я "чуждый оптимизации", да.

И  вообще, с таким подходом остается вообще упростить процедуры-функции и все писать в одну гигантскую простыню, на лейблах (правда, далеко не факт, что результат будет быстрее).

Вот это вот, когда начинают заранее "оптимизировать" непонятно что и непонятно как (а потом вылезает очередной "go to fail") и называется "premature optimization".

>>Да-да! Все мы (особенно почему-то опеннетчики на опеннете) очень крепки задним умом.
> У вас походу и заднего ума нет, раз принимаете все на веру.

Конкретно что, конкретно как и конкретно где я "все приял на веру", о Великий?
Или конкретики не будет, будут и далее непонятные приписывания мне непонятно чего?

Разъясняю детально: попытки "опустить" Кнута от авторитетного анонима выглядят в лучшем случае убог^W забавно, не более. А уж переход на личности и инкрементирование чего-то там, вместо конкретного, аргументированного опровержения заявления так и вообще …
Кстати, Кнут, в отличие от анонима, аргументировал свое высказывание в целом "paper is from Computing Surveys, Volume 6, Number 4, December 1974, pages 261-301.".  (ссылку я привел выше)
Это помимо того, что его утверждение подтверждается субъективными наблюдениями как в целом, так и тут, в этой ветке.
А вот аноним "аргументировал" аж на опеннете. Целым высказыванием "это ересь!".
Отличный аргумент, о да - я прям бегу верить анониму …

>>Ну вот просто не повезло нам, великим опенетчикам, родиться позже и всё уже успели "застолбить" до нас всякие Кнуты, Дейкстры, Таненбаумы и Торвальдсы! А не то бы мы ух, всем показали бы!
> Вы им про Евклида расскажите, а Торвальдс - бездарь.

На более-менее известный и применяемый алгоритм имени Sw00p-aka-Jerom или Sw00p-aka-Jerom's-student где-то можно глянуть? Нет? Значит закроем и эту тему.

Ответить | Правка | ^ к родителю #92 | Наверх | Cообщить модератору

96. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-19, 21:33 
> На более-менее известный и применяемый алгоритм имени Sw00p-aka-Jerom или Sw00p-aka-Jerom's-student
> где-то можно глянуть? Нет? Значит закроем и эту тему.

закрыли тему, удачи


Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

97. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-19, 21:38 
>Причем, это писалось в те времена, когда о профайлерах и прочих современных инструментах могли только мечтать.

дополню, Колмогоров мечтал о профайлере :)))))

Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

87. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (87), 22-Сен-19, 11:29 
>> System V AMD64 ABI для первых 6-ти параметров использует регистры процессора. Это
>> в случае, если не будет произведена подстановка (inline) функции.
> читайте конвенции системных вызовов

В самом деле, давайте, наконец, почитаем. Цитату из System V AMD64 ABI приводить пока не буду. Дам шанс исправиться "преподу" в глазах студентов.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

90. "Релиз набора компиляторов LLVM 9.0"  –3 +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-19, 13:45 
Грош цена тому студенту, который на слово верит учителю, и не осмеливается его поправить.

Грош цена тому учителю, который намерено не выскажет ложное утверждение, дабы выявить способности студента к здравому рассудку.

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

101. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (101), 23-Сен-19, 13:02 
Ой, ой, полегче на поворотах с экзаменационный и индивидуальным подходом на публичном ресурсе.

Ложная гипотеза "какания в стек" была сразу же опровергнута ссылкой на документ, название которого ты вот прям тогда впервые увидел, а за предоставленное время не смог найти и прочесть.[*]

Это при том, что в подавляющем большинстве случаев о конвенции вызова говорить не приходится (см. в скобках про встраивание).

Это при том, что есть ещё один интересный документик, название которого ты сейчас впервые увидишь, и потому я потрудился за тебя и скопировал из него замечательный фрагментик:

Intel® 64 and IA-32 Architectures Optimization Reference Manual

2.5.2.5  Stack Pointer Tracker

The Intel 64 and IA-32 architectures have several commonly used instructions for parameter passing and procedure entry and exit: PUSH, POP, CALL, LEAVE and RET. These instructions implicitly update the stack pointer register (RSP), maintaining a combined control and parameter stack without software intervention. These instructions are typically implemented by several micro-ops in previous microarchitectures.
The Stack Pointer Tracker moves all these implicit RSP updates to logic contained in the decoders themselves. The feature provides the following benefits:
• Improves decode bandwidth, as PUSH, POP and RET are single micro-op instructions in Intel Core microarchitecture.
• Conserves execution bandwidth as the RSP updates do not compete for execution resources.
• Improves parallelism in the out of order execution engine as the implicit serial dependencies between micro-ops are removed.
• Improves power efficiency as the RSP updates are carried out on small, dedicated hardware.

Если коротко и доступно (а тебе не понятно, что в книжках пишут, потому ты и избрал тактику "а вам слабо меня научить") -- фигня твои какашки в стеке, лет эдак десять.

[*] Так что не оправдывайся, в касту учителей ты не вхож. Даже учителей риторики. Но ежели тебя кто-то допустил играть роль препода -- призадумайся, тому ли ты учишь. Это мой тебе добрый совет.

Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

105. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Sw00p aka Jerom (?), 23-Сен-19, 23:50 
>Ложная гипотеза "какания в стек" была сразу же опровергнута ссылкой на документ, название которого ты вот прям тогда впервые увидел, а за предоставленное время не смог найти и прочесть.

так, так , тут по поподробней, где тут моя ложная гипотеза про обсирание стека?


чем и кем опро..... как её там опровергнута?


пс: дальше продолжим разговор  

Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

122. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (101), 24-Сен-19, 09:49 
>>Ложная гипотеза "какания в стек" была сразу же опровергнута ссылкой на документ, название которого ты вот прям тогда впервые увидел, а за предоставленное время не смог найти и прочесть.
> так, так , тут по поподробней, где тут моя ложная гипотеза про
> обсирание стека?

Выше. Ищи сам. Ctrl+F и вперёд.

> чем и кем опро..... как её там опровергнута?
> пс: дальше продолжим разговор

Пфф. Размечтался. Тебе был дан шанс признать, что ты ошибался.

Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

70. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (70), 21-Сен-19, 21:50 
Тем более, что теперь есть анонимные функции.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

78. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:24 
В Си или в Си++?
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

22. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от НяшМяш (ok), 20-Сен-19, 13:15 
Лейблы даже в javascript есть для выхода из вложенных циклов. Это мощный инструмент, особенно когда ты не можешь сказать компилятору, что эта функция должна быть заинлайнена.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

123. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от КО (?), 24-Сен-19, 10:04 
Ага это сразу сделает все понятным. :)

Ну даже в случае тривиальнейшего поиска элемента по n-мерной матрице.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

27. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от Аноним (27), 20-Сен-19, 13:35 
Это мощный инструмент для убогих языков. В нормальных языках брейку можно сказать, куда именно выходить.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

31. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от llolik (ok), 20-Сен-19, 14:02 
И чем это принципиально отличается от goto кроме названия?
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

32. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от None (??), 20-Сен-19, 14:10 
Тем, что break прикончит всё сам, а после goto нужно убирать.
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

44. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (44), 20-Сен-19, 16:33 
Кто на ком стоял ?
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

79. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:26 
Кто и что прикончит брейки и что нужно убрать после goto?
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

34. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Илья (??), 20-Сен-19, 14:27 
Давайте вы покажете, как вы используете своё гото на примере? Только, пожалуйста, больше контекста. Хотя бы строк 200
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

46. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (65), 20-Сен-19, 17:03 
> Давайте вы покажете, как вы используете своё гото на примере? Только, пожалуйста,
> больше контекста. Хотя бы строк 200

Смотрите #26 и прекращайте выдумывать новые контексты.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

80. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:30 
Example:

```
struct some_t *some(const void *const args) {
    const int err;
    struct some_t *result;
    result = malloc(...);
    if (result == nullptr) {
        err = enomem;
        goto out;
    }
    for (iterator i = c.first(); i++; i != nullptr) {
        if (...) {
            err = 2;
            goto out;
        } else {
            result ...
        }
    }
    err = 0;
  out:
    if (err != 0) {
        some_free(result);
        rsult = nullptr;
    }
    return result;
}
```

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

88. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Аноним (87), 22-Сен-19, 11:31 
Что за чушь приведена в качестве примера? Где там "asm goto" из новости?
Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

51. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Anonymoustus (ok), 20-Сен-19, 19:07 
Угадай, на каком это языке:


10    IF ( ... ) THEN
        ...
      GO TO 10
      END IF


Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

77. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (77), 22-Сен-19, 00:39 
Английский?
Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

98. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Кочегар (ok), 23-Сен-19, 03:31 
На FORTAN-77 похоже.
Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

99. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Anonymoustus (ok), 23-Сен-19, 08:20 
> На FORTAN-77 похоже.

Он самый.

Метка и GO TO используются для организации цикла.

http://rosettacode.org/wiki/Flow-control_structures#Fortran

Из полезного там ещё ссылаются на текст Кнута:

http://www.kohala.com/start/papers.others/knuth.dec74.html

Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

53. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (53), 20-Сен-19, 19:54 
Настоящие программисты используют продолжения, а на ваше гоуту смотрят как на детскую игрушку.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

64. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Аноним (65), 21-Сен-19, 15:34 
> Настоящие программисты используют продолжения, а на ваше гоуту смотрят как на детскую
> игрушку.

а кто-то понимает, что goto суть рекурсивный вызов.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

26. "Релиз набора компиляторов LLVM 9.0"  –4 +/
Сообщение от Аноним (65), 20-Сен-19, 13:26 
>> Добавлена реализация специфичного для GCC выражения "asm goto", которое позволяет выполнить переход из ассемблерного inline-блока к метке в коде на языке Си.
> Вот это правильно! Даёшь ещё более запутанный код!

Упрощай. Для тебя ведь код не запутан, не так ли?


static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
{
    asm_volatile_goto("1:"
        ".byte " __stringify(STATIC_KEY_INIT_NOP) "\n\t"
        ".pushsection __jump_table,  \"aw\" \n\t"
        _ASM_ALIGN "\n\t"
        ".long 1b - ., %l[l_yes] - . \n\t"
        _ASM_PTR "ю + а - .\n\t"
        ".popsection \n\t"
        : :  "i" (key), "i" (branch) : : l_yes);

    return false;
l_yes:
    return true;
}

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

48. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Anonymoustus (ok), 20-Сен-19, 19:00 
Переходи на FreeBASIC*, не страдай.


* FreeBASIC is a free/open source (GPL), BASIC compiler for Microsoft Windows, DOS and Linux.

https://www.freebasic.net/

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

63. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Аноним (65), 21-Сен-19, 15:32 
Скажи ещё, что это я жаловался на запутанность, которую якобы даст goto, а не ты. ;)
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

67. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Anonymoustus (ok), 21-Сен-19, 17:48 
> Скажи ещё, что это я жаловался на запутанность, которую якобы даст goto,
> а не ты. ;)

Разве я жаловался? Наоборот же, анон, я горячо приветствую каждое прогрессивное начинание. Выпрыгивание из ассемблерной вставки куда-нибудь в сишечный код подальше очень и очень улучшит понятность и управляемость программы. Я ни секунды не сомневаюсь в этом. Я за прогресс!

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

86. "Релиз набора компиляторов LLVM 9.0"  –5 +/
Сообщение от Аноним (87), 22-Сен-19, 11:24 
>> Скажи ещё, что это я жаловался на запутанность, которую якобы даст goto,
>> а не ты. ;)
> Разве я жаловался? Наоборот же, анон, я горячо приветствую каждое прогрессивное
> начинание.

То есть вообще не понимаешь, о чём в идёт речь новости. Объясняю. Код с таким goto существует давно. Добавили возможность трансляции имеющегося кода.

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

7. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от Аноним (7), 20-Сен-19, 12:02 
Интересно, когда Julia на него переедет....
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Релиз набора компиляторов LLVM 9.0"  –3 +/
Сообщение от Аноним (14), 20-Сен-19, 12:29 
> Обеспечено преобразование вызовов memcmp в bcmp в некоторых ситуациях.

Зачем?

> функций с типом void

Функция не может иметь тип void. Функция может возвращать void.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

56. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Sw00p aka Jerom (?), 20-Сен-19, 23:22 
>Функция не может иметь тип void.

как и вообще типы, ибо функция - не данные (получаемые, возвращаемые и т.д.), а набор инструкций. Про функции высшего порядка промолчу.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (16), 20-Сен-19, 12:45 
>В компоновщик LLD добавлена экспериментальная возможность партицирования, позволяющая разделить одну программу на несколько частей, каждая из которых размещается в отдельном ELF-файле. Указанная возможность позволяет запускать основную часть программы, которая по мере необходимости в процессе работы будет подгружать остальные компоненты

DOS overlay?!
Всё новое - хорошо забытое старое…

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

41. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Ordu (ok), 20-Сен-19, 15:54 
Почему же забытое? Ты мог это делать через dlopen/dlclose сколько угодно.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

81. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:33 
Мог прилагать усилия, а теперь оно само но вопрос про оверлеи они были сами или их надо было деать
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

17. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (17), 20-Сен-19, 12:45 
А что с поддержкой Intel HEX в llvm-objcopy, вроде добавляли её?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (19), 20-Сен-19, 12:52 
Clang 10 отлично работает, хоть и nightly.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от кельвин (?), 20-Сен-19, 12:54 
а чё там по сборке ядра?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Релиз набора компиляторов LLVM 9.0"  +6 +/
Сообщение от НяшМяш (ok), 20-Сен-19, 13:16 
а чё там по чтению текста новости?
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

36. "Релиз набора компиляторов LLVM 9.0"  +4 +/
Сообщение от Аноним (36), 20-Сен-19, 14:41 
Может еще смузи не пить? Читать новости давно не в тренде (чиатать надо только заголовки не более 140 символов).
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

82. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:33 
Читаете новости через SMS шлюз?
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

24. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (24), 20-Сен-19, 13:17 
Давно LLVM стал всего лишь «набором компиляторов»?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (28), 20-Сен-19, 13:49 
"The LLVM Project is a collection of modular and reusable compiler and toolchain technologies."

Ну да, не совсем точный перевод

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

30. "Релиз набора компиляторов LLVM 9.0"  +4 +/
Сообщение от anonymuous (?), 20-Сен-19, 13:53 
Товарищь админ, не используйте пожалуйста расшифровку (Low Level Virtual Machine). На сегодняшний день это уже не так, и LLVM просто бренд, который никак ни расшифровывается:

"The name "LLVM" was once an acronym, but is now just a brand for the umbrella project"

цитата взята от: http://www.aosabook.org/en/llvm.html
на эту книгу есть ссылка из официальной документации: http://llvm.org/docs/  (Intro to LLVM)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Аноним (36), 20-Сен-19, 14:40 
GNU - Gnu's Not Unix. LLVM - LLVM's Not Linux.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (33), 20-Сен-19, 14:15 
Во FreeBSD 12 кое-что начало компилироваться с -flto=full. Но надо использовать егойный /usr/local/llvm90/bin/ld.lld. Firefox/Thunderbird у мну не получилось :(
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Ordu (ok), 20-Сен-19, 15:57 
> Firefox/Thunderbird у мну не получилось

Это, возможно, как-то связано с: http://blog.llvm.org/2019/09/closing-gap-cross-language-lto-...

Линк-тайм оптимизации плохо заходят на границах между языками. Требуют специальной доводки.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

73. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от meantraitor (?), 21-Сен-19, 22:24 
Во время линк-тайм оптимизаций нет никаких языков и границ между ними.
Есть кривые руки авторов компилятора rust.
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

74. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Ordu (ok), 21-Сен-19, 22:50 
> Во время линк-тайм оптимизаций нет никаких языков и границ между ними.

Теоретически. Все такие заявления теоретичны по своей сути, и большинство попыток эту теорию перевести в разряд практической реализации разбиваются о реальность в мелкую щепу.

> Есть кривые руки авторов компилятора rust.

Ну если ты хочешь сводить всё к кривым рукам, то авторы компилятора rust как раз справились. Кроме rust'а, LTO работает с C/C++, Haskell'ом, и может ещё одним-двумя языками. При таком раскладе, выходит, кривые руки почти у всех, но не у разработчиков rust'а. Остающиеся проблемы, в общем, связаны скорее с багами LLVM, которые не проявляют себя на оптимизациях C/C++, но проявляют себя на оптимизациях rust'а, в силу того, что rust позволяет больше оптимизаций проводить.

Я выше кинул ссылку на статью, которая в общих чертах описывает эпопею с запиливанием межъязыкового LTO для раста, чтобы компилировать firefox не парясь о недооптимизации на границе между C++ и Rust. Ты почитай её на досуге, чтобы оценить сложность проблемы, это позволит тебе более обоснованно судить о том, является ли неспособность запилить для языка LTO с C/C++ признаком кривых рук или нет.

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

103. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от meantraitor (?), 23-Сен-19, 14:54 
Я-то эту статью прочитал. И, в отличие от тебя, понял, что там написано.
И как компиляторы работают я знаю получше тебя, так что не надо меня поучать.


Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

104. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Ordu (ok), 23-Сен-19, 18:44 
> Я-то эту статью прочитал. И, в отличие от тебя, понял, что там
> написано.
> И как компиляторы работают я знаю получше тебя, так что не надо
> меня поучать.

Это видно, просто на лбу написано. Что ж ты глупости такие говоришь тогда? У меня, впрочем, есть возможный ответ на этот вопрос: твоё "лучшее" знание компиляторов сугубо теоретично. Книжку прочитал какую, аль убелённый сединами препод тебе курс теории трансляторов прочитал? Я очень уважаю теорию, но при всём при этом, я всегда помню одну вещь (и тебе очень рекомендую): теория не подкреплённая практикой -- пустое место. Если ты читал книжку по теории трансляции и не написал ни одного транслятора, и не попытался использовать код существующих компиляторов для чего-либо, то лучше бы ты использовал эту книжку для дел сортирных, больше пользы бы извлёк.

Ну реально, если бы у тебя был опыт программирования, то после прочтения той статьи, ты бы не обвинял никого в кривых руках. Ты бы аплодировал стоя тому, через какие сложности ребятам удалось прорваться. Потому что мало лишь на это способен.

Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

125. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от meantraitor (?), 24-Сен-19, 16:04 
Ну хорошо, допустим, я тупица, теоретик и не видел ни одного компилятора.
Просвети же меня, о мудрейший, какие такие свойства раста мешали использованию Rust+C LTO?
Я еще, видимо, и английский не понимаю. Может твои объяснения по-русски пойму?


Ответить | Правка | ^ к родителю #104 | Наверх | Cообщить модератору

128. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Ordu (ok), 24-Сен-19, 17:02 
> Ну хорошо, допустим, я тупица, теоретик и не видел ни одного компилятора.
> Просвети же меня, о мудрейший, какие такие свойства раста мешали использованию Rust+C
> LTO?

Я где-то говорил, что свойства раста мешали использованию Rust+C? Ты продолжаешь мыслить теоретически. LTO -- это не теоретическая штука, это не какая-то абстрактная идея о том, как можно проводить link-time оптимизации. LTO -- это кусок кода внутри llvm. _Внутри_, то есть не стоЯщий отдельно, а искусно погнутый так, чтобы без зазоров соединяться с другими кусками кода. Кусок кода имеющий множество точек входа, и каждая точка входа может принимать аргументы как явно, так и неявно. Чтобы понять как нужно дёргать этот кусок кода, чтобы он сделал именно то, что тебе нужно, требуется куча времени по изучению этого куска кода и смежных с ним. Иногда это происходит потому, что что-то там недокументировано, иногда потому что документировано, но ты не нашёл документацию, иногда потому, что ты что-то совершенно другое сделал не так и не заметил, и оно падает с ошибкой, несмотря на то, что здесь ты делаешь всё правильно, дёргаешь нужные функции API, в нужном порядке и с нужными аргументами. Ты знаешь, что косяки лезут в файле X в N'ой строке, но ты знаешь, что там всё правильно сделано, реальная ошибка где-то ещё. И вот ты сидишь в дебуггере, отслеживая как выполняется программа, которая работает, и сравнивая это с тем, как работает твоя программа, которая не работает. Тебе не знаком этот опыт? Это видно, и именно поэтому я и говорю о том, что у тебя какой-то излишне теоретический взгляд на чисто техническую проблему.

А как насчёт версий llvm? llvm меняется от версии к версии, rust идёт за llvm и привязывается к нему, но нигде нет гарантий, что clang и rust основаны на достаточно близких версиях. Эта проблема уже почти организационного уровня, и очевидно напрашивающийся способ решить её полностью -- это синхронизировать выпуски и их нумерацию шланга и раста. Но это будет очень неудобно, потому что сейчас нумерация версий rust'а привязана к плану разработки rust'а. При этом даже использовать "стабильные" версии llvm будет затруднительно, потому что подчастую используются версии llvm собранные по номеру ревизии в git, потому что именно там был исправлен блокирующий баг llvm.

Пока вместо этого они завели табличку совместимости между версиями, чтобы в ней отмечать удачные комбинации версий. Что делать в будущем, они пока ещё не знают, это требует более широкого обсуждения с привлечением других разработчиков, не только тех, кто занимался LTO.

> Я еще, видимо, и английский не понимаю. Может твои объяснения по-русски пойму?

Я думаю, что дело не в способности понимать, а в способности удерживать внимание на тексте достаточно долго, чтобы дочитать до конца. Могу предположить, что дело было так, ты прочитал два абзаца, не увидел ничего нового для себя, и решил что такому специалисту как ты, зазорно читать статью, потому как она написана для нубов. Вместо этого ты пролистал статью сверху вниз, выхватывая отдельные слова. Среди них не оказалось незнакомых, поэтому ты решил, что знаешь всё, что написано в статье. Впрочем это лишь предположение, основанное на моём прошлом опыте совершения подобных ошибок.

Ответить | Правка | ^ к родителю #125 | Наверх | Cообщить модератору

129. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от meantraitor (?), 24-Сен-19, 17:40 
Подожди-ка, мы начали с того, что я сказал, что во время LTO нет уже никаких языков.
Ты мне начал возражать. А теперь начинаешь мне впаривать про интеграционные проблемы.
Эти проблемы не новость и хорошо известны.
Я всего лишь хотел тебе сказать, что эти чуваки поимели бы те же самые проблемы, если бы пытались
точно таким же образом написать свой фронтенд для С, а не Rust. Конкретный язык тут вообще
непричем.

В статье они описали, как их (не)понимание работы LLVM не совпало с тем, как оно работает на самом
деле. Ну, разобрались, молодцы, починили, статью написали.
Но это никакой не подвиг и не прорыв. Обычная работа.

На прощанье могу тебе только посоветовать придерживать свою проницательность и свое ЧСВ,
и пытаться слышать других а не только себя любимого.
Иногда попадаются умные люди (это я не про себя), у которых многому можно научиться и узнать.


Ответить | Правка | ^ к родителю #128 | Наверх | Cообщить модератору

132. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Ordu (ok), 24-Сен-19, 18:02 
> Подожди-ка, мы начали с того, что я сказал, что во время LTO
> нет уже никаких языков.
> Ты мне начал возражать. А теперь начинаешь мне впаривать про интеграционные проблемы.

Да, естественно, я начал возражать, заявив, буквально следующее "Теоретически [нет никаких языков и границ между ними]. Все такие заявления теоретичны по своей сути, и большинство попыток эту теорию перевести в разряд практической реализации разбиваются о реальность в мелкую щепу."

Это как-то у тебя не состыковывается со всем остальным, что я написал?

> Эти проблемы не новость и хорошо известны.
> Я всего лишь хотел тебе сказать, что эти чуваки поимели бы те
> же самые проблемы, если бы пытались
> точно таким же образом написать свой фронтенд для С, а не Rust.

Не совсем. Баги, ради исправления которых разработчики rust'а шлют патчи в llvm, подчастую носят как раз характер багов, не проявляющихся на C/C++, но проявляющихся на rust'е. LTO тестировался до rust'а на C, C++ и Haskell'е. Пришёл rust и нашёл новую пачку багов. Некоторые из них, вероятно, порождение реализации, и другая реализация rust'а или C, может и не столкнулась бы с ними, а некоторые вызваны особенностями rust'а как языка, и с ними у компилятора C было бы примерно ноль шансов столкнуться.

> В статье они описали, как их (не)понимание работы LLVM не совпало с
> тем, как оно работает на самом
> деле. Ну, разобрались, молодцы, починили, статью написали.
> Но это никакой не подвиг и не прорыв. Обычная работа.

Ну, да. Но и "кривые руки" тут не при чём, не так ли? Ребята справились с этой работой, мне хочется их поздравить -- я представляю себе через какие глубины фрустрации им пришлось пройти, решая описанные проблемы.

> На прощанье могу тебе только посоветовать придерживать свою проницательность и свое ЧСВ,
> и пытаться слышать других а не только себя любимого.

Мне показалось, или я что-то слышал про бревно в глазу?

> Иногда попадаются умные люди (это я не про себя), у которых многому
> можно научиться и узнать.

Где? Где тебе попадаются такие люди? Реально мало таких мест. И с каждым годом всё меньше и меньше. Я никак понять не могу -- это мои стандарты к уму собеседника растут, или люди тупеют.

Ответить | Правка | ^ к родителю #129 | Наверх | Cообщить модератору

39. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (39), 20-Сен-19, 15:06 
Всегда интересовался вопросом, что такое "релиз" а что такое "выпуск". Берем эту тему, тут "релиз". Берем соседнюю тему "https://www.opennet.dev/opennews/art.shtml?num=51522" в которой пишут что Выпуск Samba 4.11.0, но потом "Представлен релиз" Может кто внятно объяснить чем релиз лучше выпуска?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "Релиз набора компиляторов LLVM 9.0"  +2 +/
Сообщение от neAnonim (?), 20-Сен-19, 16:55 
Если зарелизили, то релиз. Если выпустили, выпуск. Если наваяли, ...
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

47. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (65), 20-Сен-19, 17:05 
> Если зарелизили, то релиз. Если выпустили, выпуск. Если наваяли, ...

Не, наоборот. Релизят выпуск, а выпускают релиз. Иначе тавтология получается :)

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

62. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (62), 21-Сен-19, 15:25 
Выпуск релиза нового обновления
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

83. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:36 
Есть спринты (майлстоны) их результат это выпуск,
а есть функиональные требования от заказчика и их удовлетворяющий выпуск это релиз.
А может и на оборот
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

58. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (58), 21-Сен-19, 00:50 
В чём кайф если ядро клангом собрать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

61. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (58), 21-Сен-19, 11:47 
Кто-нибудь собирал ядро клангом на х86_64 и может объяснить какой-то практический профит? Быстрее компиляция или это как-то отразилось на работе системы?
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

84. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:37 
Варнингов больше будет - выше шанс найти ощибок выхода за границы  и тд
Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

71. "Релиз набора компиляторов LLVM 9.0"  +1 +/
Сообщение от Аноним (70), 21-Сен-19, 22:09 
Если соберётся. то, возможно, в панику впадать начнёт.
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

136. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (33), 26-Сен-19, 16:31 
ни в чём. при компиляции сначала придётся включить игнор [не помню уже каких именно] ворнингов. а затем ловить корки ядра.
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

59. "Релиз набора компиляторов LLVM 9.0"  –2 +/
Сообщение от Аноним (59), 21-Сен-19, 08:44 
> компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

Зачем мне это? Компилятор во время я компиляции должен давать сразу бинарник заточенный под мой проц.

Выполняют компиляцию один раз, во время установки с исходников, с максимальной заточькой под мой проц. Не хочу чтобы исполняемый код изменялся во время компиляции вирусной или каким-то JIT.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

60. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (60), 21-Сен-19, 09:49 
Я хз зачем это в новости, LLVM _может_ использоваться так как описано, но в основном его используют как обычный компилятор под конкретную архитектуру (как GCC, он с ним почти полностью совместим).
Вам может не надо, кому-то JIT надо =)
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

72. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от JL2001 (ok), 21-Сен-19, 22:14 
> проекты Android и ChromeOS уже переведены на использование Clang для сборки ядра и Google тестирует Clang в качестве основной платформы для сборки ядер для своих рабочих Linux-систем

в чём профит для гугла от этого?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

85. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Аноним (78), 22-Сен-19, 03:38 
Лицензия у ГЦЦ требует лизать ботинки авторам а в кланге только писать что использовался шланг
Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

93. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Ordu (ok), 22-Сен-19, 21:16 
Уменьшение зоопарка инструментария. gcc крайне сложно использовать для чего-либо, кроме компиляции. llvm можно использовать для подсветки синтаксиса, для написания статических анализаторов, и для любых других задач требующих парсера языка. При желании можно использовать не только фронтенд llvm, но и бекенд. С gcc тоже так можно, но теоретически, потому что практически проще использовать llvm: какой бы убогой не была его документация, у gcc всё ещё хуже.
Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

95. "Релиз набора компиляторов LLVM 9.0"  –1 +/
Сообщение от Аноним (95), 22-Сен-19, 21:31 
клэнг - это изначально кросс-компилятор, по определению. Ставишь клэнг из пакетов - и нужна только sysroot. GCC же нужно компилировать свой для каждой платформы - в нём пути жёстко захардкожены. В результате можно будет не поставлять компиляторы в составе ndk.
Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

124. "Релиз набора компиляторов LLVM 9.0"  +/
Сообщение от Андрей (??), 24-Сен-19, 15:37 
>В компоновщик LLD добавлена экспериментальная возможность партицирования, позволяющая разделить одну программу на несколько частей, каждая из которых размещается в отдельном ELF-файле. Указанная возможность позволяет запускать основную часть программы, которая по мере необходимости в процессе работы будет подгружать остальные компоненты (например, можно выделить встроенный PDF-просмотрщик в отдельный файл, который будет загружаться только когда пользователь открыл PDF-файл).

Это уже было в TurboPascal ещё в 90е... :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру