პროგრამირების ენა Zig-ის გუნდმა დეველოპმენტის ბლოგზე ახალი ფუნქციების შესახებ დეტალური ინფორმაცია გაავრცელა. განახლებები, რომლებიც 0.17.0 ვერსიის მოახლოებასთან ერთად ხდება აქტუალური, ძირითადად კომპილაციის სისწრაფესა და ბილდ-სისტემის ეფექტიანობაზეა ორიენტირებული.

ახალი ELF ლინკერის პროგრესი

მეთიუ ლაგმა, Zig-ის ერთ-ერთმა წამყვანმა დეველოპერმა, აღნიშნა, რომ 0.16.0 ვერსიაში დანერგილი ახალი ELF ლინკერი საგრძნობლად დაიხვეწა. თავდაპირველად ეს ინსტრუმენტი მხოლოდ შეზღუდულ სცენარებში მუშაობდა, თუმცა დღეს ის უკვე საკმარისად მძლავრია Zig-ის კომპილერის LLVM-ით ასაგებად.

ლინკერის მთავარი უპირატესობა სწრაფი ინკრემენტული კომპილაციაა. x86_64 Linux სისტემებზე დეველოპერებს უკვე შეუძლიათ ცვლილებების შეტანა და პროექტის გადაწყობა პერფორმანსის დაკარგვის გარეშე. მიუხედავად იმისა, რომ DWARF დებაგინგის მხარდაჭერა ჯერ კიდევ მუშავდება, მყისიერი განახლებები მნიშვნელოვნად ამარტივებს ყოველდღიურ მუშაობას.

ბილდ-სისტემის რადიკალური ცვლილება

ენდრიუ კელიმ, Zig-ის შემქმნელმა, წარადგინა მნიშვნელოვანი არქიტექტურული ცვლილება: ბილდ-სისტემის პროცესის დაყოფა „კონფიგურატორად“ და „შემქმნელად“ (maker). მანამდე build.zig ფაილები ერთიან, მძიმე პროცესში იკომპილირებოდა.

ახალი მიდგომით, სისტემა:

  • ახდენს build.zig-ის ლოგიკის სერიალიზაციას ბინარულ ფაილში.
  • იყენებს გლობალურ ქეშს „შემქმნელი“ პროცესის დასაჩქარებლად.
  • ავტომატურად თიშავს ზედმეტ გადაანგარიშებებს, თუ კონფიგურაცია არ შეცვლილა.

ეს ცვლილება ამცირებს დროს, რომელიც კომპილაციისთვისაა საჭირო, განსაკუთრებით მაშინ, როდესაც დეველოპერი იყენებს --watch ან სხვა მსგავს რეჟიმებს.

LLVM Backend-ის გაუმჯობესება

გარდა ამისა, მეთიუ ლაგმა LLVM-ის მხარდაჭერაშიც შეიტანა ცვლილებები. მიუხედავად იმისა, რომ LLVM-ის ობიექტების ემიტის დრო კვლავ დამოკიდებულია თავად LLVM-ზე, Zig-ის კომპილერის შიდა ლოგიკის ოპტიმიზაციამ შეცდომების გამოვლენის პროცესი დააჩქარა.

მომხმარებლებს, რომლებიც უკვე იყენებენ Zig-ის master ვერსიას, შეუძლიათ გამოსცადონ -fincremental --watch ფლაგები, რათა თავად დარწმუნდნენ კომპილაციის სისწრაფეში. პროექტის გუნდი 0.17.0 ვერსიას უახლოეს კვირებში გამოუშვებს, რაც ახალი შესაძლებლობების ფართო აუდიტორიისთვის გახდება ხელმისაწვდომი.