सीपीथॉन: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Python reference implementation}} {{Distinguish|Cython}} {{multiple issues| {{cleanup rewrite|date=January 2020}} {{Primary sources|date=November 2010}} {{...")
 
No edit summary
Line 1: Line 1:
{{short description|Python reference implementation}}
{{short description|Python reference implementation}}
{{Distinguish|Cython}}
{{Distinguish|Cython}}
{{multiple issues|
{{cleanup rewrite|date=January 2020}}
{{Primary sources|date=November 2010}}
{{Cleanup bare URLs|date=September 2022}}
}}
{{Infobox software
{{Infobox software
| name = CPython
| name = CPython
Line 28: Line 22:
CPython Python (प्रोग्रामिंग लैंग्वेज) का [[संदर्भ कार्यान्वयन]] है। C (प्रोग्रामिंग लैंग्वेज) और पायथन में लिखा गया, CPython, Python भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।
CPython Python (प्रोग्रामिंग लैंग्वेज) का [[संदर्भ कार्यान्वयन]] है। C (प्रोग्रामिंग लैंग्वेज) और पायथन में लिखा गया, CPython, Python भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।


CPython को एक [[दुभाषिया (कंप्यूटिंग)]] और एक [[संकलक]] दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को [[बाईटकोड]] में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ एक [[विदेशी फ़ंक्शन इंटरफ़ेस]] है, जिसमें पायथन के अलावा किसी अन्य भाषा में स्पष्ट रूप से [[भाषा बंधन]] लिखनी चाहिए।
CPython को [[दुभाषिया (कंप्यूटिंग)]] और [[संकलक]] दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को [[बाईटकोड]] में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ [[विदेशी फ़ंक्शन इंटरफ़ेस]] है, जिसमें पायथन के अलावा किसी अन्य भाषा में स्पष्ट रूप से [[भाषा बंधन]] लिखनी चाहिए।


== डिजाइन ==
== डिजाइन ==
CPython की एक विशेष विशेषता यह है कि यह प्रत्येक CPython दुभाषिया [[प्रक्रिया (कंप्यूटिंग)]] पर एक वैश्विक दुभाषिया लॉक (GIL) का उपयोग करता है, जिसका अर्थ है कि एक ही प्रक्रिया के भीतर, किसी एक समय में केवल एक थ्रेड Python bytecode को संसाधित कर सकता है।<ref>{{cite web|url=https://docs.python.org/3/c-api/init.html |title=Initialization, Finalization, and Threads |publisher= Python v3.8.3 documentation |access-date=2020-06-04}}</ref> इसका मतलब यह नहीं है कि [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] का कोई मतलब नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां [[थ्रेड (कंप्यूटिंग)]] ज्यादातर बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।
CPython की विशेष विशेषता यह है कि यह प्रत्येक CPython दुभाषिया [[प्रक्रिया (कंप्यूटिंग)]] पर वैश्विक दुभाषिया लॉक (GIL) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के भीतर, किसी समय में केवल थ्रेड Python bytecode को संसाधित कर सकता है।<ref>{{cite web|url=https://docs.python.org/3/c-api/init.html |title=Initialization, Finalization, and Threads |publisher= Python v3.8.3 documentation |access-date=2020-06-04}}</ref> इसका मतलब यह नहीं है कि [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] का कोई मतलब नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां [[थ्रेड (कंप्यूटिंग)]] ज्यादातर बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।


यह तब हो सकता है जब कई थ्रेड्स अलग-अलग क्लाइंट्स को सर्विस दे रहे हों। हो सकता है कि एक थ्रेड क्लाइंट के जवाब का इंतज़ार कर रहा हो, और दूसरा थ्रेड [[डेटाबेस]] क्वेरी के निष्पादित होने का इंतज़ार कर रहा हो, जबकि तीसरा थ्रेड वास्तव में Python कोड को प्रोसेस कर रहा हो।
यह तब हो सकता है जब कई थ्रेड्स अलग-अलग क्लाइंट्स को सर्विस दे रहे हों। हो सकता है कि थ्रेड क्लाइंट के जवाब का इंतज़ार कर रहा हो, और दूसरा थ्रेड [[डेटाबेस]] क्वेरी के निष्पादित होने का इंतज़ार कर रहा हो, जबकि तीसरा थ्रेड वास्तव में Python कोड को प्रोसेस कर रहा हो।


हालाँकि, GIL का मतलब यह है कि CPython उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो Python कोड में CPU-गहन एल्गोरिदम को लागू करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।
हालाँकि, GIL का मतलब यह है कि CPython उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो Python कोड में CPU-गहन एल्गोरिदम को लागू करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।


वास्तविक दुनिया के अनुप्रयोगों में, ऐसी स्थितियाँ जहाँ GIL एक महत्वपूर्ण अड़चन है, काफी दुर्लभ हैं। ऐसा इसलिए है क्योंकि पायथन एक स्वाभाविक रूप से धीमी भाषा है और आमतौर पर इसका उपयोग सीपीयू-गहन या समय-संवेदनशील संचालन के लिए नहीं किया जाता है। पायथन आमतौर पर शीर्ष स्तर पर उपयोग किया जाता है और विशिष्ट कार्यों को करने के लिए पुस्तकालयों में कार्यों को बुलाता है। इन पुस्तकालयों को आम तौर पर पायथन में नहीं लिखा जाता है, और इन अंतर्निहित प्रक्रियाओं में से किसी एक को कॉल करने के दौरान किसी अन्य थ्रेड में पायथन कोड निष्पादित किया जा सकता है। सीपीयू-गहन कार्य करने के लिए बुलाए जाने वाले गैर-पायथन पुस्तकालय जीआईएल के अधीन नहीं हैं और बिना किसी प्रतिबंध के कई प्रोसेसर पर कई थ्रेड्स को समवर्ती रूप से निष्पादित कर सकते हैं।
वास्तविक दुनिया के अनुप्रयोगों में, ऐसी स्थितियाँ जहाँ GIL महत्वपूर्ण अड़चन है, काफी दुर्लभ हैं। ऐसा इसलिए है क्योंकि पायथन स्वाभाविक रूप से धीमी भाषा है और आमतौर पर इसका उपयोग सीपीयू-गहन या समय-संवेदनशील संचालन के लिए नहीं किया जाता है। पायथन आमतौर पर शीर्ष स्तर पर उपयोग किया जाता है और विशिष्ट कार्यों को करने के लिए पुस्तकालयों में कार्यों को बुलाता है। इन पुस्तकालयों को आम तौर पर पायथन में नहीं लिखा जाता है, और इन अंतर्निहित प्रक्रियाओं में से किसी को कॉल करने के दौरान किसी अन्य थ्रेड में पायथन कोड निष्पादित किया जा सकता है। सीपीयू-गहन कार्य करने के लिए बुलाए जाने वाले गैर-पायथन पुस्तकालय जीआईएल के अधीन नहीं हैं और बिना किसी प्रतिबंध के कई प्रोसेसर पर कई थ्रेड्स को समवर्ती रूप से निष्पादित कर सकते हैं।


पायथन कोड की समवर्ती केवल एक [[मल्टीटास्किंग ऑपरेटिंग सिस्टम]] द्वारा प्रबंधित अलग-अलग CPython दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह [[समानांतर कंप्यूटिंग]] के बीच संचार को जटिल बनाता है, हालांकि मल्टीप्रोसेसिंग मॉड्यूल इसे कुछ हद तक कम करता है; इसका मतलब यह है कि समवर्ती पायथन-कोड निष्पादन से वास्तव में लाभान्वित होने वाले अनुप्रयोगों को सीमित मात्रा में [[ओवरहेड (कंप्यूटिंग)]] के साथ लागू किया जा सकता है।
पायथन कोड की समवर्ती केवल [[मल्टीटास्किंग ऑपरेटिंग सिस्टम]] द्वारा प्रबंधित अलग-अलग CPython दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह [[समानांतर कंप्यूटिंग]] के बीच संचार को जटिल बनाता है, हालांकि मल्टीप्रोसेसिंग मॉड्यूल इसे कुछ हद तक कम करता है; इसका मतलब यह है कि समवर्ती पायथन-कोड निष्पादन से वास्तव में लाभान्वित होने वाले अनुप्रयोगों को सीमित मात्रा में [[ओवरहेड (कंप्यूटिंग)]] के साथ लागू किया जा सकता है।


GIL की उपस्थिति CPython के कार्यान्वयन को सरल बनाती है, और बहु-थ्रेडेड अनुप्रयोगों को लागू करना आसान बनाती है जो समवर्ती पायथन कोड निष्पादन से लाभान्वित नहीं होते हैं। हालाँकि, GIL के बिना, मल्टीप्रोसेसिंग ऐप्स को यह सुनिश्चित करना चाहिए कि सभी सामान्य कोड थ्रेड सुरक्षित हैं।
GIL की उपस्थिति CPython के कार्यान्वयन को सरल बनाती है, और बहु-थ्रेडेड अनुप्रयोगों को लागू करना आसान बनाती है जो समवर्ती पायथन कोड निष्पादन से लाभान्वित नहीं होते हैं। हालाँकि, GIL के बिना, मल्टीप्रोसेसिंग ऐप्स को यह सुनिश्चित करना चाहिए कि सभी सामान्य कोड थ्रेड सुरक्षित हैं।


हालाँकि GIL को खत्म करने के लिए कई प्रस्ताव दिए गए हैं, आम सहमति यह रही है कि ज्यादातर मामलों में, GIL के फायदे नुकसान से अधिक हैं; कुछ मामलों में जहां GIL एक अड़चन है, एप्लिकेशन को मल्टीप्रोसेसिंग संरचना के आसपास बनाया जाना चाहिए।
हालाँकि GIL को खत्म करने के लिए कई प्रस्ताव दिए गए हैं, आम सहमति यह रही है कि ज्यादातर मामलों में, GIL के फायदे नुकसान से अधिक हैं; कुछ मामलों में जहां GIL अड़चन है, एप्लिकेशन को मल्टीप्रोसेसिंग संरचना के आसपास बनाया जाना चाहिए।


== इतिहास ==
== इतिहास ==
Line 50: Line 44:


=== अनलादेन निगल ===
=== अनलादेन निगल ===
Unladen Swallow CPython की एक अनुकूलन शाखा थी, जिसका उद्देश्य पूरी तरह से संगत और काफी तेज होना था। इसका उद्देश्य CPython की कस्टम [[आभासी मशीन]] को जस्ट-इन-टाइम संकलन | [[समय-समय पर संकलन]] [[LLVM]] का उपयोग करके बनाया गया है।
Unladen Swallow CPython की अनुकूलन शाखा थी, जिसका उद्देश्य पूरी तरह से संगत और काफी तेज होना था। इसका उद्देश्य CPython की कस्टम [[आभासी मशीन]] को जस्ट-इन-टाइम संकलन | [[समय-समय पर संकलन]] [[LLVM]] का उपयोग करके बनाया गया है।


परियोजना ने CPython पर पांच के एक कारक द्वारा गति में सुधार का लक्ष्य बताया था;<ref>{{cite web|last=Paul |first=Ryan |url=https://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars |title=Ars Technica report on Unladen Swallow goals |publisher=Arstechnica.com |date=2009-03-26 |access-date=2011-08-19}}</ref> यह लक्ष्य पूरा नहीं हुआ था।<ref name="PEP3146">{{cite web | url=https://www.python.org/dev/peps/pep-3146/ | title=PEP 3146 - Merging Unladen Swallow into CPython | first1=Collin |last1=Winter | last2= Yasskin | first2= Jeffrey | last3= Kleckner | first3= Reid | date=2010-03-17 | publisher=Python.org}}</ref>
परियोजना ने CPython पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;<ref>{{cite web|last=Paul |first=Ryan |url=https://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars |title=Ars Technica report on Unladen Swallow goals |publisher=Arstechnica.com |date=2009-03-26 |access-date=2011-08-19}}</ref> यह लक्ष्य पूरा नहीं हुआ था।<ref name="PEP3146">{{cite web | url=https://www.python.org/dev/peps/pep-3146/ | title=PEP 3146 - Merging Unladen Swallow into CPython | first1=Collin |last1=Winter | last2= Yasskin | first2= Jeffrey | last3= Kleckner | first3= Reid | date=2010-03-17 | publisher=Python.org}}</ref>
परियोजना को [[Google]] द्वारा प्रायोजित किया गया था, और परियोजना के मालिक, थॉमस वाउटर्स, जेफरी यास्किन और कॉलिन विंटर, पूर्णकालिक Google कर्मचारी हैं; हालाँकि, अधिकांश परियोजना योगदानकर्ता Google के कर्मचारी नहीं थे।<ref>{{cite web| url=https://code.google.com/p/unladen-swallow/people/list | title=People working on Unladen Swallow| url-status=dead| archive-url=https://web.archive.org/web/20151029092746/https://code.google.com/p/unladen-swallow/people/list |archive-date=2015-10-29 |access-date=2019-08-08}}</ref> Unladen Swallow को [[Google Developers]] पर होस्ट किया गया था।<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/ |title=Unladen Swallow project page |access-date=2011-08-19}}</ref>
परियोजना को [[Google]] द्वारा प्रायोजित किया गया था, और परियोजना के मालिक, थॉमस वाउटर्स, जेफरी यास्किन और कॉलिन विंटर, पूर्णकालिक Google कर्मचारी हैं; हालाँकि, अधिकांश परियोजना योगदानकर्ता Google के कर्मचारी नहीं थे।<ref>{{cite web| url=https://code.google.com/p/unladen-swallow/people/list | title=People working on Unladen Swallow| url-status=dead| archive-url=https://web.archive.org/web/20151029092746/https://code.google.com/p/unladen-swallow/people/list |archive-date=2015-10-29 |access-date=2019-08-08}}</ref> Unladen Swallow को [[Google Developers]] पर होस्ट किया गया था।<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/ |title=Unladen Swallow project page |access-date=2011-08-19}}</ref>
पायथन भाषा के बारे में कई चीजों की तरह, अनलाडेन [[निगलना]] नाम एक मोंटी पायथन संदर्भ है, विशेष रूप [[[[मोंटी अजगर]] एंड द होली ग्रेल]] में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए।
पायथन भाषा के बारे में कई चीजों की तरह, अनलाडेन [[निगलना]] नाम मोंटी पायथन संदर्भ है, विशेष रूप [[[[मोंटी अजगर]] एंड द होली ग्रेल]] में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए।


हालांकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनलाडेन निगल ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि cPickle मॉड्यूल में सुधार।<ref>{{Cite web|url=https://bugs.python.org/issue9410|title=Issue 9410: Add Unladen Swallow's optimizations to Python 3's pickle. - Python tracker|website=bugs.python.org|access-date=2019-08-08}}</ref>
हालांकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनलाडेन निगल ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि cPickle मॉड्यूल में सुधार।<ref>{{Cite web|url=https://bugs.python.org/issue9410|title=Issue 9410: Add Unladen Swallow's optimizations to Python 3's pickle. - Python tracker|website=bugs.python.org|access-date=2019-08-08}}</ref>
जुलाई 2010 में, कुछ पर्यवेक्षकों ने अनुमान लगाया कि 2009 की चौथी तिमाही के मील के पत्थर को अभी तक जारी नहीं किया गया था कि क्या परियोजना मर चुकी थी या मर रही थी।<ref>{{cite web|url=http://groups.google.com/group/comp.lang.python/browse_thread/thread/69f85cadb424a1d4/bdf73a28f3f770cb?lnk=gst&q=unladen+swallow#bdf73a28f3f770cb |title=Message on comp.lang.python |access-date=2011-08-19}}</ref> Unladen की मेलिंग सूची पर यातायात जनवरी 2010 में 500 संदेशों से घटकर सितंबर 2010 में 10 से कम हो गया था।<ref>{{cite web|url=http://groups.google.com/group/unladen-swallow/about?hl=en |title=Unladen Swallow &#124; Google Groups |access-date=2011-08-19}}</ref> यह भी बताया गया है कि Unladen ने Google की फंडिंग खो दी है।<ref>{{cite web|url=https://www.reddit.com/r/Python/comments/cilk0/anyone_know_whats_going_on_with_unladen_swallow/c0su1wt |title=reddit post by an Unladen committer |publisher=Reddit.com |date=2010-06-24 |access-date=2011-08-19}}</ref> नवंबर 2010 में, मुख्य डेवलपर्स में से एक ने घोषणा की कि जेफरी और मुझे Google के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।<ref>{{cite web | url=http://groups.google.com/group/unladen-swallow/msg/bd4e6f935c23252a | first=Collin | last=Winter | title= Current status of Unladen-Swallow | date=8 November 2010 }}</ref>
जुलाई 2010 में, कुछ पर्यवेक्षकों ने अनुमान लगाया कि 2009 की चौथी तिमाही के मील के पत्थर को अभी तक जारी नहीं किया गया था कि क्या परियोजना मर चुकी थी या मर रही थी।<ref>{{cite web|url=http://groups.google.com/group/comp.lang.python/browse_thread/thread/69f85cadb424a1d4/bdf73a28f3f770cb?lnk=gst&q=unladen+swallow#bdf73a28f3f770cb |title=Message on comp.lang.python |access-date=2011-08-19}}</ref> Unladen की मेलिंग सूची पर यातायात जनवरी 2010 में 500 संदेशों से घटकर सितंबर 2010 में 10 से कम हो गया था।<ref>{{cite web|url=http://groups.google.com/group/unladen-swallow/about?hl=en |title=Unladen Swallow &#124; Google Groups |access-date=2011-08-19}}</ref> यह भी बताया गया है कि Unladen ने Google की फंडिंग खो दी है।<ref>{{cite web|url=https://www.reddit.com/r/Python/comments/cilk0/anyone_know_whats_going_on_with_unladen_swallow/c0su1wt |title=reddit post by an Unladen committer |publisher=Reddit.com |date=2010-06-24 |access-date=2011-08-19}}</ref> नवंबर 2010 में, मुख्य डेवलपर्स में से ने घोषणा की कि जेफरी और मुझे Google के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।<ref>{{cite web | url=http://groups.google.com/group/unladen-swallow/msg/bd4e6f935c23252a | first=Collin | last=Winter | title= Current status of Unladen-Swallow | date=8 November 2010 }}</ref>
2009 Q4 विकास शाखा 26 जनवरी 2010 को बनाई गई थी,<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/source/detail?spec=svn1164&r=1042 |title=2009 Q4 release branch creation |date=2010-01-26 |access-date=2011-08-19}}</ref> लेकिन वेबसाइट पर कोई विज्ञापन नहीं किया गया था। इसके अलावा, लंबी अवधि की योजनाओं के बारे में, और जैसा कि परियोजना ने पायथन 2.7 रिलीज को याद किया, एक [[पायथन संवर्द्धन प्रस्ताव]] (पीईपी)<ref name="PEP3146"/>स्वीकार कर लिया गया, जिसने पायथन के आधिकारिक रिपॉजिटरी (संस्करण नियंत्रण) की एक विशेष py3k-jit शाखा में Unladen Swallow के विलय का प्रस्ताव दिया। जुलाई 2010 तक यह काम चल रहा था।<ref>{{cite web|url=http://groups.google.com/group/unladen-swallow/browse_thread/thread/be3d226079c457b1 |title=Developers focus on merge into py3k-jit |date=2010-07-13 |access-date=2011-08-19}}</ref> इस विलय में कुछ समय लग सकता था, क्योंकि Unladen Swallow मूल रूप से Python 2.6 पर आधारित था<ref>{{cite web|url=https://www.python.org/dev/peps/pep-3146/#rationale-implementation |title=Unladen Swallow baseline |publisher=Python.org |access-date=2011-08-19}}</ref> जिसके साथ Python 3 ने संगतता तोड़ दी (अधिक विवरण के लिए [[Python 3000]] देखें)। हालाँकि, बाद में PEP को वापस ले लिया गया था।
2009 Q4 विकास शाखा 26 जनवरी 2010 को बनाई गई थी,<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/source/detail?spec=svn1164&r=1042 |title=2009 Q4 release branch creation |date=2010-01-26 |access-date=2011-08-19}}</ref> लेकिन वेबसाइट पर कोई विज्ञापन नहीं किया गया था। इसके अलावा, लंबी अवधि की योजनाओं के बारे में, और जैसा कि परियोजना ने पायथन 2.7 रिलीज को याद किया, [[पायथन संवर्द्धन प्रस्ताव]] (पीईपी)<ref name="PEP3146"/>स्वीकार कर लिया गया, जिसने पायथन के आधिकारिक रिपॉजिटरी (संस्करण नियंत्रण) की विशेष py3k-jit शाखा में Unladen Swallow के विलय का प्रस्ताव दिया। जुलाई 2010 तक यह काम चल रहा था।<ref>{{cite web|url=http://groups.google.com/group/unladen-swallow/browse_thread/thread/be3d226079c457b1 |title=Developers focus on merge into py3k-jit |date=2010-07-13 |access-date=2011-08-19}}</ref> इस विलय में कुछ समय लग सकता था, क्योंकि Unladen Swallow मूल रूप से Python 2.6 पर आधारित था<ref>{{cite web|url=https://www.python.org/dev/peps/pep-3146/#rationale-implementation |title=Unladen Swallow baseline |publisher=Python.org |access-date=2011-08-19}}</ref> जिसके साथ Python 3 ने संगतता तोड़ दी (अधिक विवरण के लिए [[Python 3000]] देखें)। हालाँकि, बाद में PEP को वापस ले लिया गया था।


2011 की शुरुआत में, यह स्पष्ट हो गया कि परियोजना को रोक दिया गया था।<ref>{{cite web|url=http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html|title=Unladen Swallow Retrospective | date = 26 March 2011| publisher = QINSB is not a Software Blog (qinsb.blogspot.com)| first = Reid | last = Kleckner}}</ref>
2011 की शुरुआत में, यह स्पष्ट हो गया कि परियोजना को रोक दिया गया था।<ref>{{cite web|url=http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html|title=Unladen Swallow Retrospective | date = 26 March 2011| publisher = QINSB is not a Software Blog (qinsb.blogspot.com)| first = Reid | last = Kleckner}}</ref>
Line 175: Line 169:
|-
|-
| Ubuntu 18.04 LTS (Bionic Beaver)
| Ubuntu 18.04 LTS (Bionic Beaver)
| 2028-04<ref>{{cite web |url=https://www.serverwatch.com/server-news/canonical-extends-ubuntu-18.04-lts-linux-support-to-10-years.html|title=Ubuntu 18.04 extended to 2028|publisher=ServerWatch.com|date=2018-11-15|access-date=2019-09-09}}</ref>{{Update after|2028|04}}
| 2028-04<ref>{{cite web |url=https://www.serverwatch.com/server-news/canonical-extends-ubuntu-18.04-lts-linux-support-to-10-years.html|title=Ubuntu 18.04 extended to 2028|publisher=ServerWatch.com|date=2018-11-15|access-date=2019-09-09}}</ref>
| {{Version|o|2.7}}<ref name="ubuntu-py2">{{cite web|url=https://launchpad.net/ubuntu/+source/python-defaults |title=python-defaults package : Ubuntu |publisher= Canonical Ltd. |date=2018-06-08 |access-date=2018-06-08}}</ref>
| {{Version|o|2.7}}<ref name="ubuntu-py2">{{cite web|url=https://launchpad.net/ubuntu/+source/python-defaults |title=python-defaults package : Ubuntu |publisher= Canonical Ltd. |date=2018-06-08 |access-date=2018-06-08}}</ref>
| {{Version|o|3.6}}<ref name="ubuntu-py3">{{cite web|url=https://launchpad.net/ubuntu/+source/python3-defaults |title=python3-defaults package : Ubuntu |publisher= Canonical Ltd. |date=2018-06-08 |access-date=2018-06-08}}</ref>
| {{Version|o|3.6}}<ref name="ubuntu-py3">{{cite web|url=https://launchpad.net/ubuntu/+source/python3-defaults |title=python3-defaults package : Ubuntu |publisher= Canonical Ltd. |date=2018-06-08 |access-date=2018-06-08}}</ref>
Line 185: Line 179:
|-
|-
| [[Debian]] 11
| [[Debian]] 11
| 2026-06<ref name="debian.org">{{Cite web|title=Debian -- News -- Debian 11 "bullseye" released|url=https://www.debian.org/News/2021/20210814.en.html|access-date=2022-01-04|website=www.debian.org}}</ref>{{Update after|2026|06}}
| 2026-06<ref name="debian.org">{{Cite web|title=Debian -- News -- Debian 11 "bullseye" released|url=https://www.debian.org/News/2021/20210814.en.html|access-date=2022-01-04|website=www.debian.org}}</ref>
|
|
| {{Version|co|3.9}}<ref name="debian.org"/>{{Update after|2025|10}}
| {{Version|co|3.9}}<ref name="debian.org"/>{{Update after|2025|10}}
|-
|-
| Debian 10
| Debian 10
| 2024-06<ref>{{Cite web|title=LTS - Debian Wiki|url=https://wiki.debian.org/LTS|access-date=2021-02-15|website=wiki.debian.org}}</ref>{{Update after|2024|06}}
| 2024-06<ref>{{Cite web|title=LTS - Debian Wiki|url=https://wiki.debian.org/LTS|access-date=2021-02-15|website=wiki.debian.org}}</ref>
| {{Version|o|2.7}}<ref>{{Cite web|url=https://packages.debian.org/buster/python|title=Debian -- Details of package python in buster|website=packages.debian.org|access-date=2019-09-13}}</ref>
| {{Version|o|2.7}}<ref>{{Cite web|url=https://packages.debian.org/buster/python|title=Debian -- Details of package python in buster|website=packages.debian.org|access-date=2019-09-13}}</ref>
| {{Version|co|3.7}}<ref>{{Cite web|url=https://www.debian.org/News/2019/20190706.en.html|title=Debian -- News -- Debian 10 "buster" released|website=www.debian.org|access-date=2019-08-09}}</ref>{{Update after|2023|06}}
| {{Version|co|3.7}}<ref>{{Cite web|url=https://www.debian.org/News/2019/20190706.en.html|title=Debian -- News -- Debian 10 "buster" released|website=www.debian.org|access-date=2019-08-09}}</ref>{{Update after|2023|06}}
Line 200: Line 194:
|-
|-
| [[Red Hat Enterprise Linux]] 8
| [[Red Hat Enterprise Linux]] 8
| 2029{{Update after|2029|04}}
| 2029
| {{Version|o|2.7}}<ref>{{Cite web|url=https://developers.redhat.com/blog/2018/11/14/python-in-rhel-8/|title=Python in RHEL 8|date=2018-11-14|website=Red Hat Developer Blog|language=en-US|access-date=2019-05-10|archive-date=2019-05-10|archive-url=https://web.archive.org/web/20190510043548/https://developers.redhat.com/blog/2018/11/14/python-in-rhel-8/|url-status=dead}}</ref>
| {{Version|o|2.7}}<ref>{{Cite web|url=https://developers.redhat.com/blog/2018/11/14/python-in-rhel-8/|title=Python in RHEL 8|date=2018-11-14|website=Red Hat Developer Blog|language=en-US|access-date=2019-05-10|archive-date=2019-05-10|archive-url=https://web.archive.org/web/20190510043548/https://developers.redhat.com/blog/2018/11/14/python-in-rhel-8/|url-status=dead}}</ref>
| {{Version|o|3.6}}
| {{Version|o|3.6}}
|-
|-
| Red Hat Enterprise Linux 7
| Red Hat Enterprise Linux 7
| 2024-11-30<ref name=":0">{{Cite web|url=https://access.redhat.com/support/policy/updates/errata|title=Red Hat Enterprise Linux Life Cycle|website=Red Hat Customer Portal|language=en|access-date=2020-04-01}}</ref>{{Update after|2024|11|30}}
| 2024-11-30<ref name=":0">{{Cite web|url=https://access.redhat.com/support/policy/updates/errata|title=Red Hat Enterprise Linux Life Cycle|website=Red Hat Customer Portal|language=en|access-date=2020-04-01}}</ref>
| {{Version|o|2.7}}<ref>{{cite web|url=https://distrowatch.com/table.php?distribution=redhat |title=DistroWatch.com: Red Hat Enterprise Linux |publisher=DistroWatch.com |date=2017-09-07 |access-date=2017-10-15}}</ref>
| {{Version|o|2.7}}<ref>{{cite web|url=https://distrowatch.com/table.php?distribution=redhat |title=DistroWatch.com: Red Hat Enterprise Linux |publisher=DistroWatch.com |date=2017-09-07 |access-date=2017-10-15}}</ref>
|
|
|-
|-
| [[CentOS]] 8
| [[CentOS]] 8
| 2029-05-31{{Update after|2029|05|31}}
| 2029-05-31
| {{Version|o|2.7}}
| {{Version|o|2.7}}
| {{Version|o|3.6}}
| {{Version|o|3.6}}
|-
|-
| CentOS 7
| CentOS 7
| 2024-06-30{{Update after|2024|06|30}}
| 2024-06-30
| {{Version|o|2.7}}<ref>{{cite web|url=https://distrowatch.com/table.php?distribution=centos |title=DistroWatch.com: CentOS |publisher=DistroWatch.com |date=2017-09-14 |access-date=2017-10-15}}</ref>
| {{Version|o|2.7}}<ref>{{cite web|url=https://distrowatch.com/table.php?distribution=centos |title=DistroWatch.com: CentOS |publisher=DistroWatch.com |date=2017-09-14 |access-date=2017-10-15}}</ref>
|
|
|-
|-
| [[SuSE Linux Enterprise Server|SUSE Linux Enterprise Server]] 15
| [[SuSE Linux Enterprise Server|SUSE Linux Enterprise Server]] 15
| 2031-07-31{{Update after|2031|07|31}}
| 2031-07-31
| {{Version|o|2.7}}<ref>{{Cite web|url=https://www.suse.com/releasenotes/x86_64/SUSE-SLED/15/#Features.Other|title=Release Notes {{!}} SUSE Linux Enterprise Desktop/SUSE Linux Enterprise Workstation Extension 15 GA|website=www.suse.com|access-date=2019-08-08}}</ref>
| {{Version|o|2.7}}<ref>{{Cite web|url=https://www.suse.com/releasenotes/x86_64/SUSE-SLED/15/#Features.Other|title=Release Notes {{!}} SUSE Linux Enterprise Desktop/SUSE Linux Enterprise Workstation Extension 15 GA|website=www.suse.com|access-date=2019-08-08}}</ref>
| {{Version|o|3.6}}
| {{Version|o|3.6}}
|-
|-
| SUSE Linux Enterprise Server 12
| SUSE Linux Enterprise Server 12
| 2027-10-31{{Update after|2027|10|31}}
| 2027-10-31
| {{Version|o|2.7}}<ref name="DistroWatch.com: openSUSE">{{cite web|url=https://distrowatch.com/table.php?distribution=suse |title=DistroWatch.com: openSUSE |publisher=DistroWatch.com |date=2017-10-14 |access-date=2017-10-15}}</ref>
| {{Version|o|2.7}}<ref name="DistroWatch.com: openSUSE">{{cite web|url=https://distrowatch.com/table.php?distribution=suse |title=DistroWatch.com: openSUSE |publisher=DistroWatch.com |date=2017-10-14 |access-date=2017-10-15}}</ref>
|
|
Line 240: Line 234:
== विकल्प ==
== विकल्प ==


CPython कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) #कार्यान्वयनों में से एक है: Java [[जावा वर्चुअल मशीन]]JVM) के लिए Java (प्रोग्रामिंग भाषा) में लिखा गया [[Jython]], [[PyPy]]#RPython में लिखा गया PyPy और C में अनुवादित, और [[IronPython]], जो सी शार्प (प्रोग्रामिंग लैंग्वेज) में लिखा गया है। [[सामान्य भाषा अवसंरचना]] के लिए सी #। कई प्रयोगात्मक कार्यान्वयन भी हैं।<ref>{{cite book | last = Martelli | first = Alex | author-link = Alex Martelli | title = Python in a Nutshell | publisher = [[O'Reilly Media|O'Reilly]] | year = 2006 | edition = 2nd | isbn = 978-0-596-10046-9 | pages = 5–7 }}</ref>
CPython कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) #कार्यान्वयनों में से है: Java [[जावा वर्चुअल मशीन]]JVM) के लिए Java (प्रोग्रामिंग भाषा) में लिखा गया [[Jython]], [[PyPy]]#RPython में लिखा गया PyPy और C में अनुवादित, और [[IronPython]], जो सी शार्प (प्रोग्रामिंग लैंग्वेज) में लिखा गया है। [[सामान्य भाषा अवसंरचना]] के लिए सी #। कई प्रयोगात्मक कार्यान्वयन भी हैं।<ref>{{cite book | last = Martelli | first = Alex | author-link = Alex Martelli | title = Python in a Nutshell | publisher = [[O'Reilly Media|O'Reilly]] | year = 2006 | edition = 2nd | isbn = 978-0-596-10046-9 | pages = 5–7 }}</ref>





Revision as of 15:14, 26 February 2023

CPython
Original author(s)Guido van Rossum
Developer(s)Python core developers and the Python community, supported by the Python Software Foundation
Initial release26 January 1994; 31 years ago (1994-01-26)
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)

CPython Python (प्रोग्रामिंग लैंग्वेज) का संदर्भ कार्यान्वयन है। C (प्रोग्रामिंग लैंग्वेज) और पायथन में लिखा गया, CPython, Python भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।

CPython को दुभाषिया (कंप्यूटिंग) और संकलक दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को बाईटकोड में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ विदेशी फ़ंक्शन इंटरफ़ेस है, जिसमें पायथन के अलावा किसी अन्य भाषा में स्पष्ट रूप से भाषा बंधन लिखनी चाहिए।

डिजाइन

CPython की विशेष विशेषता यह है कि यह प्रत्येक CPython दुभाषिया प्रक्रिया (कंप्यूटिंग) पर वैश्विक दुभाषिया लॉक (GIL) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के भीतर, किसी समय में केवल थ्रेड Python bytecode को संसाधित कर सकता है।[1] इसका मतलब यह नहीं है कि मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर) का कोई मतलब नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां थ्रेड (कंप्यूटिंग) ज्यादातर बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।

यह तब हो सकता है जब कई थ्रेड्स अलग-अलग क्लाइंट्स को सर्विस दे रहे हों। हो सकता है कि थ्रेड क्लाइंट के जवाब का इंतज़ार कर रहा हो, और दूसरा थ्रेड डेटाबेस क्वेरी के निष्पादित होने का इंतज़ार कर रहा हो, जबकि तीसरा थ्रेड वास्तव में Python कोड को प्रोसेस कर रहा हो।

हालाँकि, GIL का मतलब यह है कि CPython उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो Python कोड में CPU-गहन एल्गोरिदम को लागू करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।

वास्तविक दुनिया के अनुप्रयोगों में, ऐसी स्थितियाँ जहाँ GIL महत्वपूर्ण अड़चन है, काफी दुर्लभ हैं। ऐसा इसलिए है क्योंकि पायथन स्वाभाविक रूप से धीमी भाषा है और आमतौर पर इसका उपयोग सीपीयू-गहन या समय-संवेदनशील संचालन के लिए नहीं किया जाता है। पायथन आमतौर पर शीर्ष स्तर पर उपयोग किया जाता है और विशिष्ट कार्यों को करने के लिए पुस्तकालयों में कार्यों को बुलाता है। इन पुस्तकालयों को आम तौर पर पायथन में नहीं लिखा जाता है, और इन अंतर्निहित प्रक्रियाओं में से किसी को कॉल करने के दौरान किसी अन्य थ्रेड में पायथन कोड निष्पादित किया जा सकता है। सीपीयू-गहन कार्य करने के लिए बुलाए जाने वाले गैर-पायथन पुस्तकालय जीआईएल के अधीन नहीं हैं और बिना किसी प्रतिबंध के कई प्रोसेसर पर कई थ्रेड्स को समवर्ती रूप से निष्पादित कर सकते हैं।

पायथन कोड की समवर्ती केवल मल्टीटास्किंग ऑपरेटिंग सिस्टम द्वारा प्रबंधित अलग-अलग CPython दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह समानांतर कंप्यूटिंग के बीच संचार को जटिल बनाता है, हालांकि मल्टीप्रोसेसिंग मॉड्यूल इसे कुछ हद तक कम करता है; इसका मतलब यह है कि समवर्ती पायथन-कोड निष्पादन से वास्तव में लाभान्वित होने वाले अनुप्रयोगों को सीमित मात्रा में ओवरहेड (कंप्यूटिंग) के साथ लागू किया जा सकता है।

GIL की उपस्थिति CPython के कार्यान्वयन को सरल बनाती है, और बहु-थ्रेडेड अनुप्रयोगों को लागू करना आसान बनाती है जो समवर्ती पायथन कोड निष्पादन से लाभान्वित नहीं होते हैं। हालाँकि, GIL के बिना, मल्टीप्रोसेसिंग ऐप्स को यह सुनिश्चित करना चाहिए कि सभी सामान्य कोड थ्रेड सुरक्षित हैं।

हालाँकि GIL को खत्म करने के लिए कई प्रस्ताव दिए गए हैं, आम सहमति यह रही है कि ज्यादातर मामलों में, GIL के फायदे नुकसान से अधिक हैं; कुछ मामलों में जहां GIL अड़चन है, एप्लिकेशन को मल्टीप्रोसेसिंग संरचना के आसपास बनाया जाना चाहिए।

इतिहास


अनलादेन निगल

Unladen Swallow CPython की अनुकूलन शाखा थी, जिसका उद्देश्य पूरी तरह से संगत और काफी तेज होना था। इसका उद्देश्य CPython की कस्टम आभासी मशीन को जस्ट-इन-टाइम संकलन | समय-समय पर संकलन LLVM का उपयोग करके बनाया गया है।

परियोजना ने CPython पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;[2] यह लक्ष्य पूरा नहीं हुआ था।[3] परियोजना को Google द्वारा प्रायोजित किया गया था, और परियोजना के मालिक, थॉमस वाउटर्स, जेफरी यास्किन और कॉलिन विंटर, पूर्णकालिक Google कर्मचारी हैं; हालाँकि, अधिकांश परियोजना योगदानकर्ता Google के कर्मचारी नहीं थे।[4] Unladen Swallow को Google Developers पर होस्ट किया गया था।[5] पायथन भाषा के बारे में कई चीजों की तरह, अनलाडेन निगलना नाम मोंटी पायथन संदर्भ है, विशेष रूप [[मोंटी अजगर एंड द होली ग्रेल]] में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए।

हालांकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनलाडेन निगल ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि cPickle मॉड्यूल में सुधार।[6] जुलाई 2010 में, कुछ पर्यवेक्षकों ने अनुमान लगाया कि 2009 की चौथी तिमाही के मील के पत्थर को अभी तक जारी नहीं किया गया था कि क्या परियोजना मर चुकी थी या मर रही थी।[7] Unladen की मेलिंग सूची पर यातायात जनवरी 2010 में 500 संदेशों से घटकर सितंबर 2010 में 10 से कम हो गया था।[8] यह भी बताया गया है कि Unladen ने Google की फंडिंग खो दी है।[9] नवंबर 2010 में, मुख्य डेवलपर्स में से ने घोषणा की कि जेफरी और मुझे Google के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।[10] 2009 Q4 विकास शाखा 26 जनवरी 2010 को बनाई गई थी,[11] लेकिन वेबसाइट पर कोई विज्ञापन नहीं किया गया था। इसके अलावा, लंबी अवधि की योजनाओं के बारे में, और जैसा कि परियोजना ने पायथन 2.7 रिलीज को याद किया, पायथन संवर्द्धन प्रस्ताव (पीईपी)[3]स्वीकार कर लिया गया, जिसने पायथन के आधिकारिक रिपॉजिटरी (संस्करण नियंत्रण) की विशेष py3k-jit शाखा में Unladen Swallow के विलय का प्रस्ताव दिया। जुलाई 2010 तक यह काम चल रहा था।[12] इस विलय में कुछ समय लग सकता था, क्योंकि Unladen Swallow मूल रूप से Python 2.6 पर आधारित था[13] जिसके साथ Python 3 ने संगतता तोड़ दी (अधिक विवरण के लिए Python 3000 देखें)। हालाँकि, बाद में PEP को वापस ले लिया गया था।

2011 की शुरुआत में, यह स्पष्ट हो गया कि परियोजना को रोक दिया गया था।[14]


अनलादेन निगल रिलीज इतिहास

  • 2009 Q1[15]
  • 2009 उल्टी[16]
  • 2009 Q3: स्मृति उपयोग कम करें, गति में सुधार करें[17]


वितरण

आधिकारिक तौर पर समर्थित टियर-1 प्लेटफॉर्म खिड़कियाँ, लिनक्स और मैकओएस (और रास्पबेरी पाई ओएस, और निचले स्तर पर s390x के लिए लिनक्स) हैं।

ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:[18]

यूनिक्स की तरह
विशेष और एम्बेडेड
अन्य

पीईपी 11[19] पायथन सॉफ्टवेयर फाउंडेशन द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी बंदरगाहों द्वारा समर्थित किया जा सकता है। इन बंदरगाहों में शामिल हैं:

बाहरी पोर्ट जो कि Python Software Foundation के CPython के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अक्सर प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे PSP के लिए ग्राफिक्स और ध्वनि API और S60 के लिए SMS और कैमरा API। इन बंदरगाहों में शामिल हैं:


एंटरप्राइज़ लिनक्स

ये पायथन संस्करण वर्तमान में समर्थित एंटरप्राइज़ लिनक्स वितरण के साथ वितरित किए गए हैं।[28] तालिका में पायथन की समर्थन स्थिति का तात्पर्य पायथन कोर टीम से समर्थन से है, न कि वितरण अनुरक्षक से।

Enterprise Linux
Distribution version Distribution end-of-life Python version
Ubuntu 22.04 LTS (Jammy Jellyfish) 3.10 [1]
Ubuntu 20.04 LTS (Focal Fossa) 2030-04[29][needs update] [30] Older version, yet still maintained: 3.8[31][needs update]
Ubuntu 18.04 LTS (Bionic Beaver) 2028-04[32] Old version, no longer maintained: 2.7[33] Old version, no longer maintained: 3.6[34]
Ubuntu 16.04 LTS (Xenial Xerus) 2021-04-30[35][needs update] Old version, no longer maintained: 2.7[33] Old version, no longer maintained: 3.5[34]
Debian 11 2026-06[36] Older version, yet still maintained: 3.9[36][needs update]
Debian 10 2024-06[37] Old version, no longer maintained: 2.7[38] Older version, yet still maintained: 3.7[39][needs update]
Debian 9 2022-06-30[40][needs update] Old version, no longer maintained: 2.7[41] Old version, no longer maintained: 3.5[42]
Red Hat Enterprise Linux 8 2029 Old version, no longer maintained: 2.7[43] Old version, no longer maintained: 3.6
Red Hat Enterprise Linux 7 2024-11-30[44] Old version, no longer maintained: 2.7[45]
CentOS 8 2029-05-31 Old version, no longer maintained: 2.7 Old version, no longer maintained: 3.6
CentOS 7 2024-06-30 Old version, no longer maintained: 2.7[46]
SUSE Linux Enterprise Server 15 2031-07-31 Old version, no longer maintained: 2.7[47] Old version, no longer maintained: 3.6
SUSE Linux Enterprise Server 12 2027-10-31 Old version, no longer maintained: 2.7[48]
SUSE Linux Enterprise Server 11 2022-03-31[needs update] Old version, no longer maintained: 2.7[48]
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release


विकल्प

CPython कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) #कार्यान्वयनों में से है: Java जावा वर्चुअल मशीनJVM) के लिए Java (प्रोग्रामिंग भाषा) में लिखा गया Jython, PyPy#RPython में लिखा गया PyPy और C में अनुवादित, और IronPython, जो सी शार्प (प्रोग्रामिंग लैंग्वेज) में लिखा गया है। सामान्य भाषा अवसंरचना के लिए सी #। कई प्रयोगात्मक कार्यान्वयन भी हैं।[49]


संदर्भ

  1. "Initialization, Finalization, and Threads". Python v3.8.3 documentation. Retrieved 2020-06-04.
  2. Paul, Ryan (2009-03-26). "Ars Technica report on Unladen Swallow goals". Arstechnica.com. Retrieved 2011-08-19.
  3. 3.0 3.1 Winter, Collin; Yasskin, Jeffrey; Kleckner, Reid (2010-03-17). "PEP 3146 - Merging Unladen Swallow into CPython". Python.org.
  4. "People working on Unladen Swallow". Archived from the original on 2015-10-29. Retrieved 2019-08-08.
  5. "Unladen Swallow project page". Retrieved 2011-08-19.
  6. "Issue 9410: Add Unladen Swallow's optimizations to Python 3's pickle. - Python tracker". bugs.python.org. Retrieved 2019-08-08.
  7. "Message on comp.lang.python". Retrieved 2011-08-19.
  8. "Unladen Swallow | Google Groups". Retrieved 2011-08-19.
  9. "reddit post by an Unladen committer". Reddit.com. 2010-06-24. Retrieved 2011-08-19.
  10. Winter, Collin (8 November 2010). "Current status of Unladen-Swallow".
  11. "2009 Q4 release branch creation". 2010-01-26. Retrieved 2011-08-19.
  12. "Developers focus on merge into py3k-jit". 2010-07-13. Retrieved 2011-08-19.
  13. "Unladen Swallow baseline". Python.org. Retrieved 2011-08-19.
  14. Kleckner, Reid (26 March 2011). "Unladen Swallow Retrospective". QINSB is not a Software Blog (qinsb.blogspot.com).
  15. "Unladen Swallow 2009Q1". unladen-swallow, A faster implementation of Python. Retrieved 19 October 2012.
  16. "Unladen Swallow 2009Q2". unladen-swallow, A faster implementation of Python. Retrieved 19 October 2012.
  17. "Unladen Swallow 2009Q3". unladen-swallow, A faster implementation of Python. Retrieved 19 October 2012.
  18. "PythonImplementations". Retrieved 19 July 2012.
  19. "PEP 11 -- Removing support for little used platforms". Python.org (in English). Retrieved 2019-08-08.
  20. "Irix still supported?".
  21. AmigaPython
  22. iSeriesPython
  23. PythonD
  24. http://yellowblue.free.fr/yiki/doku.php/en:dev:python:start Python 2 and 3
  25. Stackless Python for PSP
  26. Python Windows CE port
  27. "Python". VSI. Retrieved 2021-08-31.
  28. https://linuxlifecycle.com
  29. "Ubuntu release cycle". Ubuntu (in English). Retrieved 2021-01-18.
  30. "With Python 2 EOL'ed, Ubuntu 20.04 LTS Moves Along With Its Python 2 Removal - Phoronix". www.phoronix.com. Retrieved 2020-04-01.
  31. "Binary package "python3" in ubuntu focal". Launchpad.net.
  32. "Ubuntu 18.04 extended to 2028". ServerWatch.com. 2018-11-15. Retrieved 2019-09-09.
  33. 33.0 33.1 "python-defaults package : Ubuntu". Canonical Ltd. 2018-06-08. Retrieved 2018-06-08.
  34. 34.0 34.1 "python3-defaults package : Ubuntu". Canonical Ltd. 2018-06-08. Retrieved 2018-06-08.
  35. Science, Carnegie Mellon University School of Computer. "Ubuntu 16.04 - End of Life in 2021 - SCS Computing Facilities - Carnegie Mellon University". computing.cs.cmu.edu (in English). Retrieved 2021-02-15.
  36. 36.0 36.1 "Debian -- News -- Debian 11 "bullseye" released". www.debian.org. Retrieved 2022-01-04.
  37. "LTS - Debian Wiki". wiki.debian.org. Retrieved 2021-02-15.
  38. "Debian -- Details of package python in buster". packages.debian.org. Retrieved 2019-09-13.
  39. "Debian -- News -- Debian 10 "buster" released". www.debian.org. Retrieved 2019-08-09.
  40. "Debian -- News -- Debian 8 Long Term Support reaching end-of-life". www.debian.org. Retrieved 2021-02-15.
  41. "DistroWatch.com: Debian". DistroWatch.com. 2017-10-15. Retrieved 2017-10-15.
  42. "Debian -- Details of package python3 in stretch". Retrieved 2017-12-19.
  43. "Python in RHEL 8". Red Hat Developer Blog (in English). 2018-11-14. Archived from the original on 2019-05-10. Retrieved 2019-05-10.
  44. "Red Hat Enterprise Linux Life Cycle". Red Hat Customer Portal (in English). Retrieved 2020-04-01.
  45. "DistroWatch.com: Red Hat Enterprise Linux". DistroWatch.com. 2017-09-07. Retrieved 2017-10-15.
  46. "DistroWatch.com: CentOS". DistroWatch.com. 2017-09-14. Retrieved 2017-10-15.
  47. "Release Notes | SUSE Linux Enterprise Desktop/SUSE Linux Enterprise Workstation Extension 15 GA". www.suse.com. Retrieved 2019-08-08.
  48. 48.0 48.1 "DistroWatch.com: openSUSE". DistroWatch.com. 2017-10-14. Retrieved 2017-10-15.
  49. Martelli, Alex (2006). Python in a Nutshell (2nd ed.). O'Reilly. pp. 5–7. ISBN 978-0-596-10046-9.


अग्रिम पठन

  • Shaw, Anthony (2021). CPython Internals: Your Guide to the Python 3 Interpreter. Real Python. ISBN 9781775093343.


बाहरी संबंध