mboost-dp1

Intel goes LLVM


Gå til bund
Gravatar #2 - Claus Jørgensen
10. aug. 2021 20:24
Istedet for GCC?

nice :)
Gravatar #3 - arne_v
10. aug. 2021 20:39
#2

Nej.

I.s.f. deres helt egen compiler backend.
Gravatar #4 - larsp
12. aug. 2021 07:35
LLVM projektet har formået at lave en virkelig skarp compiler arkitektur siden så mange projekter, store som små, vælger deres stak. Godt gået.
Gravatar #5 - Claus Jørgensen
12. aug. 2021 09:13
Nu venter vi bare på at Microsoft dropper deres egen C++ compiler (MSVC) og også switcher to Clang/LLVM.

C++20 kompileret med LLVM gør jo næsten C++ til en moderne programmeringsplatform! Og Clang har jo næsten fejlbeskeder der faktisk kan læses af et menneske uden at gætte!
Gravatar #6 - arne_v
12. aug. 2021 13:19
#5

Er clang ikke allerede supporteret af VS ved siden af msvc++?
Gravatar #7 - arne_v
12. aug. 2021 13:20
#4 og #5

LLVM er ret cool.

Men jeg er lidt bekymret over hvis fremtiden for native compilerere bliver et duopol: GCC og LLVM.

Jeg kunne godt tænke mig lidt flere muligheder.
Gravatar #8 - Claus Jørgensen
12. aug. 2021 16:35
arne_v (6) skrev:
#5

Er clang ikke allerede supporteret af VS ved siden af msvc++?
Jo, lidt https://docs.microsoft.com/en-us/cpp/build/clang-s...

Men ikke 100%. F.eks. er fejlrapporteringen er ikke fuldt integeret
Gravatar #9 - Claus Jørgensen
12. aug. 2021 16:36
#7

Jeg så gerne at det blev et monopol, dvs. bare LLVM.

(Og hvis man arbejder med Apple's tech stack er det principelt allerede et monopol på LLVM)

Jeg ser virkelig ikke nødvendigheden for GCC.
Gravatar #10 - arne_v
12. aug. 2021 16:46
#9

Monopol er sjældent godt.
Gravatar #11 - larsp
12. aug. 2021 17:37
LLVM har BSD / Apache 2 licens, så Intel er vel ikke tvunget til at open source forbedringer til LLVM koden. Noget nys om hvorvidt Intel har tænkt sig at dele ud af godterne?
Gravatar #12 - arne_v
12. aug. 2021 18:30
#11

De giver ihvertfald noget tilbage:

https://github.com/intel/llvm

Gravatar #13 - iCBM
13. aug. 2021 07:20
arne_v (10) skrev:
#9

Monopol er sjældent godt.

enig men det er bevidst på Apples platforme

Gravatar #14 - Claus Jørgensen
13. aug. 2021 07:44
arne_v (10) skrev:
#9

Monopol er sjældent godt.
Compilere er en af de sjælne gange hvor monopol er godt.

Gravatar #15 - arne_v
13. aug. 2021 12:32
#14

Tja - hvis du havde fået din vilje så havde den vel stået på cfront idag.

:-) :-) :-)
Gravatar #16 - Claus Jørgensen
13. aug. 2021 13:09
#15

Det er vel bedre at folk arbejder sammen om at lave én god compiler, istedet for 5 mediocre compilere.

C++ udvikler sig så langsomt fordi at der er for mange kokke. De er i dag hvor de burde have været for 10-15 år siden.
Gravatar #17 - arne_v
13. aug. 2021 14:36
#16

Hvis det er poolen af ekspertise som driver udviklingen ja.

Men jeg tror mere på at det er konkurrencen som driver udviklingen.

Der var fuld fart på GCC dengang sidst i 80erne først i 90erne, da de skulle konkurrere med andre *nix compilere. Da de havde vundet, så gik udviklingen i stå. Der kom gang igen da EGCS forken dukkede op. Efter at EGCS mergede tilbage ind i GCC gik udviklingen lidt i stå. Nu er der gang i GCC igen efter at LLVM giver dem konkurrence.

Hvis der er en 3-4 compilere, så er der ikke nogen som slapper af. Der er hele tiden noget der skal catches up på.

Hvis der er 2 compilere så går det ikke helt i stå men der kan godt blive lidt hver sin niche mentalitet.

Og med kun 1 compiler så er der ikke meget incitament til at forbedre.
Gravatar #18 - iCBM
13. aug. 2021 15:29
#17

jeg er 100 procent enig
Gravatar #19 - Claus Jørgensen
13. aug. 2021 16:43
#17

GNU projekter plejer ellers at være så anti-konkurrence, det er jo "ondskaben selv" at Microsoft har konkurret mod GCC hvis man spurte dem...
Gravatar #20 - arne_v
13. aug. 2021 23:15
#19

GNU/FSF/RMS er så vidt jeg ved generelt for fri konkurrence.

Og selvom brugerne af deres produkter ofte er (eller var) markant anti-MS, så har GNU/FSF/RMS altid været langt mere anti-Apple end anti-MS.

