PyPy
પાયપાઈ () એ પાયથોન પ્રોગ્રામિંગ ભાષાનું અમલીકરણ છે. પાયપાઈ ઘણીવાર પ્રમાણભૂત અમલીકરણ CPython કરતાં વધુ ઝડપથી ચાલે છે કારણ કે પાયપાઈ જસ્ટ-ઇન-ટાઇમ કમ્પાઇલરનો ઉપયોગ કરે છે. મોટાભાગના પાયથોન કોડ પાયપી પર સારી રીતે ચાલે છે સિવાય કે કોડ જે સીપીયથોન એક્સ્ટેંશન પર આધાર રાખે છે, જે ક્યાં તો કામ કરતું નથી અથવા જ્યારે પાયપીમાં ચાલે છે ત્યારે કેટલાક ઓવરહેડનો ખર્ચ કરે છે. આંતરિક રીતે, પી. પી. વાય. મેટા-ટ્રેસિંગ તરીકે ઓળખાતી તકનીકનો ઉપયોગ કરે છે, જે દુભાષિયાને ટ્રેસિંગ જસ્ટ-ઇન-ટાઇમ કમ્પાઇલરમાં પરિવર્તિત કરે છે. દુભાષિયાઓ સામાન્ય રીતે કમ્પાઇલર્સ કરતાં લખવા માટે સરળ હોય છે, પરંતુ ધીમા ચાલે છે, આ તકનીક પ્રોગ્રામિંગ ભાષાઓના કાર્યક્ષમ અમલીકરણનું ઉત્પાદન કરવાનું સરળ બનાવી શકે છે. પાયપાઇની મેટા-ટ્રેસિંગ ટૂલચેનને આર. પાયથોન કહેવામાં આવે છે. પાયપાઈ પાસે સીપીયથોન ઇકોસિસ્ટમની તાજેતરની આવૃત્તિઓ સાથે સંપૂર્ણ સુસંગતતા નથી. જ્યારે તે પાયથોન 2.7,3.7,3.8 અને 3.9 ("CPython માટે ડ્રોપ-ઇન રિપ્લેસમેન્ટ") સાથે સુસંગતતાનો દાવો કરે છે, ત્યારે તેમાં પાયથોન 3.1 માં કેટલીક નવી સુવિધાઓ અને વાક્યરચનાનો અભાવ છે, જેમ કે પેટર્ન મેચિંગ માટે વાક્યરચના. વિગતો અને પ્રેરણા પી. પી. વાય. નો ઉદ્દેશ ગતિશીલ ભાષાઓના અમલીકરણ માટે એક સામાન્ય અનુવાદ અને સમર્થન માળખું પ્રદાન કરવાનો છે, જેમાં ભાષા સ્પષ્ટીકરણ અને અમલીકરણ પાસાઓ વચ્ચે સ્વચ્છ વિભાજન પર ભાર મૂકવામાં આવે છે. તેમાં નિમ્ન-સ્તરની વિગતોને એન્કોડ કર્યા વિના નવી અદ્યતન સુવિધાઓને સક્ષમ કરવા માટે ઉપરોક્ત માળખાનો ઉપયોગ કરીને પાયથોન પ્રોગ્રામિંગ ભાષાનું સુસંગત, લવચીક અને ઝડપી અમલીકરણ પ્રદાન કરવાનો પણ તેનો ઉદ્દેશ છે. પાયપાઈ દુભાષિયો પોતે પાયથોનના પ્રતિબંધિત સબસેટમાં લખાય છે જેને આરપાઈથોન (પ્રતિબંધિત પાયથોન) કહેવાય છે. RPython પાયથોન ભાષા પર કેટલીક મર્યાદાઓ મૂકે છે જેમ કે ચલનો પ્રકાર સંકલન સમયે અનુમાન કરી શકાય છે. પાયપી પ્રોજેક્ટએ એક ટૂલચેન વિકસાવી છે જે આરપાઈથોન કોડનું વિશ્લેષણ કરે છે અને તેને બાઈટ કોડના સ્વરૂપમાં અનુવાદિત કરે છે, જેને સીમાં ઘટાડી શકાય છે. સીઃ જાવા, સી #અને જાવાસ્ક્રિપ્ટ ઉપરાંત અન્ય બેકએન્ડ પણ હતા, પરંતુ તે બિટરોટથી પીડાતા હતા અને દૂર કરવામાં આવ્યા છે. આમ, પાયપાઇનો પુનરાવર્તિત લોગો એક સાપ છે જે પોતે ગળી જાય છે કારણ કે આર. પાયથોનનું ભાષાંતર પાયથોન દુભાષિયા દ્વારા કરવામાં આવે છે. કોડને પરીક્ષણ અને વિશ્લેષણ માટે અનુવાદિત વિના પણ ચલાવી શકાય છે, જે ગતિશીલ ભાષાઓમાં સંશોધન માટે એક સરસ ટેસ્ટ-બેડ પ્રદાન કરે છે. તે પ્લગેબલ કચરો એકત્ર કરવા માટે પરવાનગી આપે છે, તેમજ વૈકલ્પિક રીતે સ્ટેકલેસ પાયથોન સુવિધાઓને સક્ષમ કરે છે. છેવટે, તેમાં જસ્ટ-ઇન-ટાઇમ (જેઆઇટી) જનરેટરનો સમાવેશ થાય છે, જે દુભાષિયાના સ્રોત કોડમાં કેટલીક ટિપ્પણીઓને ધ્યાનમાં રાખીને, દુભાષિયામાં જસ્ટ-ઇન-ટાઇમ કમ્પાઇલર બનાવે છે. જનરેટેડ જેઆઇટી કમ્પાઇલર એક ટ્રેસિંગ જેઆઇટી છે. RPython નો ઉપયોગ હવે પિક્સી જેવા બિન-પાયથોન ભાષાના અમલીકરણ લખવા માટે પણ થાય છે. પ્રોજેક્ટની સ્થિતિ સંસ્કરણ 7.3.7 મુજબ પી. પી. વાય. ત્રણ સીપીયથોન સંસ્કરણો સાથે સુસંગત છેઃ 2.7,3 અને 3.8. CPython v3 સાથે સુસંગત પ્રથમ પાયપાઈ સંસ્કરણ પાયપાઈ v2.3.1 (2014) છે. CPython v3 સાથે સુસંગત પાયપી દુભાષિયોને પાયપી 3 તરીકે પણ ઓળખવામાં આવે છે. પી. પી. વાય. 32-બીટ/64-બીટ x86 અને 32-બીટ/64-બીટ એ. આર. એમ. પ્રોસેસરો પર જે. આઈ. ટી. સંકલન આધાર ધરાવે છે. તેનું વિન્ડોઝ, લિનક્સ, ઓપનબીએસડી અને મેક ઓએસ એક્સ પર રાત્રે પરીક્ષણ કરવામાં આવે છે. પાયપાઈ શુદ્ધ પાયથોન સોફ્ટવેર ચલાવવા માટે સક્ષમ છે જે અમલીકરણ-વિશિષ્ટ સુવિધાઓ પર આધાર રાખતું નથી. CPyExt તરીકે ઓળખાતા CPython C API એક્સ્ટેંશન માટે સુસંગતતા સ્તર છે, પરંતુ તે અપૂર્ણ અને પ્રાયોગિક છે. સી વહેંચાયેલ લાઈબ્રેરીઓ સાથે ઇન્ટરફેસિંગની પસંદગીની રીત બિલ્ટ-ઇન સી ફોરેન ફંક્શન ઇન્ટરફેસ (સી. એફ. એફ. આઈ.) અથવા પ્રકારોની લાઈબ્રેરીઓ દ્વારા છે. હિસ્ટ્રી પાઇપી એ સાયકો પ્રોજેક્ટનું અનુવર્તી છે, જે પાયથોન માટે જસ્ટ-ઇન-ટાઇમ સ્પેશ્યલાઇઝિંગ કમ્પાઇલર છે, જે 2002 અને 2010 ની વચ્ચે આર્મિન રિગો દ્વારા વિકસાવવામાં આવ્યું હતું. પાયપાઇનો ઉદ્દેશ અવકાશ સાથે જસ્ટ-ઇન-ટાઇમ સ્પેશ્યલાઇઝિંગ કમ્પાઇલર રાખવાનો છે, જે સાયકો માટે ઉપલબ્ધ ન હતું. શરૂઆતમાં, RPython ને જાવા બાઈટકોડ, CIL અને જાવાસ્ક્રિપ્ટમાં પણ સંકલિત કરી શકાય છે, પરંતુ રસના અભાવને કારણે આ બેકએન્ડને દૂર કરવામાં આવ્યા હતા. પાયપાઈ શરૂઆતમાં સંશોધન અને વિકાસલક્ષી પ્રોજેક્ટ હતો. 2007ના મધ્યમાં વિકાસની પરિપક્વ સ્થિતિ અને સત્તાવાર 1 પ્રકાશન સુધી પહોંચતા, તેનું આગામી ધ્યાન વધુ CPython સુસંગતતા સાથે ઉત્પાદન-તૈયાર સંસ્કરણ રજૂ કરવા પર હતું. કોડિંગ સ્પ્રિન્ટ્સ દરમિયાન પી. પી. વાય. ના ઘણા ફેરફારો કરવામાં આવ્યા છે. ઓગસ્ટ 2008માં, પાયપાઈ પાયલોન્સ, પિગલેટ, નેવો અને જેંગો જેવી કેટલીક લોકપ્રિય પાયથોન લાઈબ્રેરીઓ ચલાવવામાં સક્ષમ હતી. 12 માર્ચ 2010ના રોજ, ઝડપ પર ધ્યાન કેન્દ્રિત કરીને, પી. પી. વાય. 1.2 રજૂ કરવામાં આવ્યું હતું. તેમાં કાર્યરત, જોકે હજુ સુધી સ્થિર ન હોવા છતાં, જસ્ટ-ઇન-ટાઇમ કમ્પાઇલર સામેલ હતું. 30 એપ્રિલ 2011ના રોજ, પાયપી વર્ઝન 1.5 બહાર પાડવામાં આવ્યું હતું, જે CPython 2.7 સાથે સુસંગતતા સુધી પહોંચ્યું હતું. 9 મે 2013ના રોજ, પી. પી. વાય. 2 રજૂ કરવામાં આવ્યું હતું, જેણે એ. આર. એમ. વી. 6 અને એ. આર. એમ. વી. 7 જે. આઈ. ટી. પર જે. આઈ. ટી. સંકલન માટે આલ્ફા-ગુણવત્તાનો ટેકો રજૂ કર્યો હતો અને પ્રમાણભૂત પુસ્તકાલયમાં સી. એફ. એફ. આઈ. નો સમાવેશ કર્યો હતો. 20 જૂન 2014ના રોજ, પાયપાઇ 3ને સ્થિર જાહેર કરવામાં આવ્યું હતું અને વધુ આધુનિક પાયથોન 3 સાથે સુસંગતતા રજૂ કરવામાં આવી હતી. તે પી. પી. વાય. 2.3.1 સાથે રજૂ કરવામાં આવ્યું હતું અને તે જ સંસ્કરણ નંબર ધરાવે છે. 21 માર્ચ 2017ના રોજ, પાયપાઇ પ્રોજેક્ટે પાયપાઇ અને પાયપાઇ 3 બંનેનું વર્ઝન 5.7 રજૂ કર્યું હતું, જેમાં બાદમાં પાયથોન 3.5 માટે બીટા-ક્વોલિટી સપોર્ટ રજૂ કર્યો હતો. 26 એપ્રિલ 2018ના રોજ, પાયથોન 2.7 અને 3.5 (હજુ પણ વિન્ડોઝ પર બીટા-ગુણવત્તા) માટે સમર્થન સાથે આવૃત્તિ 6 રજૂ કરવામાં આવી હતી. 11 ફેબ્રુઆરી 2019ના રોજ, પાયથોન 2.7 અને 3.5 માટે સમર્થન સાથે આવૃત્તિ 7 રજૂ કરવામાં આવી હતી. 14 ઓક્ટોબર 2019ના રોજ, પાયથોન 3.6.9 માટે સમર્થન સાથે આવૃત્તિ 7.2 રજૂ કરવામાં આવી હતી. 24 ડિસેમ્બર 2019ના રોજ, પાયથોન 3.6 માટે સમર્થન સાથે આવૃત્તિ 7.3 રજૂ કરવામાં આવી હતી. 16 ફેબ્રુઆરી 2020ના રોજ, પી. પી. વાય. ટીમે સી. એફ. એફ. આઈ. (સી ફોરેન ફંક્શન ઇન્ટરફેસ) પ્રોજેક્ટના રીપોઝીટરીઓ સાથે બિટબકેટથી heptapod.net પર સોર્સ કોડ હોસ્ટિંગ ખસેડવાની જાહેરાત કરી હતી. નવો લોગો અને વેબસાઇટ ડિઝાઇન પણ પ્રકાશિત કરવામાં આવી છે. જો કે, લેખક અને નવા લોગોનું લાઇસન્સ અજ્ઞાત છે. ડિસેમ્બર 2004 અને માર્ચ 2007 વચ્ચે યુરોપિયન યુનિયન દ્વારા ચોક્કસ લક્ષિત સંશોધન પ્રોજેક્ટ તરીકે ભંડોળ પૂરું પાડવામાં આવ્યું હતું. જૂન 2008માં, પાયપાઇએ ગૂગલ ઓપન સોર્સ પ્રોગ્રામનો ભાગ બનવાની જાહેરાત કરી હતી અને પાયપાઇને સીપીથોન સાથે વધુ સુસંગત બનાવવા પર ધ્યાન કેન્દ્રિત કરવા સંમત થયા હતા. 2009માં યુરોપીયન યુનિયનની ભંડોળ પૂરું પાડતી એજન્સી યુરોસ્ટાર્સે ખાસ કરીને SME પર ધ્યાન કેન્દ્રિત કર્યું હતું, તેણે "PYJIT-એ ફાસ્ટ એન્ડ ફ્લેક્સિબલ ટૂલકિટ ફોર ડાયનેમિક પ્રોગ્રામિંગ લેંગ્વેજીઝ બેઝ્ડ ઓન PYPy" શીર્ષક ધરાવતી PYPy પ્રોજેક્ટ સભ્યોની દરખાસ્ત સ્વીકારી હતી. યુરોસ્ટાર્સનું ભંડોળ ઓગસ્ટ 2011 સુધી ચાલ્યું હતું. પાયકોન યુ. એસ. 2011 ખાતે, પાયથોન સોફ્ટવેર ફાઉન્ડેશને ભાષાના નવા સંસ્કરણો સાથે પ્રદર્શન અને સુસંગતતા પર કામ ચાલુ રાખવા માટે પાયપાઈ માટે 10,000 ડોલરનું અનુદાન પૂરું પાડ્યું હતું. એઆરએમ આર્કિટેક્ચરના બંદરને આંશિક રીતે રાસ્પબેરી પાઇ ફાઉન્ડેશન દ્વારા પ્રાયોજિત કરવામાં આવ્યું હતું. પી. પી. વાય. પ્રોજેક્ટ તેના સ્થિતિ બ્લોગ પૃષ્ઠો દ્વારા દાન પણ સ્વીકારે છે. 2013 સુધીમાં, વિવિધ પેટા-પ્રોજેક્ટ્સમાં ભંડોળ હતુંઃ પાયથોન 3 આવૃત્તિ સુસંગતતા, આંકડાકીય ગણતરીઓ માટે બિલ્ટ-ઇન ઓપ્ટિમાઇઝ્ડ ન્યુમપાઈ સપોર્ટ અને વધુ સારી સમાંતરતાને મંજૂરી આપવા માટે સોફ્ટવેર ટ્રાન્ઝેક્શનલ મેમરી સપોર્ટ. બુટસ્ટ્રેપિંગ (કમ્પાઇલર્સ) સાયથન ગ્રાલવીએમ આંશિક મૂલ્યાંકન સાયકો સેલ્ફ-હોસ્ટિંગ સેલ્ફ-ઇન્ટરપ્રિટર અનલેડન સ્વેલો નોટ્સ રેફરન્સ ડેવીડ એન્કોના, માસ્સિમો એન્કોના, એન્ટોનિયો કુની, નિકોલસ ડી. માત્સાકિસ, 2007 પણ જુઓ. RPython: ગતિશીલ અને સ્થિર રીતે ટાઇપ કરેલી OO ભાષાઓનું સમાધાન કરવા માટેનું એક પગલું. પ્રોસી માં. ગતિશીલ ભાષા પરિસંવાદ (ડી. એલ. એસ.), 2007. એસીએમ પ્રેસ. કાર્લ ફ્રેડરિક બોલ્ઝ, એન્ટોનિયો કુની, મેસીજ ફિજાલ્કોવ્સ્કી, 2009. મેટા-લેવલ ટ્રેસિંગઃ પી. પી. વાય. નું ટ્રેસિંગ જે. આઈ. ટી. કમ્પાઇલર. પ્રોસી માં. ICOOOLPS, 2009. એસીએમ પ્રેસ. બાહ્ય કડીઓ 2007 સોફ્ટવેર એફ. પી. 6 પ્રોજેક્ટ્સ એમ. આઈ. ટી. લાઇસન્સ સ્ટેક-આધારિત વર્ચ્યુઅલ મશીનોનો ઉપયોગ કરીને પાયથોન પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) અમલીકરણ સોફ્ટવેરમાં પ્રોગ્રામ કરેલ ફ્રી સોફ્ટવેર