Ho lokolloa ha LLVM 16.0 compiler suite

Kamora likhoeli tse ts'eletseng tsa nts'etsopele, ho hlahisoa tokollo ea projeke ea LLVM 16.0 - sesebelisoa sa lisebelisoa se lumellanang le GCC (li-compilers, optimizers le lijenereithara tsa khoutu) tse bokellang mananeo ka har'a bitcode ea lipakeng tsa RISC-joaloka litaelo tse hlakileng (mochini oa boemo bo tlase o nang le mokhoa oa ho ntlafatsa maemo a mangata). Khoutu ea pseudo e hlahisitsoeng e ka fetoloa ke moqapi oa JIT hore e be litaelo tsa mochini hantle ka nako ea ts'ebetso ea lenaneo.

Lintlafatso tse kholo ho Clang 16.0:

  • Tekanyetso ea kamehla ea C++/ObjC++ e behiloe ho gnu++17 (eo pele e neng e le gnu+++14), ho bolelang hore likarolo tsa C++17 tse nang le li-extensions tsa GNU li tšehetsoa ke kamehla. Khetho ea "-std=gnu+++14" e ka sebelisoa ho khutlela boitšoarong bo fetileng.
  • E kentse tšebetsong likarolo tse tsoetseng pele tse amanang le maemo a C++20:
    • Mesebetsi e sa reng letho ea setho,
    • ho ts'oara litlamo tse hlophisitsoeng mesebetsing ea lambda,
    • Equality operator ka har'a lipolelo,
    • Bokhoni ba ho siea lebitso la sehlooho la mantsoe maemong a mang,
    • E lumella ho qalisoa ha kakaretso ka masakaneng ("Aggr(val1, val2)").
  • Likarolo tse hlalositsoeng nakong e tlang ea C++2b li se li kentsoe tšebetsong:
    • Ho lumelloa ho beha lileibole qetellong ea mantsoe a kopaneng,
    • static operator(),
    • mokhanni ea tsitsitseng[],
    • Ho lumellana le mofuta oa char8_t ho netefalitsoe,
    • Mefuta e fapaneng ea litlhaku e lumelletsoeng ho sebelisoa ho "\N{…}" e ekelitsoe.
    • E kentse bokhoni ba ho sebelisa mefuta e phatlalalitsoeng e le "static constexpr" mesebetsing e phatlalalitsoeng e le constexpr.
  • Likarolo tse hlalositsoeng nakong e tlang ea C2x C li se li kentsoe tšebetsong:
    • Ho tima temoso ea "-Wunused-label", "[mohlomong_unused]" e ka sebelisoa ho li-labels,
    • E lumelloa ho beha lileibole kae kapa kae ka har'a mantsoe a kopaneng,
    • E kenyellelitse mofuta oa mofuta le mefuta ea_e sa lekanang,
    • Mofuta o mocha oa nullptr_t le nullptr constant ho hlalosa null pointers, e fetolehang ho mofuta ofe kapa ofe oa pointer mme e emela mofuta o fapaneng oa NULL o sa tlamelletsoeng ho mefuta e felletseng le e sa sebetseng.
    • Ka mokhoa oa C2x, ho letsetsa va_start macro ka palo e fapaneng ea likhang (variadic) ho lumelloa.
  • Mekhoeng ea ho lumellana le C99, C11, le C17, khetho ea -Wimplicit-function-declaration le -Wimplicit-int joale e hlahisa phoso ho fapana le temoso ka ho sa feleng.
  • Tšebeliso e sa tobang ea "void *" (mohl. "void func(void *p) { *p; }") ho C++ mode joale e hlahisa phoso, e ts'oanang le ISO C++, GCC, ICC le MSVC.
  • Ho hlakisa likaroloana tsa li-bit joalo ka lits'ebetso tsa litaelo (mohlala "__asm ​​​​{mov eax, s.bf }") ho li-block tsa setaele sa Microsoft tsa inline assembler joale ho hlahisa phoso.
  • Litlhahlobo tse ekelitsoeng bakeng sa boteng ba meaho e fapaneng le litloaelano tse nang le mabitso a ts'oanang mejuleng e fapaneng.
  • Bokhoni bo atolositsoeng bo amanang le tšehetso ea OpenCL le OpenMP. Litlhahlobo tse ntlafalitsoeng tsa litempele tsa C++ tse sebelisoang lipuisanong tsa kernel ea OpenCL. Ts'ehetso e ntlafalitsoeng bakeng sa boloko ba sebaka sa mela ea AMDGPU. Nonwind e kenyellelitsoe ka mokhoa o hlakileng mesebetsing eohle. Tšehetso e ntlafetseng bakeng sa mesebetsi e hahiloeng.
  • E fane ka bokhoni ba ho sebelisa CLANG_CRASH_DIAGNOSTICS_DIR e feto-fetohang ho hlakisa buka eo ho eona ho bolokoang lintlha tsa tlhahlobo ea ho oa.
  • Tšehetso ea Unicode e nchafalitsoe ho Unicode 15.0. Matshwao a mang a dipalo a se a dumelletswe ho ditlhahiso, jwalo ka "₊" (mohlala, "double xₖ₊₁").
  • Ts'ehetso e ekelitsoeng bakeng sa ho kenya lifaele tse ngata tsa tlhophiso (lifaele tsa tlhophiso tsa kamehla li kentsoe pele, li lateloe ke tse boletsoeng ka "--config=" folakha, eo joale e ka hlalosoang makhetlo a mangata). Taelo ea kamehla ea ho kenya lifaele tsa tlhophiso e fetotsoe: Clang pele o leka ho kenya faele ea - .cfg, 'me haeba e sa fumanoa e leka ho kenya lifaele tse peli .cfg le .cfg. E kentse folakha ea "-no-default-config" ho tima ho kenya lifaele tsa tlhophiso ka mokhoa o ikhethileng.
  • Ho etsa bonnete ba hore meaho e ka phetoa, ho se ho tsebisitsoe bokhoni ba ho khutlisa letsatsi le linako tsa __DATE__, __TIME__, le __TIMESTAMP__ ka nako e boletsoeng ho SOURCE_DATE_EPOCH.
  • Ho lekola boteng ba mesebetsi e hahiloeng e ka sebelisoang molemong oa li-constants, ho kenyellelitsoe macro "__has_constexpr_builtin".
  • E kentse folakha e ncha "-fcoro-aligned-allocation" bakeng sa kabo e tsamaellanang ea liforeimi tsa coroutine.
  • " -fstrict-flex-arrays = " folakha e sebelisa ts'ehetso bakeng sa boemo ba boraro ba ho hlahloba litho tse feto-fetohang ka har'a mehaho (Flexible Array Members, mefuta e mengata ea boholo bo sa hlalosoang qetellong ea mohaho). Boemong ba boraro, ke boholo ba "[]" feela (mohlala, "int b[]") bo tšoaroang e le sehlopha se feto-fetohang, ha boholo ba "[0]" (mohlala, "int b[0]") ha bo joalo.
  • E kentse folakha ea "-fmodule-output" ho nolofalletsa mofuta o le mong oa ho kopanya oa likarolo tse tloaelehileng tsa C++.
  • E kentse "-Rpass-analysis=stack-frame-layout" mokhoa, e leng ho lumellang ho hlahloba mathata ka sebopeho sa foreimi ea stack.
  • E kentse tšobotsi e ncha __attribute__((target_version(«cpu_features»)))) le ts'ebetso e atolositsoeng ea tšobotsi __attribute__((target_clones(«cpu_features1″,»cpu_features2»,…))) ho khetha mefuta e ikhethileng ea likarolo tse fanoeng ke CPU64.
  • Lisebelisoa tse atolositsoeng tsa tlhahlobo:
    • Tlhokomeliso e ekelitsoeng "-Wsingle-bit-bitfield-constant-conversion" ho lemoha ho fokotseha ho hlakileng ha o abela e 'ngoe ho "bitfield" e saenneng e le 'ngoe.
    • Tlhahlobo e atolositsoeng ea mefuta e sa tsejoeng ea constexpr.
    • E kentse litemoso tsa "-Wcast-function-type-strict" le "-Wincompatible-function-pointer-types-strict" ho khetholla mathata a ka bang teng ka mefuta ea ts'ebetso.
    • Litlhahlobo tse kentsoeng bakeng sa ho sebelisa mabitso a mojule a fosahetseng kapa a bolokiloeng li-block tsa kantle ho naha.
    • Ntlafatso ea ho lemoha ha mantsoe a bohlokoa a "auto" a sieo litlhalosong.
    • Ts'ebetsong ea temoso ea "-Winteger-overflow" e ntlafalitsoe ho hlahloba maemo a eketsehileng a lebisang ho khaphatseha.
  • Tšehetso bakeng sa meralo ea litaelo tsa LoongArch (-march=loongarch64 kapa -march=la464) e kentsoe tšebetsong, e sebelisoang ho li-processor tsa Loongson 3 5000 le ho kenya ts'ebetsong RISC ISA e ncha e ts'oanang le MIPS le RISC-V.

