Tags Posts tagged with "clang"

clang

przez -
2 1204
LLVM

Tom Stellard ogłosił wydanie LLVM 3.6 razem z frontendem kompilatora dla języków C, C++ oraz Objective-C – Clang 3.6. Projekt LLVM obejmuje narzędzia takie jak kompilator języków C/C++/Objective-C – Clang, bibliotekę kompilatora czasu pracy (runtime compiler) compiler-rt, niskopoziomowy debugger LLDB, biblioteka standardowa libc++ dla C++ i VMKit JVM używająca LLVM dla kompilacji statycznej i JIT. Projekt jest aktualnie konkurencją dla kompilatora GCC, prace nad nim są sponsorowane przez Apple, a wszystko wydawane jest na licencji BSD.

Najważniejsze zmiany, jakie zaszły:

  • Pojawiło się sporo udoskonaleń względem architektury MIPS. Dodano obsługę MIPS-II i MIPS-II, zgodność ABI z GCC dla big/little endian O32/N32/N64 i wiele więcej
  • Dodano ulepszenia w kwestii backendu AMD GPU
  • Sporo pracy włożono w projekt LLVMLinux, który pozwala na pełną kompilację jądra Linux, jednakże nadal potrzebne są łatki
  • Dodano odpowiednie dowiązania dla języka Go
  • Udoskonalono sporo w kwestii Clang na systemach Windows. Pojawiła się opcja samodzielnego hostowania z użyciem środowiska programistycznego Microsoft Visual C na 32 i 64 bitowych architekturach
  • Pełna zgodność ze standardem C++11 i C++14 w Clangu
  • Rozpoczęto prace nad obsługą standardu C++17, dzięki czemu Clang 3.6 wspiera sporo nowości z niego

przez -
3 493
KDevelop

Zespół KDevelop od jakiegoś czasu pracuje nad nową wtyczką Clang do obsługi C++. Pomysłodawcą tego jest Olivier JG, który zauważył, że bazowy kod obecnego parsera C++ wynosi ponad 55 tysięcy linii kodu i jest coraz trudniejszy w zarządzaniu. Szczególnie, jeżeli chodziło o dodawanie nowych funkcji ze specyfikacji C++11. Wtyczka kdev-clang posiada aktualnie 2000 linii kodu, oraz dodatkowe 600 linii różnych testów, co jest naprawdę imponującą poprawą.

Wtyczka Clang jest o wiele szybsza, aniżeli wbudowany parser C++, ze świetną obsługą wielozadaniowości.

Co jest aktualnie wspierane:

  • Parsowanie pełnych projektów, wspierane są wszystkie funkcje C++, które obsługuje Clang
  • Podświetlana składnia
  • Przeglądanie kodu
  • Podstawowe uzupełnianie kodu, włączając w to makra
  • Wbudowana diagnostyka Clang, wspierana jest nawet nawigacja pomiędzy zagnieżdżoną diagnostyką

Czego brakuje:

  • Asystenci: zmian nazwy, dodawanie typu, synchronizacja sygnatur
  • Przebudowywanie: przenoszenie do źródła, zmiana nazwy
  • Zaawansowane uzupełnianie kodu: zaimplementowane funkcje, nadpisywanie wirtualnych funkcji
  • Kontekstowe przeglądanie dla makr
  • Przełączanie się do czystego C, wsparcie dla Objective-C

przez -
6 531
LLVM

Tom Stellard ogłosił wydanie LLVM 3.4 razem z frontendem kompilatora dla języków C, C++ oraz Objective-C – Clang 3.4. Projekt LLVM obejmuje narzędzia takie jak kompilator języków C/C++/Objective-C – Clang, bibliotekę kompilatora czasu pracy (runtime compiler) compiler-rt, niskopoziomowy debugger LLDB, biblioteka standardowa libc++ dla C++ i VMKit JVM używająca LLVM dla kompilacji statycznej i JIT. Projekt jest aktualnie konkurencją dla kompilatora GCC, prace nad nim są sponsorowane przez Apple, a wszystko wydawane jest na licencji BSD.

Co znajdziemy w tym wydaniu:

  • Backend LLVM dla AMD R600 GPU został domyślnie włączony i nie jest już oznaczony, jako eksperymentalny.
  • Pojawiła się obsługa karty graficznej AMD Sea Islands, a także zgodność OpenGL 3.0
  • Loop Vectorizer jest używany z poziomami optymalizacji -Os i -O2, zamiast -O3
  • Dodano nowy SLP Vectorizer dla poziomu optymalizacji -O3
  • Sporo pracy włożono w rozszerzenie i udoskonalenie dowiązań LLVM OCaml
  • Dodano obsługę architektury MIPS SIMD
  • Dokonano sporo udoskonaleń w backendzie PowerPC, w tym szybsza generacja kodu, wsparcie dla nowych funkcji procesora, naprawiono błędy itp
  • Dodano eksperymentalny backend SPARC V9, obsługę SPARC JIT i udoskonalono wsparcie architektury SPARC
  • Porzucono wsparcie dla starszych wydań Visual Studio. Jest to także ostatnie wydanie LLVM, budowane z użyciem kompilatora C++98, ponieważ twórcy chcą wykorzystać potencjał C++11
  • Udoskonalono obsługę AArch64
  • Udoskonalono debugger LLDB, w tym poprawiono kompatybilność z Linuksem
  • Udoskonalono Clang-cl, w tym naśladowanie Microsoft Visual Studio
  • Dowiązania OCaml powinny pokrywać się z praktycznie wszystkimi bibliotekami LLVM
  • Wskaźniki o różnych rozmiarach dla różnych przestrzeni adresowych powinny przyspieszyć karty graficznej
  • LLVM-ar używa od teraz nowej obiektowej biblioteki, dzięki czemu potrafi tworzyć tabele symboli w formacie GNU

