सेवा के बारे में
अनुवादितमैं Chez Scheme में युद्ध-परीक्षित कोड लिखता हूँ उन टीमों के लिए जिन्हें असली मूल गति की आवश्यकता होती है, न कि एक इंटरप्रेटर जो केवल डेमो में अच्छा दिखता है। पिछले नौ वर्षों में मैंने Chez Scheme में कंपाइलर, रनटाइम उपकरण, और दीर्घकालिक सेवाएँ भेजी हैं, जिसमें Racket बैकएंड के तहत सीधे काम शामिल है जहाँ Chez Scheme मुख्य लोड उठाता है। यदि आपके पास एक संख्यात्मक कोर, पार्सर, नियम इंजन, या डेटा पाइपलाइन है जो एक स्क्रिप्टिंग भाषा में बहुत धीमी है, तो मैं इसे Chez Scheme में पोर्ट करूँगा और इसे हाथ से लिखे गए C के लगभग उतनी ही तेजी से चलाऊँगा।
हर दिन मैं पूर्ण R6RS सतह का उपयोग करता हूँ: साफ पुस्तकालय संरचना, चरण आयात, उचित रिकॉर्ड प्रकार, स्थिति पदानुक्रम, और पोर्टेबल I/O। मैं मैक्रो सिस्टम में गहराई से सहज हूँ - मैं सिंटैक्स-नियमों के साथ स्वच्छ रूपांतरण लिखता हूँ और पूर्ण सिंटैक्स-केस ट्रांसफार्मर, छोटे एम्बेडेड DSL बनाता हूँ, और गंदे मैक्रोज़ को इस तरह से सुलझाता हूँ कि वे पूर्वानुमानित रूप से विस्तारित हों और तेजी से संकलित हों। जब प्रदर्शन महत्वपूर्ण होता है, तो मैं मशीन कोड पढ़ता हूँ जो Chez Scheme उत्पन्न करता है, ऑप्टिमाइजेशन स्तरों को ट्यून करता हूँ, आवंटन को कम करता हूँ, फ्लोनम और फिक्सनम विशेषीकरण लागू करता हूँ, और असुरक्षित प्राइमिटिव्स को केवल वहाँ कॉल करता हूँ जहाँ सिद्ध रूप से सही हो।
एम्बेडिंग और इंटरऑपरेबिलिटी मेरे काम का एक बड़ा हिस्सा हैं। मैं Chez Scheme को C और Rust के साथ इसके विदेशी कार्य इंटरफेस के माध्यम से बाइंड करता हूँ, स्कीम को एक बड़े होस्ट के अंदर एक स्क्रिप्टिंग परत बनाता हूँ, और बूट फ़ाइलों और ऑब्जेक्ट कोड को इस तरह पैक करता हूँ कि तैनाती एकल कलाकृति हो। मैं थ्रेड्स, कस्टोडियन-शैली संसाधन प्रबंधन, सिग्नल हैंडलिंग, और उन सेवाओं के लिए सुचारू शटडाउन भी संभालता हूँ जिन्हें महीनों तक जीवित रहना होता है।
एक सामान्य परिणाम: एक कार्यशील और मापी गई मॉड्यूल या सेवा, एक पठनीय परीक्षण सूट, निर्माण स्क्रिप्ट, और वास्तुकला और विस्तार बिंदुओं का वर्णन करने वाला एक संक्षिप्त दस्तावेज़। मैं पहले और बाद में प्रोफाइल करता हूँ, इसलिए गति में सुधार मापे जाते हैं, न कि दावा किए जाते हैं। मुझे धीमा कोड या एक मोटा स्पेक भेजें - और मैं ईमानदारी से कहूँगा कि क्या Chez Scheme यहाँ फिट बैठता है और क्या वास्तविक लाभ संभव है।
हर दिन मैं पूर्ण R6RS सतह का उपयोग करता हूँ: साफ पुस्तकालय संरचना, चरण आयात, उचित रिकॉर्ड प्रकार, स्थिति पदानुक्रम, और पोर्टेबल I/O। मैं मैक्रो सिस्टम में गहराई से सहज हूँ - मैं सिंटैक्स-नियमों के साथ स्वच्छ रूपांतरण लिखता हूँ और पूर्ण सिंटैक्स-केस ट्रांसफार्मर, छोटे एम्बेडेड DSL बनाता हूँ, और गंदे मैक्रोज़ को इस तरह से सुलझाता हूँ कि वे पूर्वानुमानित रूप से विस्तारित हों और तेजी से संकलित हों। जब प्रदर्शन महत्वपूर्ण होता है, तो मैं मशीन कोड पढ़ता हूँ जो Chez Scheme उत्पन्न करता है, ऑप्टिमाइजेशन स्तरों को ट्यून करता हूँ, आवंटन को कम करता हूँ, फ्लोनम और फिक्सनम विशेषीकरण लागू करता हूँ, और असुरक्षित प्राइमिटिव्स को केवल वहाँ कॉल करता हूँ जहाँ सिद्ध रूप से सही हो।
एम्बेडिंग और इंटरऑपरेबिलिटी मेरे काम का एक बड़ा हिस्सा हैं। मैं Chez Scheme को C और Rust के साथ इसके विदेशी कार्य इंटरफेस के माध्यम से बाइंड करता हूँ, स्कीम को एक बड़े होस्ट के अंदर एक स्क्रिप्टिंग परत बनाता हूँ, और बूट फ़ाइलों और ऑब्जेक्ट कोड को इस तरह पैक करता हूँ कि तैनाती एकल कलाकृति हो। मैं थ्रेड्स, कस्टोडियन-शैली संसाधन प्रबंधन, सिग्नल हैंडलिंग, और उन सेवाओं के लिए सुचारू शटडाउन भी संभालता हूँ जिन्हें महीनों तक जीवित रहना होता है।
एक सामान्य परिणाम: एक कार्यशील और मापी गई मॉड्यूल या सेवा, एक पठनीय परीक्षण सूट, निर्माण स्क्रिप्ट, और वास्तुकला और विस्तार बिंदुओं का वर्णन करने वाला एक संक्षिप्त दस्तावेज़। मैं पहले और बाद में प्रोफाइल करता हूँ, इसलिए गति में सुधार मापे जाते हैं, न कि दावा किए जाते हैं। मुझे धीमा कोड या एक मोटा स्पेक भेजें - और मैं ईमानदारी से कहूँगा कि क्या Chez Scheme यहाँ फिट बैठता है और क्या वास्तविक लाभ संभव है।