Geri qayıt
Zig 0.17.0 quruluşu yenidən işləyir, platforma və dil dəstəyini genişləndirir
SiTech AI Team2 dəq oxu

Zig 0.17.0 quruluşu yenidən işləyir, platforma və dil dəstəyini genişləndirir

Zig 0.17.0 build sistemini yenidən işləyir, ELF linkerini təkmilləşdirir, platforma dəstəyini genişləndirir və beş aylık inkişafdan sonra dil imkanlarını yeniləyir; burada 206 iştirakçı və 925 commit iştirak edib.

Buraxılışın əsas miqyası

Zig 0.17.0, 206 iştirakçı tərəfindən 925 commitdə yerinə yetirilən beş aylıq işi əhatə edir. Buraxılış build sistemini əhəmiyyətli dərəcədə dəyişir: maker prosesini configurer prosesindən ayırır, keş sistemini yenidən işləyir, configure cache poisoning tətbiq edir və Build Server Protocol əlavə edir. Həmçinin lazy dependency və formatləşdirmə seçimlərini genişləndirir.

ELF linkeri o səviyyəyə qədər təkmilləşdirilib ki, artan kompilyasiya, ehtimal ki, x86_64-linux üçün hamıya işləyir. Paket idarəetməsinə local path üzənmaları əlavə olunur, Windows resurslarının kompilyasiyası isə xarici paketə keçir.

Hədəflərin daha geniş örtülməsi

Platforma işlərinə aarch64-openbsd üçün native CI testləşdirməsi və aarch64-freebsd ilə aarch64-netbsd üçün pull request CI daxildir. Zig aarch64-openbsd üçün məcburi kod möhkəmləndirməsini həyata keçirir, LLVM-nın aarch64-windows ikiliklərinin əksərliyinə təsir edən problemini ötürür və 32-bit ARM ilə SPARC üçün qırılmalar və uğursuz assertionlar üçün stack trace təmin edir. Pointer authentication opcode-ları indi AArch64 stack unwinding zamanı işləyir.

loongarch32-linux-gnu hədəfləri üçün dəstək əlavə olundu, 64-bit SPARC isə ümumi istifadə statusuna çatdı. aarch64-switch, arm-gba, mipsel-psx və powerpc-wiiu üçün hədəf məlumatı əlavə olundu. xtensa-linux üçün çox erkən dəstək C və ya eksperimental LLVM backend vasitəsilə əlçatandır. Standart kitabxana həmçinin bir neçə niş Linux, OpenBSD və no-libc hədəfi üçün dəstək əldə etdi.

Dil və kitabxana dəyişiklikləri

Zig-in formal qrammatikası və tətbiqi, fuzzing oracle kimi istifadə olunan yaradılmış recursive descent parser ilə uyğunlaşdırıldı. @bitCast builtin-i indi dəyərin məntiqi bit təsvirini yenidən şərh edir və hədəfin endianness-indən asılı olmadan eyni davranır. Onun semantikası massivlər və vektorlar üçün dəyişdi, extern struct-lərdən və union-lardan kastlar artıq icazə verilmir. Buraxılış qeydləri massivlərin və vektorların istifadəsini yoxlamağı tövsiyə edir, çünki bəzi kod kompilyasiya xətası olmadan qırıla bilər.

@cImport builtin-i silindi, std.Build.Step.TranslateC isə rəsmi ZSF translate-c paketinə açıq asılılıq üçün köhnəlmiş elan edildi. Yeni @backingInt və @fromBackingInt builtin-ləri köhnəlmiş @intFromEnum və @enumFromInt builtin-lərini əvəz edir. Zig 0.17.0 həmçinin @SpirvType əlavə edir, SafeAllocator təqdim edir və StackFallbackAllocator-i yenidən işləyir.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.