TnFOX
ટી. એન. એફ. ઓ. એક્સ. પોર્ટેબિલિટી ટૂલકિટ એ ફોક્સ જી. યુ. આઇ. ટૂલકિટનો કાંટો છે જેમાં ઓર્થોગોનલ સુવિધાઓનો અમલ કરતા મોટાભાગના કોડ ઉમેરવામાં આવ્યા છે (એટલે કે. ફોક્સ એપીઆઈમાં નોંધપાત્ર ફેરફાર થતો નથી) જેથી ફોક્સ માટે વિકસાવવામાં આવેલી એપ્લિકેશનોને સરળતાથી ટીએનએફઓએક્સ માટે ફરીથી સંકલિત કરી શકાય. અસામાન્ય રીતે, ટીએનએફઓએક્સમાં કેટલાક ક્યૂટી લાઈબ્રેરી વર્ગોના એપીઆઈ અનુકરણો પણ હોય છે-લેખકના જણાવ્યા અનુસાર, આ ક્યૂટીથી ફોક્સ સુધીના નોંધપાત્ર પ્રોજેક્ટને પોર્ટ કરવા માટે કરવામાં આવ્યું હતું. ઉમેરવામાં આવેલી મોટાભાગની સુવિધાઓ સંપૂર્ણ "પોર્ટેબિલિટી ટૂલકિટ" લાઇબ્રેરીનો અમલ કરે છે જેમ કે કોઈ પણ વ્યક્તિ ગમે ત્યાં ચલાવવા માટે એક પ્રોગ્રામ લખી શકે છે-આ ફોક્સથી અલગ છે જે મોટે ભાગે માત્ર GUI પોર્ટેબિલિટી પ્રદાન કરે છે. તેથી TnFOX એ ઓપરેટિંગ સિસ્ટમ એબ્સ્ટ્રેક્શન લેયરનું ઉદાહરણ છે. ફોક્સથી વિપરીત, ટી. એન. એફ. ઓ. એક્સ. માત્ર સી + + કમ્પાઇલર્સ અને ઓપરેટિંગ સિસ્ટમ્સના પ્રતિબંધિત સમૂહને જ ટેકો આપે છે. તે માત્ર માઈક્રોસોફ્ટના C + + કમ્પાઇલર v7.1 અને પછીના, GCC v3.2 અને પછીના અને ઇન્ટેલ C + + કમ્પાઇલર v8 અથવા પછીના વર્ઝનને સપોર્ટ કરે છે. તે માત્ર વિન્ડોઝ 2000 અથવા પછીના, લિનક્સ 2.6 અથવા પછીના, ફ્રીબીએસડી અને મેક ઓએસ એક્સ 10.4 અથવા પછીના, જોકે કોઈપણ પ્રોસેસર અથવા આર્કિટેક્ચર પર ચાલે છે. ટી. એન. એફ. ઓ. એક્સ. Boost.Python લાઈબ્રેરી પર આધારિત પાયથોન માટે તેના પોતાના આપમેળે જનરેટેડ બાઈન્ડીંગ ધરાવે છે-જેમ કે આની જટિલતા હતી જે તેને GCC v4 પછી-દૃશ્યમાનતા સુવિધાને ઉમેરવાની જરૂર હતી. જો કે, તાજેતરના વર્ષોમાં આની ગુણવત્તા અને સ્થિતિ નબળી પડી છે. 2012 સુધી આ પુસ્તકાલય હવે તેના લેખક દ્વારા જાળવવામાં આવતું નથી. ટી. એન. એફ. ઓ. એક્સ. ની નોંધપાત્ર લાક્ષણિકતાઓ ટી. એન. એફ. ઓ. એક્સ. ની વધુ મૂળ લાક્ષણિકતાઓમાંની એક છે તેનો સી + + મેટાપ્રોગ્રામિંગનો ભારે ઉપયોગ, જોકે આને વસ્તુઓની જી. યુ. આઇ. બાજુથી સંપૂર્ણપણે દૂર રાખવામાં આવે છે (ફોક્સ સુસંગતતા માટે). સંપૂર્ણ હળવા વજનની મેટાપ્રોગ્રામિંગ ટૂલકિટનો સમાવેશ થાય છે જે બૂસ્ટ મેટાપ્રોગ્રામિંગ લાઇબ્રેરી દ્વારા પૂરી પાડવામાં આવતી ઘણી કામગીરીઓને મંજૂરી આપે છે, જેમાં ટાઇપલિસ્ટ, પ્રકારનાં લક્ષણો, સંકલન-સમય તર્ક, ફંકટર, વર્ચ્યુઅલ ટેબલ સંકલન, આડી પ્રકારની સૂચિ ત્વરિતતા અને વધુ શામેલ છે. બૂસ્ટથી વિપરીત, આધુનિક સી + + કમ્પાઇલરની જરૂરિયાતને કારણે, તમામ મેટાપ્રોગ્રામિંગ ખરાબ મેક્રોની જરૂરિયાત વિના કમ્પાઇલર્સમાં સતત કાર્યરત રહે છે. અન્ય અસામાન્ય લક્ષણ એ વ્યાપક અપવાદ સંચાલન અને સલામતીનો ઉપયોગ છે જેમાં કોઈપણ રેખા હંમેશા સંભવિત રીતે અપવાદ ફેંકશે તેવું માનવામાં આવે છે. ટી. એન. એફ. ઓ. એક્સ. એસ. ક્યુ. એલ. વ્યવહારની જેમ ભૂલ થાય તો કોઈપણ તબક્કે કઈ કામગીરીઓને પૂર્વવત્ કરવાની જરૂર છે તેના પર નજર રાખવા માટે સી + + રોલબેક મિકેનિઝમ (મૂળ રીતે એન્ડ્રેઈ એલેક્ઝાન્ડ્રેસ્કુ દ્વારા પ્રસ્તાવિત) પ્રદાન કરે છે. આ અભિગમ સાથે એક સમસ્યા એ છે કે ઑબ્જેક્ટ વિનાશ દરમિયાન નેસ્ટેડ એક્સેપ્શન થ્રોની સંભાવના છે જે ISO C + + ધોરણ હેઠળ તાત્કાલિક પ્રોગ્રામ સમાપ્તિની જરૂર છે-TnFOX વધારાના સપોર્ટ કોડ ઉમેરવા માટે સ્રોતની પ્રીપ્રોસેસિંગ દ્વારા આ સમસ્યાની આસપાસ કામ કરે છે. v0.88 પ્રકાશનનો એક વિચિત્ર ઉમેરો એ છે કે તેના સ્થાનિક શબ્દમાળાઓને રૂપાંતરિત કરવા માટે ગૂગલ અનુવાદનો ઉપયોગ કરવો. શંકાસ્પદ ઉપયોગીતા હોવા છતાં, ખાસ કરીને ટૂંકા શબ્દમાળાઓ માટે, તેમ છતાં તે અનુવાદ દરમિયાન સમય બચાવી શકે છે. મોટાભાગની પોર્ટેબિલીટી ટૂલકીટોથી વિપરીત, ટી. એન. એફ. ઓ. એક્સ. ને ખૂબ જ વ્યાપક રીતે તૈયાર કરવામાં આવ્યું છે અને મહત્તમ ઝડપ અને ન્યૂનતમ મેમરી વપરાશ માટે પ્રદર્શન ટ્યુન કરવામાં આવ્યું છે. તેમાં ટ્યુનિંગ સહિત મજબૂત મલ્ટીથ્રેડિંગ સપોર્ટ છે, જેથી બે થ્રેડોને એક જ કેશ લાઇન પર લખવાનું ટાળી શકાય (જે કેશ લાઇનને ઉછાળવાનું કારણ બને છે અને સમાંતર થ્રુપુટમાં મોટા પ્રમાણમાં અવરોધો પેદા કરે છે). તે વૈકલ્પિક રીતે તેના પોતાના થ્રેડ કેશીંગ મેમરી એલોકેટરનો ઉપયોગ કરે છે, આપમેળે ડાયનેમિક અલ્ગોરિધમ્સનો ઉપયોગ કરે છે જે મેમરીની નીચી પરિસ્થિતિઓ અનુસાર મેમરીના ઉપયોગ માટે ઝડપનો વેપાર કરશે અને તેમાં ખૂબ જ મજબૂત x86 અને x64 વિશિષ્ટ ઓપ્ટિમાઇઝેશન છે જેમાં SIMD વેક્ટરના મેટાપ્રોગ્રામિંગ અમલીકરણનો સમાવેશ થાય છે જે આપમેળે SSE કામગીરીમાં સંકલન કરશે (SSE4 સપોર્ટ સુધી). તેની પોતાની એસેમ્બલર લેખિત ઝડપી મ્યુટેક્સ અમલીકરણ, કર્નલ પર સિસ્કોલ્સ ટાળવા માટે વ્યાપક આંતરિક કેશીંગ અને તેની પોતાની આંતર-પ્રક્રિયા સંચાર માળખું છે જે ક્રમિકકરણ અને ડિસેરિયલાઇઝેશનને આપમેળે અમલમાં મૂકવા માટે મેટાપ્રોગ્રામિંગનો લાભ લઈને મનસ્વી C + + ઑબ્જેક્ટ ઇન્સ્ટન્સને એક જગ્યાએથી બીજી જગ્યાએ પરિવહન કરી શકે છે. આ ખાસ કરીને તેના એસક્યુએલ ડેટાબેઝ ઇન્ટરફેસમાં સ્પષ્ટ છે જ્યાં કોઈ વ્યક્તિ મનસ્વી સી + + ઓબ્જેક્ટ ઇન્સ્ટન્સને બીએલઓબી ફિલ્ડ સાથે જોડી શકે છે અને આગળ કોઈ કોડની જરૂર નથી. ટી. એન. એફ. ઓ. એક્સ. વૈકલ્પિક રીતે ઓપનએસએસએલ લાઇબ્રેરી અને એસક્યુએલાઇટ લાઇબ્રેરીની નકલો અનુક્રમે તેના મજબૂત એન્ક્રિપ્શન અને તેના મૂળભૂત એસક્યુએલ ડેટાબેઝ અમલીકરણને અમલમાં મૂકવા માટે શામેલ કરે છે. તેને મોડ્યુલર રીતે અલગ ડી. એલ. એલ. ના સમૂહ તરીકે અથવા મોનોલિથિક રીતે બનાવી શકાય છે. તેમાં યજમાન ઓપરેટિંગ સિસ્ટમ ACL સુરક્ષા માટે સંપૂર્ણ પોર્ટેબલ સપોર્ટ પણ છે અને તે જાણે છે કે સંવેદનશીલ ડેટાને સ્વેપ ફાઇલમાં પ્રવેશતા કેવી રીતે સુરક્ષિત કરવો, ઉપરાંત કોઈપણ કાઢી નાખેલા ભાગોને આપમેળે કાપી નાખવા. તે ઍક્સેસ કરી શકે છે કે કયા વપરાશકર્તા પ્રક્રિયા ચલાવી રહ્યા છે અને જરૂરિયાત મુજબ તેના વિશેષાધિકારોને કેવી રીતે વધારવું. તેમાં ડીમોન અને સિસ્ટમ પ્રક્રિયાઓ માટે પોર્ટેબિલિટી ટૂલકિટ તરીકે યોગ્ય કોઈ GUI બિલ્ડ નથી. આમાં કોઈ X11/GDI નિર્ભરતા નથી. ટીએનએફઓએક્સે પહેલેથી જ તે કમ્પાઇલર્સ માટે સી + + 0x સુવિધાઓ ઉમેરવાનું શરૂ કરી દીધું છે જે તેમને ટેકો આપે છે-આ આઇએસઓ સી + + ધોરણનું આગામી પુનરાવર્તન છે. વિજેટ ટૂલકિટ ઓપરેટિંગ સિસ્ટમ એબ્સ્ટ્રેક્શન લેયર પણ જુઓ વિજેટ ટૂલકિટની સૂચિ ફોક્સ ટૂલકિટ ક્યૂટી સંદર્ભો બાહ્ય કડીઓ પ્રોજેક્ટ હોમપેજ વિજેટ ટૂલકિટ એલજીપીએલ લાઇસન્સનો ઉપયોગ કરીને સી + + સોફ્ટવેરમાં પ્રોગ્રામ કરેલ મફત સોફ્ટવેર