Gravatar #21 - arne_v
17. aug. 2021 18:55
Claus Jørgensen (5) skrev:

C++20 kompileret med LLVM gør jo næsten C++ til en moderne programmeringsplatform!


Nogen af os programmerer stadigvæk i C++ 2.0 og C++ 98.

:-) :-) :-)
Gravatar #22 - Claus Jørgensen
17. aug. 2021 19:43
#21

Sørgeligt at jeres projekter ikke er kommet videre :p

Og kode er ikke kan opgraderes er jo typisk dårlig kode.
Gravatar #23 - arne_v
17. aug. 2021 19:54
#22

Fritids kode ikke arbejds kode.

Jeg tror faktisk aldrig at jeg har lavet arbejds kode i C++. Fortran, Compass, Macro-32, Pascal, C, Java, JPL men aldrig C++.

Og 14 år siden at jeg har lavet arbejds kode i noget som helst.

Gravatar #24 - arne_v
17. aug. 2021 19:59
#22

C++ 98 kode bør compile med en C++ 20 compiler, da 11, 14, 17 og 20 næsten ingenting har fjernet.

register keyword er gone, men det har aldrig været bruget meget i C++.
Gravatar #25 - Claus Jørgensen
17. aug. 2021 23:57
#23

heh, så jeg har kodet mere C++ på arbejde end dig? det kommer lidt som en overraskelse
Gravatar #26 - Claus Jørgensen
18. aug. 2021 00:00
arne_v (24) skrev:
#22

C++ 98 kode bør compile med en C++ 20 compiler, da 11, 14, 17 og 20 næsten ingenting har fjernet.

register keyword er gone, men det har aldrig været bruget meget i C++.
Endnu en grund til at folk burde brugte det nyeste, i så fald!
Gravatar #27 - arne_v
18. aug. 2021 15:12
Claus Jørgensen (25) skrev:
#23

heh, så jeg har kodet mere C++ på arbejde end dig? det kommer lidt som en overraskelse


Ja. 1 linie er nok til det.

:-)

Det er ikke fordi at jeg ikke har brugt C++. Jeg har brugt en del C++:
- opgave på universitetet omkring 1990
- open source projekter (heriblandt et sen-90'er meget ambitiøst "cross platform super bibliotek" projekt)
- spørgsmål på eksperten.dk
- eksempler til mine artikler

En hurtig optælling på min PC siger ca. 90000 linier kode.


Gravatar #28 - arne_v
18. aug. 2021 15:23
Claus Jørgensen (26) skrev:
arne_v (24) skrev:
#22

C++ 98 kode bør compile med en C++ 20 compiler, da 11, 14, 17 og 20 næsten ingenting har fjernet.

register keyword er gone, men det har aldrig været bruget meget i C++.
Endnu en grund til at folk burde brugte det nyeste, i så fald!


De typiske problemer ved opdatering må være:
- ikke gyldig C++ kode som bare blev accepteret af den gamle compiler men hvor en nyere compiler korrekt flagger koden ikke gyldig C++
- undefined behavior kode som med den gamle compiler tilfældigvis virkede men som med en nyere mere optimerende compiler ikke virker

https://en.wikipedia.org/wiki/C%2B%2B11#Features_r...
https://en.wikipedia.org/wiki/C%2B%2B17#Removed
https://en.wikipedia.org/wiki/C%2B%2B20#Removed_fe...

bør ihvertfald ikke give nogen problemer.

Stort set ingen har brugt register keyword i C++ (eller i C kode der er mindre end 30 år gammel).

Trigraphs? Stort set ingen har brugt dem i hverken C eller C++ nogensinde. (ja nogen må have brugt dem siden IBM forsvarede dem, men jeg har aldrig hørt om nogen som har brugt dem)

Gravatar #29 - larsp
18. aug. 2021 17:14
arne_v (28) skrev:
Trigraphs? Stort set ingen har brugt dem i hverken C eller C++ nogensinde. (ja nogen må have brugt dem siden IBM forsvarede dem, men jeg har aldrig hørt om nogen som har brugt dem)

Dem er jeg godt nok heller aldrig stødt på.

Prøvede lige digraphs og trigraphs med min lokale gcc:


#include <stdio.h>

int main(int argc, char *argv[])
{
printf("Hallo fra %s (1)\n", argv[0]); // Virker som forventet
printf("Hallo fra %s (2)\n", argv<:0:>); // Virker(!)
printf("Hallo fra %s (3)\n", argv??(0??)); // Virker kun med -trigraphs
return 0;
}

---

$ gcc --version
gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0


Endnu en faldgrube mht. parsing at være opmærksom på i C. Og endnu en åben dør mht. at obfuskere C kode, dejligt ...
Gravatar #30 - Claus Jørgensen
18. aug. 2021 18:14
arne_v (27) skrev:

En hurtig optælling på min PC siger ca. 90000 linier kode.
Af "ny" kode jeg har nok kun skrevet et par tusinde.

Hvis vi inkludere autogenerated templates så er det nærmere 10k

Og hvis vi inkludere C++ kode jeg har arbejdet på og rettet i... så snakker vi om 10+ millioner LOC :P
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login