przez -
6 490
Konsola

Leaning Technologies opublikowała źródła kompilatora Duetto, który potrafi kompilować kod C++ do aplikacji webowych HTML5 i JavaScript. Duetto oparty jest na projekcie LLVM/Clang i ma za zadanie umożliwić pisanie aplikacji dla przeglądarek internetowych, z użyciem języka C++. Bardzo podobnym do niego projektem jest EmScripten, który wykorzystano przy przenoszeniu Unreal Engine 3, Unigine Sanctuary oraz BananaBread na przeglądarkę Firefox.

Duetto posiada następujące funkcje:

  • Jest w pełni skalowalny i posiada solidny kod
  • Ma bezpośredni dostęp do wszystkich API w przeglądarce internetowej
  • Używa Clanga o dużej niezawodności
  • LLVM optymalizuje do efektywnego kodu JavaScript
  • Obiekty C++ są mapowane bezpośrednio do obiektów JavaScript

Duetto będzie dostępny na wolnej licencji na GitHubie oraz w niedługim czasie zostanie wypuszczona specjalna komercyjna licencja, z zamkniętymi rozwiązaniami.

przez -
16 719
LLVM

Na konferencji LinuxCon North America, która odbyła się w dniach 16 – 18 września 2013 roku, Behan Webster przedstawił obecne prace nad projektem LLVMLinux. Chodzi mianowicie o umożliwienie pełnej i bez błędów kompilacji jądra Linux z użyciem LLVM i Clang. Owe narzędzia są wykorzystywane m.in. przez Apple, nVidia, Intel, Google, a nawet Debiana. Dodatkowo LLVM 3.3 i Clang 3.3, jako jedne z pierwszych narzędzi obsługiwały w pełni standard C++11.

Oto najważniejsze punkty z prezentacji:

  • LLVM 3.3 i Clang 3.3 posiadają już odpowiednie wsparcie, aczkolwiek zintegrowany asembler Clang jest nadal wyłączony
  • LLVM 3.3 i Clang 3.3 potrafią już kompilować jądro Linux, jednakże nadal potrzebne jest dodanie kilku łatek spoza głównego drzewa jądra Linux.
  • Deweloperzy LLVM na bieżąco obserwują zmiany w jądrze, dzięki czemu mogą cały czas wprowadzać zmiany w kodzie
  • Można pomóc w rozwoju, poprzez testowanie łatek, zgłaszanie błędów, pracą nad nowymi funkcjami lub zgłoszeniem własnych poprawek

przez -
1 354
LLVM

Firma Apple od długiego czasu rozwija projekt LLVM, który jest zestawem różnych narzędzi do kompilacji. Dzięki frontendowi Clang posiada on obsługę języków C, C++ oraz Objective-C. Aby móc przenosić clang++ na inne platformy, które nie posiadają system unwinder, Apple uwolniło swoją implementację unwinder dla LLVM na podwójnej licencji: LLVM i X11. Kod został już dodany do projektu libcxxabi.llvm.org i będzie odpowiadał za obsługę wyjątków.

przez -
6 513
LLVM

Chris Lattner ogłosił wydanie LLVM 3.3 razem z front-end kompilatora dla języków C, C++ oraz Objective-C Clang 3.3. Projekt LLVM obejmuje narzędzia takie jak kompilator języków C/C++/Objective-C – Clang, bibliotekę compiler-rt (“compiler-rt” Runtime Library), niskopoziomowy debugger LLDB, biblioteka standardowa libc++ dla C++ i VMKit JVM używająca LLVM dla kompilacji statycznej i JIT. Celem projektu jest stworzenie alternatywy dla kompilatora z projektu GCC. Prace nad projektami sponsorowane są przez Apple, a wszystko wydawane jest na licencji BSD.

Zmiany, jakie zaszły:

  • Pojawił się backend procesora graficznego AMD R600
  • Dodano wsparcie dla AArch64
  • Dodano nowy wektoryzator (Vectorizer): Superword-Level Parallelism
  • Udoskonalono wektoryzer pętli (Loop Vectorizer), czyli zamiana operacji w pętli na operacje wektorowe (wiele na raz), który został wprowadzony w LLVM 3.2 i Clang 3.2
  • Kompilator Clang C/C++ jest zgodny ze standardem C++11
  • Udoskonalono mikroarchitekturę x86, np. dodano obsługę AVX2

przez -
0 456
LLVM

Deweloperzy projektu LLVM ogłosili, że Clang otrzymał pełną obsługę standardu C++11. Do tej pory jedynie GCC 4.8 posiadało pełną implementację specyfikacji języka C++11. W czerwcu tego roku powinniśmy ujrzeć stabilną wersję LLVM 3.3 i Clang 3.3, a aktualnie rozpoczęły się prace nad dodawaniem funkcji C++1y, który to standard powinien pojawić się w 2014 roku.

Polecane

OSWorld

6 1169
Drodzy Czytelnicy, prowadzimy portal OSWorld.pl już ponad 10 lat. Z przykrością stwierdzamy, że mamy na niego coraz mniej czasu, dlatego chcielibyśmy przekazać prowadzenie serwisu osobie...