Litlhahiso tsa bohlokoa ho LLVM 16.0:

  • Khoutu ea LLVM e lumelloa ho sebelisa likarolo tse hlalositsoeng ho C++17 standard.
  • Litlhoko tsa tikoloho ea kaho ea LLVM li ekelitsoe. Setsi sa lisebelisoa tsa ho aha se tlameha ho ts'ehetsa maemo a C++17, ke hore bonyane GCC 7.1, Clang 5.0, Apple Clang 10.0, kapa Visual Studio 2019 16.7 lia hlokahala bakeng sa ho aha.
  • Karolo e ka morao ea meralo ea AArch64 e ntlafalitsoe ho ts'ehetsa Cortex-A715, Cortex-X3 le Neoverse V2 CPUs, e kopanyang RME MEC (Memory Encryption Contexts), Armv8.3 extensions (Complex Number) le multiversioning (Function Multi Versioning).
  • ARM backend e theohile tšehetso bakeng sa lipehelo tsa Armv2, Armv2A, Armv3, le Armv3M, tseo tlhahiso e nepahetseng ea khoutu e neng e sa netefatsoa. Bokhoni ba ho hlahisa khoutu bakeng sa litaelo tsa ho sebetsa ka linomoro tse rarahaneng bo kentsoe.
  • X86 backend hona joale e tšehetsa li-ISA tse latelang: AMX-FP16, CMPCCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT. Ts'ehetso ea litaelo tsa RDMSRLIST, RMSRLIST, le WRMSRNS e kentsoe. Likhetho tsa "-mcpu=raptorlake", "-mcpu=meteorlake", "-mcpu=emeraldrapids", "-mcpu=sierraforest", "-mcpu=graniterapids", le "-mcpu=grandridge" li kentsoe tšebetsong.
  • E kentse tšehetso ea semmuso bakeng sa sethala sa LoongArch.
  • Likahare tse ntlafalitsoeng tsa meralo ea MIPS, PowerPC le RISC-V
  • Sesebelisoa sa ho lokisa liphoso sa LLDB jwale se tshehetsa ho lokisa liphoso tsa di-executable tsa 64-bit bakeng sa meralo ya LoongArch. Tshebetso e ntlafetseng ya matshwao a ho lokisa liphoso a COFF. Di-DLL tse kopitswang jwale di sefilwe ho tsoa lenaneng la mojaro. Windows-dimmojule.
  • Laebraring ea Libc ++, mosebetsi o ka sehloohong o ne o tsepamisitse maikutlo ho kenya ts'ehetso bakeng sa likarolo tse ncha tsa litekanyetso tsa C++20 le C++++23.
  • Sehokelo sa LDD se fokolitse nako ea khokahano haholo ka ho ts'oana le ts'ebetso ea ho fallisoa ha aterese le ts'ebetso ea ho qala likarolo. Ts'ehetso bakeng sa khatello ea karolo e sebelisang algorithm ea ZSTD e kentsoe.

Source: opennet.ru

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster