TnFOX
टी. एन. एफ. ओ. एक्स. पोर्टेबिलिटी टूलकिट फॉक्स जी. यू. आई. टूलकिट का एक कांटा है जिसमें ऑर्थोगोनल विशेषताओं को लागू करने वाले अधिकांश जोड़े गए कोड होते हैं। फॉक्स एपीआई में पर्याप्त रूप से बदलाव नहीं करना) जैसे कि फॉक्स के लिए विकसित अनुप्रयोगों को आसानी से टीएनएफओएक्स के लिए फिर से संकलित किया जा सकता है। असामान्य रूप से, टीएनएफओएक्स में कुछ क्यूटी पुस्तकालय वर्गों के एपीआई अनुकरण भी शामिल हैं-लेखक के अनुसार, यह क्यूटी से फॉक्स तक एक महत्वपूर्ण परियोजना को पोर्ट करने के लिए किया गया था। अधिकांश जोड़ी गई सुविधाएँ एक पूर्ण "पोर्टेबिलिटी टूलकिट" लाइब्रेरी को इस तरह से लागू करती हैं कि कोई भी कहीं भी चलाने के लिए एक प्रोग्राम लिख सकता है-यह फॉक्स से अलग है जो ज्यादातर केवल जीयूआई पोर्टेबिलिटी प्रदान करता है। इसलिए टीएनएफओएक्स एक ऑपरेटिंग सिस्टम एब्स्ट्रैक्शन लेयर का एक उदाहरण है। फॉक्स के विपरीत, टीएनएफओएक्स केवल सी + + संकलकों और ऑपरेटिंग सिस्टम के एक प्रतिबंधित समूह का समर्थन करता है। यह केवल माइक्रोसॉफ्ट के सी + + कंपाइलर v7.1 और बाद के, जीसीसी v3.2 और बाद के और इंटेल सी + + कंपाइलर v8 या बाद के का समर्थन करता है। यह केवल विंडोज 2000 या उसके बाद के, लिनक्स 2.6 कर्नेल या उसके बाद के, फ्रीबीएसडी और मैक ओएस एक्स 10.4 या उसके बाद के, हालांकि किसी भी प्रोसेसर या आर्किटेक्चर पर चलता है। टी. एन. एफ. ओ. एक्स. में Boost.Python लाइब्रेरी के आधार पर पायथन के लिए अपने स्वयं के स्वचालित रूप से उत्पन्न बाइंडिंग शामिल हैं-इस तरह की जटिलता के कारण इसे जी. सी. सी. वी. 4 के बाद-दृश्यता सुविधा को जोड़ने की आवश्यकता थी। हालाँकि, हाल के वर्षों में इनकी गुणवत्ता और स्थिति में कमी आई है। 2012 तक पुस्तकालय का रखरखाव इसके लेखक द्वारा नहीं किया जाता है। टी. एन. एफ. ओ. एक्स. की महत्वपूर्ण विशेषताएँ टी. एन. एफ. ओ. एक्स. की अधिक मूल विशेषताओं में से एक इसका सी + + मेटाप्रोग्रामिंग का भारी उपयोग है, हालांकि इसे पूरी तरह से चीजों के जी. यू. आई. पक्ष (फॉक्स संगतता के लिए) से दूर रखा जाता है। एक पूर्ण हल्का मेटाप्रोग्रामिंग टूलकिट शामिल है जो बूस्ट मेटाप्रोग्रामिंग लाइब्रेरी द्वारा प्रदान किए गए कई कार्यों की अनुमति देता है, जिसमें टाइपलिस्ट, प्रकार लक्षण, संकलन-समय तर्क, फ़ंक्टर, आभासी तालिका संकलन, क्षैतिज प्रकार सूची त्वरितकरण और बहुत कुछ शामिल हैं। बूस्ट के विपरीत, एक आधुनिक सी + + संकलक की आवश्यकता के कारण, सभी मेटाप्रोग्रामिंग बदसूरत मैक्रोज़ की आवश्यकता के बिना संकलकों में लगातार काम करते हैं। एक अन्य असामान्य विशेषता व्यापक अपवाद संचालन और सुरक्षा का उपयोग है जिसके द्वारा किसी भी रेखा को हमेशा संभावित रूप से एक अपवाद फेंकने के लिए माना जाता है। टी. एन. एफ. ओ. एक्स. एक सी + + रोलबैक तंत्र प्रदान करता है (जैसा कि मूल रूप से आंद्रेई अलेक्जेंड्रेस्कु द्वारा प्रस्तावित किया गया था) ताकि यह ध्यान रखा जा सके कि एस. क्यू. एल. लेनदेन की तरह त्रुटि होने पर किसी भी चरण में किन कार्यों को पूर्ववत करने की आवश्यकता है। इस दृष्टिकोण के साथ एक समस्या ऑब्जेक्ट विनाश के दौरान नेस्टेड एक्सेप्शन थ्रो की संभावना है जिसके लिए आईएसओ सी + + मानक के तहत एक तत्काल प्रोग्राम समाप्ति की आवश्यकता होती है-टीएनएफओएक्स अतिरिक्त समर्थन कोड जोड़ने के लिए स्रोत के प्रीप्रोसेसिंग के माध्यम से इस समस्या के आसपास काम करता है। v0.88 रिलीज का एक विचित्र जोड़ अपने स्थानीय स्ट्रिंग्स को बदलने के लिए Google अनुवाद का उपयोग करना है। संदिग्ध उपयोगिता के बावजूद, विशेष रूप से छोटे तारों के लिए, यह अनुवाद के दौरान समय बचा सकता है। अधिकांश पोर्टेबिलिटी टूलकिट के विपरीत, टीएनएफओएक्स को बहुत व्यापक रूप से प्रोफाइल किया गया है और अधिकतम गति और न्यूनतम मेमोरी उपयोग के लिए प्रदर्शन को ट्यून किया गया है। इसमें एक ही कैश लाइन पर दो धागे लिखने से बचने के लिए ट्यूनिंग सहित मजबूत मल्टीथ्रेडिंग समर्थन है (जो कैश लाइन उछाल का कारण बनता है और समानांतर थ्रूपुट में बहुत बाधाएं पैदा करता है)। यह वैकल्पिक रूप से अपने स्वयं के थ्रेड कैशिंग मेमोरी एलोकेटर का उपयोग करता है, स्वचालित रूप से गतिशील एल्गोरिदम का उपयोग करता है जो मेमोरी कम स्थितियों के अनुसार मेमोरी उपयोग के लिए गति का व्यापार करेगा और इसमें बहुत मजबूत x86 और x64 विशिष्ट अनुकूलन हैं जिसमें SIMD वैक्टरों का एक मेटाप्रोग्रामिंग कार्यान्वयन शामिल है जो स्वचालित रूप से SSE संचालन (SSE4 समर्थन तक) में संकलित होगा। इसका अपना असेंबलर है जो तेजी से म्यूटेक्स कार्यान्वयन, कर्नेल पर सिसकॉल से बचने के लिए व्यापक आंतरिक कैशिंग और इसका अपना अंतर-प्रक्रिया संचार ढांचा है जो क्रमिककरण और डिसेरियलाइजेशन को स्वचालित रूप से लागू करने के लिए मेटाप्रोग्रामिंग का लाभ उठाकर मनमाने ढंग से सी + + ऑब्जेक्ट उदाहरणों को एक स्थान से दूसरे स्थान पर ले जा सकता है। यह विशेष रूप से इसके एसक्यूएल डेटाबेस इंटरफेस में स्पष्ट है जहां कोई भी एक मनमाने सी + + ऑब्जेक्ट उदाहरण को बीएलओबी क्षेत्र से जोड़ सकता है और आगे किसी कोड की आवश्यकता नहीं है। टीएनएफओएक्स में वैकल्पिक रूप से ओपनएसएसएल लाइब्रेरी और एसक्यूलाइट लाइब्रेरी की प्रतियां शामिल हैं ताकि क्रमशः इसके मजबूत एन्क्रिप्शन और इसके डिफ़ॉल्ट एसक्यूएल डेटाबेस कार्यान्वयन को लागू किया जा सके। इसे मॉड्यूलर रूप से अलग-अलग डी. एल. एल. के सेट के रूप में या मोनोलिथिक रूप से बनाया जा सकता है। इसमें होस्ट ऑपरेटिंग सिस्टम एसीएल सुरक्षा के लिए पूर्ण पोर्टेबल समर्थन भी है और यह जानता है कि संवेदनशील डेटा को स्वैप फ़ाइल में प्रवेश करने से कैसे बचाया जाए, साथ ही किसी भी हटाए गए हिस्से को स्वचालित रूप से काट दिया जाए। यह एक्सेस कर सकता है कि कौन सा उपयोगकर्ता प्रक्रिया चला रहा है और आवश्यकतानुसार इसके विशेषाधिकारों को कैसे बढ़ाया जाए। इसमें कोई जीयूआई बिल्ड नहीं है जो डेमन और सिस्टम प्रक्रियाओं के लिए पोर्टेबिलिटी टूलकिट के रूप में उपयुक्त है। इसकी कोई एक्स11/जी. डी. आई. निर्भरता नहीं है। टीएनएफओएक्स ने पहले से ही उन संकलकों के लिए सी + + 0x सुविधाओं को जोड़ना शुरू कर दिया है जो उनका समर्थन करते हैं-यह आईएसओ सी + + मानक का अगला संशोधन है। विजेट टूलकिट ऑपरेटिंग सिस्टम एब्स्ट्रैक्शन लेयर विजेट टूलकिट की सूची भी देखें फॉक्स टूलकिट क्यूटी संदर्भ बाहरी लिंक परियोजना होमपेज विजेट टूलकिट एलजीपीएल लाइसेंस का उपयोग करके सी + + सॉफ्टवेयर में प्रोग्राम किए गए मुफ्त सॉफ्टवेयर