सेवा के बारे में
अनुवादितमैं ज़िग में सिस्टम सॉफ़्टवेयर विकसित करता हूँ और हर बाइट और चक्र को कुछ ऐसा मानता हूँ जिसे औचित्य की आवश्यकता होती है। मैनुअल मेमोरी प्रबंधन मेरे काम की नींव है: मैं स्पष्ट रूप से आवंटक पास करता हूँ, जहाँ उपयुक्त हो वहाँ एक एरिना या निश्चित बफर चुनता हूँ, और डिलीवरी से पहले लीक और डबल-फ्री की अनुपस्थिति को साबित करने के लिए ज़िग के परीक्षण आवंटक को चलाता हूँ। यदि आपके पास पहले से ही एक सी या सी++ कोडबेस है, तो मैं ज़िग को सीधे उसमें एम्बेड करता हूँ। ज़िग लगभग बिना किसी घर्षण के सी हेडर को जोड़ता है, इसलिए मैं एक तैयार पुस्तकालय को लपेट सकता हूँ, एक गर्म मॉड्यूल को बदल सकता हूँ या पूरे प्रोजेक्ट के लिए `zig cc` को क्रॉस-कंपाइलर के रूप में उपयोग कर सकता हूँ। क्रॉस-कंपाइलेशन वह जगह है जहाँ ज़िग चुपचाप जीतता है, और मैं इसका सक्रिय रूप से उपयोग करता हूँ: एक मशीन से मैं लिनक्स, मैकओएस, विंडोज, एआरएम बोर्ड और बिना किसी नाजुक टूलचेन के लिए बाइनरी बनाता हूँ। एम्बेडेड पक्ष पर मैं माइक्रोकंट्रोलर्स के लिए फर्मवेयर लिखता हूँ जिनकी RAM सीमाएँ कड़ी होती हैं, बिना एक हीप के जहाँ लक्ष्य इसकी अनुमति नहीं देता, और पूर्वानुमानित इंटरप्ट पथों के साथ। वेब के लिए मैं ज़िग को वेबएसेम्बली में संकलित करता हूँ ताकि भारी गणना, पार्सर और कोडेक्स को जावास्क्रिप्ट से कुछ छोटे और तेज़ में स्थानांतरित किया जा सके। कॉम्पटाइम मेरा पसंदीदा उपकरण है: मैं तालिकाएँ उत्पन्न करता हूँ, डेटा संरचनाओं को विशेषीकृत करता हूँ और संकलन समय पर कॉन्फ़िगरेशन को मान्य करता हूँ ताकि रनटाइम ईमानदार रहे और बाइनरी संक्षिप्त रहे। डिलीवरी में आमतौर पर स्रोत, कार्यशील `build.zig`, यूनिट परीक्षण, बेंचमार्क और मेमोरी और सुरक्षा निर्णयों पर एक संक्षिप्त नोट शामिल होता है। मैंने पार्सर, आवंटक, प्रोटोकॉल कोडेक्स और MCU फर्मवेयर भेजा है और कोड के समान ही हैंडऑफ को महत्व देता हूँ। लक्ष्य और सीमाओं का वर्णन करें — मैं ईमानदारी से कहूँगा कि ज़िग आपको क्या देगा।