პროგრამირების ენების ეკოსისტემაში ახალი, საინტერესო ინსტრუმენტი გამოჩნდა. Chibil არის C ენის კომპილატორი, რომელიც ცნობილი chibicc-ის ბაზაზეა შექმნილი და სრულად არის გადაწერილი C#-ზე. მისი მთავარი დანიშნულება .NET IL-ის (MSIL) გენერირებაა, რაც C ენის კოდს .NET-ის პლატფორმაზე მუშაობის საშუალებას აძლევს.

პროექტის შესაძლებლობები საკმაოდ შთამბეჭდავია. დეველოპერებმა მოახერხეს Chibil-ის გამოყენება ლეგენდარული თამაშის, DOOM-ის (PureDOOM) გასაშვებად. ეს ადასტურებს, რომ კომპილატორი უკვე საკმარისად სტაბილურია რთული ამოცანების შესასრულებლად.

ტექნიკური მახასიათებლები

Chibil-ის მუშაობის პრინციპი ეფუძნება COFF OBJ ფაილების გენერირებას. ეს ფაილები ბინარულად თავსებადია Visual Studio-ს MSVC კომპილატორის მიერ შექმნილ ობიექტებთან, როდესაც ის მუშაობს /clr რეჟიმში. შედეგად, დეველოპერებს შეუძლიათ ერთმანეთს შეუთავსონ C++/CLI და Chibil-ის მიერ გენერირებული კოდი.

  • დიბაგინგი: ხაზების ნომრები და ლოკალური ცვლადები სრულად ფუნქციონირებს. შესაძლებელია C კოდის დეტალური გატარება .NET დიბაგერის საშუალებით.
  • ლინკერი: ამ ეტაპზე პროცესისთვის გამოიყენება Visual Studio-ს link.exe, თუმცა ავტორები გეგმავენ საკუთარი ლინკერის შექმნას, რათა თავი აარიდონ Windows-ზე დამოკიდებულებას.
  • Runtime: პროექტი მოიცავს C runtime ბიბლიოთეკის მინიმალურ ვერსიას, რომელიც უზრუნველყოფს სტანდარტული main ფუნქციის გაშვებას.

შეზღუდვები და პერსპექტივა

მიუხედავად წარმატებული სტარტისა, Chibil ჯერ კიდევ დამუშავების პროცესშია. მაგალითად, გენერირებული კოდი ხვდება გლობალურ სივრცეში, რაც ნიშნავს, რომ გარედან მასზე წვდომა ამ ეტაპზე მხოლოდ რეფლექსიის (Reflection) მეთოდებით არის შესაძლებელი.

დეველოპერებისთვის ხელმისაწვდომია სპეციალური დამხმარე ხელსაწყოებიც, როგორიცაა coffobjdumper, რომელიც .NET OBJ ფაილების ანალიზს ამარტივებს. ეს ინსტრუმენტი ავსებს არსებულ ხარვეზებს, რომლებსაც ILDASM ან dumpbin.exe ვერ ფარავს .NET მეტამონაცემების კუთხით.