Վերադառնալ
Zig 0.17.0-ը վերամշակում և ընդլայնում է build համակարգը, հարթակների ու լեզվի աջակցությունը
SiTech AI Team2 րոպե ընթերցում

Zig 0.17.0-ը վերամշակում և ընդլայնում է build համակարգը, հարթակների ու լեզվի աջակցությունը

Zig 0.17.0-ը բերում է վերամշակված build համակարգ, բարելավված ELF linker, հարթակների ավելի լայն աջակցություն և լեզվի թարմացումներ, որոնք հինգ ամսվա աշխատանքի արդյունք են 206 ներդրողների և 925 commit-ի կողմից։

Թողարկման հիմնական բովանդակությունը

Zig 0.17.0-ը ներառում է հինգ ամսվա աշխատանք, որի ընթացքում 206 ներդրող կատարել է 925 commit։ Թողարկումը զգալիորեն փոխում է build համակարգը. առանձնացնում է maker գործընթացը configurer գործընթացից, վերամշակում է cache համակարգը, ներմուծում է configure cache poisoning և ավելացնում Build Server Protocol։ Այն նաև ընդլայնում է lazy dependency-ի և ֆորմատավորման ընտրանքները։

ELF linker-ն այնքան է բարելավվել, որ ինկրեմենտալ կոմպիլյացիան x86_64-linux-ի վրա պետք է աշխատի բոլորի համար։ Փաթեթների կառավարմանը ավելացվել են լոկալ path override-ներ, իսկ Windows-ի ռեսուրսների կոմպիլյացիան տեղափոխվել է արտաքին փաթեթ։

Թիրախների ավելի լայն աջակցություն

Հարթակի վրա աշխատանքը ներառում է նատիվ CI թեստավորում aarch64-openbsd-ի համար և pull request-ի CI aarch64-freebsd-ի ու aarch64-netbsd-ի համար։ Zig-ն իրականացնում է պարտադիր կոդի ամրապնդում aarch64-openbsd-ի համար, շրջանցում է LLVM-ի խնդիրը, որը վերաբերում է aarch64-windows բինարների մեծ մասին, և տրամադրում է stack trace-ներ կրաշների և ձախողված assertion-ների համար 32-բիթանոց ARM-ի ու SPARC-ի վրա։ Pointer authentication-ի opcode-ները այժմ մշակվում են AArch64-ի stack unwinding-ի ժամանակ։

Ավելացվել է աջակցություն loongarch32-linux-gnu թիրախների համար, իսկ 64-բիթանոց SPARC-ը հասել է ընդհանուր օգտագործելի կարգավիճակի։ Թիրախների տեղեկատվությունը ավելացվել է aarch64-switch-ի, arm-gba-ի, mipsel-psx-ի և powerpc-wiiu-ի համար։ xtensa-linux-ի շատ վաղ աջակցությունը հասանելի է C-ի կամ փորձարարական LLVM backend-ի միջոցով։ Ստանդարտ գրադարանը նույնպես ստացել է աջակցություն մի քանի սպեցիֆիկ Linux, OpenBSD և no-libc թիրախների համար։

Լեզվի և գրադարանի փոփոխություններ

Zig-ի պաշտոնական քերականությունն ու իրականացումը համապատասխանեցվել են միմյանց գեներացված ռեկուրսիվ վայրէջքային parser-ի միջոցով, որը օգտագործվում է որպես fuzzing oracle։ Այժմ @bitCast builtin-ը վերաինտերպրետացնում է արժեքի տրամաբանական բիթային ներկայացումը և նույն կերպ է վարվում թիրախի endianness-ից անկախ։ Դրա սեմանտիկան փոխվել է զանգվածների և վեկտորների համար, իսկ extern struct-երից կամ union-երից cast-երը այլևս չեն թույլատրվում։ Թողարկման նշումները խորհուրդ են տալիս ստուգել զանգվածների կամ վեկտորների օգտագործումը, քանի որ որոշ կոդ կարող է կոտրվել առանց կոմպիլյացիայի սխալի։

@cImport builtin-ը հեռացվել է, իսկ std.Build.Step.TranslateC-ն հայտարարվել է հնացած, և դրա փոխարեն խորհուրդ է տրվում պաշտոնական ZSF translate-c փաթեթի վրա բացահայտ կախվածություն։ Նոր @backingInt և @fromBackingInt builtin-ները փոխարինում են հնացած @intFromEnum և @enumFromInt builtin-ներին։ Zig 0.17.0-ը նաև ավելացնում է @SpirvType, ներմուծում է SafeAllocator և վերամշակում է StackFallbackAllocator-ը։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։