सीपीथॉन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 22: Line 22:
सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का [[संदर्भ कार्यान्वयन]] है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।
सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का [[संदर्भ कार्यान्वयन]] है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।


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


== डिजाइन ==
== डिजाइन ==
सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया [[प्रक्रिया (कंप्यूटिंग)]] पर वैश्विक दुभाषिया लॉक (जीआईएल) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के भीतर, किसी समय में केवल थ्रेड पायथन बाइटकोड को संसाधित कर सकता है।<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> इसका मतलब यह नहीं है कि [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] का कोई मतलब नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां [[थ्रेड (कंप्यूटिंग)]] ज्यादातर बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।
सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया [[प्रक्रिया (कंप्यूटिंग)]] पर वैश्विक दुभाषिया बन्ध (जीआईएल) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के अन्दर, किसी समय में केवल थ्रेड पायथन बाइटकोड को संसाधित कर सकता है।<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> इसका अर्थ यह नहीं है कि [[मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर)]] का कोई अर्थ नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां [[थ्रेड (कंप्यूटिंग)]] अधिकांश बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।


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


हालाँकि, जीआईएल का मतलब यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को लागू करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।
चूँकि, जीआईएल का अर्थ यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को प्रायुक्त करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।


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


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


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


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


== इतिहास ==
== इतिहास ==
Line 43: Line 43:




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


परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;<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>
परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;<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>
पायथन भाषा के बारे में कई चीजों की तरह, अनलाडेन [[निगलना]] नाम मोंटी पायथन संदर्भ है, विशेष रूप [[[[मोंटी अजगर]] एंड द होली ग्रेल]] में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए।


हालांकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनलाडेन निगल ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि 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>
परियोजना को [[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> अनल्डेन स्वल्लो को [[Google Developers|गूगल विकासक]] पर होस्ट किया गया था।<ref>{{cite web|url=https://code.google.com/p/unladen-swallow/ |title=Unladen Swallow project page |access-date=2011-08-19}}</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 मूल रूप से पायथन 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> जिसके साथ पायथन 3 ने संगतता तोड़ दी (अधिक विवरण के लिए [[Python 3000|पायथन 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>
पायथन भाषा के बारे में कई चीजों की तरह, अनल्डेन [[निगलना|स्वल्लो]] नाम मोंटी पायथन संदर्भ है, जो विशेष रूप [[मोंटी अजगर|मोंटी पायथन]] एंड द होली ग्रेल में अनलडेन स्वैलोज़ के एयरस्पीड वेग के बारे में मजाक के लिए हैं।


चूंकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनल्डेन स्वल्लो ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि सीपिकल मॉड्यूल में सुधार।<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> अनल्डेन की मेलिंग सूची पर यातायात जनवरी 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> यह भी बताया गया है कि अनल्डेन ने गूगल की फंडिंग खो दी है।<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 में, मुख्य विकासक में से ने घोषणा की कि जेफरी और मुझे गूगल के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।<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 शाखा में अनल्डेन स्वल्लो के विलय का प्रस्ताव दिया। जुलाई 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> इस विलय में कुछ समय लग सकता था, क्योंकि अनल्डेन स्वल्लो मूल रूप से पायथन 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> जिसके साथ पायथन 3 ने संगतता तोड़ दी (अधिक विवरण के लिए [[Python 3000|पायथन 3000]] देखें)। चूँकि, बाद में पीईपी को वापस ले लिया गया था।
 
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>
 
 
====अनल्डेन स्वल्लो रिलीज इतिहास====
* 2009 Q1<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q1 | title = Unladen Swallow 2009Q1 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref>
* 2009 Q1<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q1 | title = Unladen Swallow 2009Q1 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref>
* 2009 उल्टी<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q2  | title = Unladen Swallow 2009Q2 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref>
* 2009 उल्टी<ref>{{cite web | url = https://code.google.com/p/unladen-swallow/wiki/Release2009Q2  | title = Unladen Swallow 2009Q2 | publisher = unladen-swallow, A faster implementation of Python | access-date = 19 October 2012}}</ref>
Line 65: Line 69:
== वितरण ==
== वितरण ==


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


ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:<ref>{{cite web |title=PythonImplementations |url=https://wiki.python.org/moin/PythonImplementations |access-date=19 July 2012}}</ref>
ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:<ref>{{cite web |title=PythonImplementations |url=https://wiki.python.org/moin/PythonImplementations |access-date=19 July 2012}}</ref>
Line 111: Line 115:
* [[जेड/ओएस]]{{citation needed|date=अगस्त 2019}}
* [[जेड/ओएस]]{{citation needed|date=अगस्त 2019}}
}}
}}
पीईपी 11<ref>{{Cite web|url=https://www.python.org/dev/peps/pep-0011/|title=PEP 11 -- Removing support for little used platforms|website=Python.org|language=en|access-date=2019-08-08}}</ref> [[पायथन सॉफ्टवेयर फाउंडेशन]] द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी बंदरगाहों द्वारा समर्थित किया जा सकता है। इन बंदरगाहों में शामिल हैं:
पीईपी 11<ref>{{Cite web|url=https://www.python.org/dev/peps/pep-0011/|title=PEP 11 -- Removing support for little used platforms|website=Python.org|language=en|access-date=2019-08-08}}</ref> [[पायथन सॉफ्टवेयर फाउंडेशन]] द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी पोर्ट्स द्वारा समर्थित किया जा सकता है। इन पोर्ट्स में शामिल हैं:


{{columns-list|colwidth=30em|* [[एदीओएस]] (2.6 से असमर्थित)
{{columns-list|colwidth=30em|* [[एदीओएस]] (2.6 से असमर्थित)
Line 128: Line 132:
* [[विंडोज 9एक्स]] (2.6 से असमर्थित)
* [[विंडोज 9एक्स]] (2.6 से असमर्थित)
* [[विंडोज एनटी4]] (2.6 से असमर्थित)}}
* [[विंडोज एनटी4]] (2.6 से असमर्थित)}}
बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अक्सर प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे PSP के लिए ग्राफिक्स और ध्वनि API और S60 के लिए SMS और कैमरा API। इन बंदरगाहों में शामिल हैं:
बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अधिकांश प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे पीएसपी के लिए ग्राफिक्स और ध्वनि एपीआई और एस60 के लिए एसएमएस और कैमरा एपीआई। इन पोर्ट्स में शामिल हैं:


{{columns-list|colwidth=30em|
{{columns-list|colwidth=30em|
* [[Amiga]]: AmigaPython<ref>[http://www.monkeyhouse.eclipse.co.uk/amiga/python/ AmigaPython]</ref>
* [[अमीगा]]: अमीगापायथन<ref>[http://www.monkeyhouse.eclipse.co.uk/amiga/python/ AmigaPython]</ref>
* [[IBM i]]: iSeriesPython<ref>[http://www.iseriespython.com/ iSeriesPython]</ref>
* [[आईबीएम आई]]: आईसीरीजपायथन<ref>[http://www.iseriespython.com/ iSeriesPython]</ref>
* [[DOS]] using [[DJGPP]]: PythonD<ref>[http://www.caddit.net/pythond PythonD]</ref>
* [[डॉस]] [[डीजेजीपीपी]] का उपयोग करते हुए: पायथनडी<ref>[http://www.caddit.net/pythond PythonD]</ref>
* [[MorphOS]]: Python 2 and 3<ref>http://yellowblue.free.fr/yiki/doku.php/en:dev:python:start Python 2 and 3</ref>
* [[मॉर्फोस]]: पायथन 2 और 3<ref>http://yellowblue.free.fr/yiki/doku.php/en:dev:python:start Python 2 and 3</ref>
* [[PlayStation Portable]]: Stackless Python for PSP<ref>[http://code.google.com/p/pspstacklesspython/ Stackless Python for PSP]</ref>
* [[प्लेस्टेशन पोर्टेबल]]: पीएसपी के लिए स्टैकलेस पायथन<ref>[http://code.google.com/p/pspstacklesspython/ Stackless Python for PSP]</ref>
* [[Symbian OS]]: [[Python for S60]]
* [[सिम्बियन ओएस]]: [[पायथन फॉर एस60]]
* [[Windows CE]]/[[Pocket PC]]: Python Windows CE port<ref>[http://pythonce.sourceforge.net/ Python Windows CE port]</ref>
* [[विंडोज सीई]]/[[पॉकेट पीसी]]: पायथन विंडोज सीई पोर्ट<ref>[http://pythonce.sourceforge.net/ Python Windows CE port]</ref>
* [[OpenVMS]]: Ports of Python 3.x are maintained by VSI<ref>{{cite web|url=https://vmssoftware.com/products/python/|title=Python|access-date=2021-08-31|website=VSI}}</ref>
* [[ओपनवीएमएस]]: पाइथन 3.x के पोर्ट्स का रखरखाव वीएसआई द्वारा किया जाता है<ref>{{cite web|url=https://vmssoftware.com/products/python/|title=Python|access-date=2021-08-31|website=VSI}}</ref>
}}
}}


Line 147: Line 151:


{| class="wikitable sortable"
{| class="wikitable sortable"
|+ Enterprise Linux
|+ उद्यम लिनक्स
! Distribution version
! वितरण संस्करण
! Distribution [[End-of-life (product)|end-of-life]]
! वितरण [[End-of-life (product)|जीवन का अंत]]
! colspan="2" | पायथन version
! colspan="2" | पायथन संस्करण
|-
|-
|[[Ubuntu (operating system)|Ubuntu]] 22.04 LTS (Jammy Jellyfish)
|[[Ubuntu (operating system)|उबंटू]] 22.04 एलटीएस (जैमी जेलिफ़िश)
|
|
|
|
| 3.10 [https://launchpad.net/ubuntu/jammy/+package/python3]
| 3.10 [https://launchpad.net/ubuntu/jammy/+package/python3]
|-
|-
|[[Ubuntu (operating system)|Ubuntu]] 20.04 LTS (Focal Fossa)
|[[Ubuntu (operating system)|उबंटू]] 20.04 एलटीएस (फोकल फोसा)
| 2030-04<ref>{{Cite web|title=Ubuntu release cycle|url=https://ubuntu.com/about/release-cycle|access-date=2021-01-18|website=Ubuntu|language=en}}</ref>{{Update after|2021|04|23}}
| 2030-04<ref>{{Cite web|title=Ubuntu release cycle|url=https://ubuntu.com/about/release-cycle|access-date=2021-01-18|website=Ubuntu|language=en}}</ref>{{Update after|2021|04|23}}
|<ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Python-2-EOL-Ubuntu-20.04|title=With Python 2 EOL'ed, Ubuntu 20.04 LTS Moves Along With Its Python 2 Removal - Phoronix|website=www.phoronix.com|access-date=2020-04-01}}</ref>
|<ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Python-2-EOL-Ubuntu-20.04|title=With Python 2 EOL'ed, Ubuntu 20.04 LTS Moves Along With Its Python 2 Removal - Phoronix|website=www.phoronix.com|access-date=2020-04-01}}</ref>
| {{Version|co|3.8}}<ref>{{Cite web|url=https://launchpad.net/ubuntu/focal/+package/python3|title=Binary package "python3" in ubuntu focal|website=Launchpad.net}}</ref>{{Update after|2024|10}}
| {{Version|co|3.8}}<ref>{{Cite web|url=https://launchpad.net/ubuntu/focal/+package/python3|title=Binary package "python3" in ubuntu focal|website=Launchpad.net}}</ref>{{Update after|2024|10}}
|-
|-
| Ubuntu 18.04 LTS (Bionic Beaver)
| उबंटू 18.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>
| 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>
|-
|-
| Ubuntu 16.04 LTS (Xenial Xerus)
| उबंटू 16.04 एलटीएस (जेनियल ज़ेरस)
| 2021-04-30<ref>{{Cite web|last=Science|first=Carnegie Mellon University School of Computer|date=|title=Ubuntu 16.04 - End of Life in 2021 - SCS Computing Facilities - Carnegie Mellon University|url=http://computing.cs.cmu.edu/news/2020/eol-ubuntu-1604.html|access-date=2021-02-15|website=computing.cs.cmu.edu|language=en}}</ref>{{Update after|2021|04|30}}
| 2021-04-30<ref>{{Cite web|last=Science|first=Carnegie Mellon University School of Computer|date=|title=Ubuntu 16.04 - End of Life in 2021 - SCS Computing Facilities - Carnegie Mellon University|url=http://computing.cs.cmu.edu/news/2020/eol-ubuntu-1604.html|access-date=2021-02-15|website=computing.cs.cmu.edu|language=en}}</ref>{{Update after|2021|04|30}}
| {{Version|o|2.7}}<ref name="ubuntu-py2"/>
| {{Version|o|2.7}}<ref name="ubuntu-py2"/>
| {{Version|o|3.5}}<ref name="ubuntu-py3"/>
| {{Version|o|3.5}}<ref name="ubuntu-py3"/>
|-
|-
| [[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>
| 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
| डेबियन 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>
| 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}}
|-
|-
| Debian 9
| डेबियन 9
| 2022-06-30<ref>{{Cite web|title=Debian -- News -- Debian 8 Long Term Support reaching end-of-life|url=https://www.debian.org/News/2020/20200709.en.html|access-date=2021-02-15|website=www.debian.org}}</ref>{{Update after|2022|06|30}}
| 2022-06-30<ref>{{Cite web|title=Debian -- News -- Debian 8 Long Term Support reaching end-of-life|url=https://www.debian.org/News/2020/20200709.en.html|access-date=2021-02-15|website=www.debian.org}}</ref>{{Update after|2022|06|30}}
| {{Version|o|2.7}}<ref>{{cite web|url=https://distrowatch.com/table.php?distribution=debian |title=DistroWatch.com: Debian |publisher=DistroWatch.com |date=2017-10-15 |access-date=2017-10-15}}</ref>
| {{Version|o|2.7}}<ref>{{cite web|url=https://distrowatch.com/table.php?distribution=debian |title=DistroWatch.com: Debian |publisher=DistroWatch.com |date=2017-10-15 |access-date=2017-10-15}}</ref>
| {{Version|o|3.5}}<ref>{{cite web|url=https://packages.debian.org/stretch/python3 |title=Debian -- Details of package python3 in stretch |access-date=2017-12-19}}</ref>
| {{Version|o|3.5}}<ref>{{cite web|url=https://packages.debian.org/stretch/python3 |title=Debian -- Details of package python3 in stretch |access-date=2017-12-19}}</ref>
|-
|-
| [[Red Hat Enterprise Linux]] 8
| [[Red Hat Enterprise Linux|रेड हैट एंटरप्राइज लिनक्स 8]]  
| 2029
| 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
| रेड हैट एंटरप्राइज लिनक्स 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>
| 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
| 2029-05-31
| {{Version|o|2.7}}
| {{Version|o|2.7}}
| {{Version|o|3.6}}
| {{Version|o|3.6}}
|-
|-
| CentOS 7
| सेंटओएस 7
| 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|एसयूएसई लिनक्स एंटरप्राइज़ सर्वर]] 15
| 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
| एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 12
| 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>
|
|
|-
|-
| SUSE Linux Enterprise Server 11
| एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 11
| 2022-03-31{{Update after|2022|03|31}}
| 2022-03-31{{Update after|2022|03|31}}
| {{Version|o|2.7}}<ref name="DistroWatch.com: openSUSE"/>
| {{Version|o|2.7}}<ref name="DistroWatch.com: openSUSE"/>
Line 228: Line 232:
== विकल्प ==
== विकल्प ==


सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) #कार्यान्वयनों में से है: Java [[जावा वर्चुअल मशीन]]JVM) के लिए Java (प्रोग्रामिंग भाषा) में लिखा गया [[Jython]], [[PyPy]]#Rपायथन में लिखा गया PyPy और C में अनुवादित, और [[IronPython|Ironपायथन]], जो सी शार्प (प्रोग्रामिंग भाषा) में लिखा गया है। [[सामान्य भाषा अवसंरचना]] के लिए सी #। कई प्रयोगात्मक कार्यान्वयन भी हैं।<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>
सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) कार्यान्वयनों में से एक है: ज्योथन [[जावा वर्चुअल मशीन]] (जेवीएम) के लिए जावा (प्रोग्रामिंग भाषा) में लिखा गया [[Jython|ज्योथन]], [[PyPy]] आरपायथन में लिखा गया हैं और सी में अनुवादित हैं, और [[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>




Line 245: Line 249:


{{Python (programming language)}}
{{Python (programming language)}}
[[Category: निःशुल्क संकलक और दुभाषिए]] [[Category: सी में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]] [[Category: पायथन (प्रोग्रामिंग भाषा) कार्यान्वयन]] [[Category: पीएसएफ लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]] [[Category: पायथन में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]] [[Category: स्टैक-आधारित वर्चुअल मशीनें]]


[[Category: Machine Translated Page]]
[[Category:All Wikipedia articles in need of updating]]
[[Category:All articles with unsourced statements]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Articles with unsourced statements from अगस्त 2019]]
[[Category:CS1 English-language sources (en)]]
[[Category:CS1 errors]]
[[Category:Collapse templates]]
[[Category:Created On 18/02/2023]]
[[Category:Created On 18/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Multi-column templates]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages using Infobox software with unknown parameters|मंचसीपीथॉन]]
[[Category:Pages using div col with small parameter]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Templates using under-protected Lua modules]]
[[Category:Wikipedia articles in need of updating from April 2021]]
[[Category:Wikipedia articles in need of updating from June 2022]]
[[Category:Wikipedia articles in need of updating from March 2022]]
[[Category:Wikipedia articles scheduled for update tagging]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:Wikipedia metatemplates]]
[[Category:निःशुल्क संकलक और दुभाषिए]]
[[Category:पायथन (प्रोग्रामिंग भाषा) कार्यान्वयन]]
[[Category:पायथन में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]]
[[Category:पीएसएफ लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]]
[[Category:सी में मुफ्त सॉफ्टवेयर प्रोग्राम किया गया]]
[[Category:स्टैक-आधारित वर्चुअल मशीनें]]

Latest revision as of 16:10, 16 March 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.)

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

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

डिजाइन

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

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

चूँकि, जीआईएल का अर्थ यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को प्रायुक्त करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।

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

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

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

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

इतिहास


अनल्डेन स्वल्लो

अनल्डेन स्वल्लो सीपीथॉन की अनुकूलन शाखा थी, जिसका उद्देश्य पूरी तरह से संगत और अधिक तेज होना था। इसका उद्देश्य सीपीथॉन की कस्टम आभासी मशीन को समय-समय पर संकलन एलएलवीएम का उपयोग करके बनाया गया है।

परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;[2] यह लक्ष्य पूरा नहीं हुआ था।[3]

परियोजना को गूगल द्वारा प्रायोजित किया गया था, और परियोजना के मालिक, थॉमस वाउटर्स, जेफरी यास्किन और कॉलिन विंटर, पूर्णकालिक गूगल कर्मचारी हैं; चूँकि, अधिकांश परियोजना योगदानकर्ता गूगल के कर्मचारी नहीं थे।[4] अनल्डेन स्वल्लो को गूगल विकासक पर होस्ट किया गया था।[5]

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

चूंकि यह सभी प्रकाशित लक्ष्यों से कम हो गया, अनल्डेन स्वल्लो ने कुछ कोड का उत्पादन किया जो मुख्य पायथन कार्यान्वयन में जोड़ा गया, जैसे कि सीपिकल मॉड्यूल में सुधार।[6]

जुलाई 2010 में, कुछ पर्यवेक्षकों ने अनुमान लगाया कि 2009 की चौथी तिमाही के मील के पत्थर को अभी तक जारी नहीं किया गया था कि क्या परियोजना मर चुकी थी या मर रही थी।[7] अनल्डेन की मेलिंग सूची पर यातायात जनवरी 2010 में 500 संदेशों से घटकर सितंबर 2010 में 10 से कम हो गया था।[8] यह भी बताया गया है कि अनल्डेन ने गूगल की फंडिंग खो दी है।[9] नवंबर 2010 में, मुख्य विकासक में से ने घोषणा की कि जेफरी और मुझे गूगल के लिए उच्च महत्व की अन्य परियोजनाओं पर खींच लिया गया है।[10]

2009 Q4 विकास शाखा 26 जनवरी 2010 को बनाई गई थी,[11] किन्तु वेबसाइट पर कोई विज्ञापन नहीं किया गया था। इसके अतिरिक्त, लंबी अवधि की योजनाओं के बारे में, और जैसा कि परियोजना ने पायथन 2.7 रिलीज को याद किया, पायथन संवर्द्धन प्रस्ताव (पीईपी)[3] स्वीकार कर लिया गया, जिसने पायथन के आधिकारिक रिपॉजिटरी (संस्करण नियंत्रण) की विशेष py3k-jit शाखा में अनल्डेन स्वल्लो के विलय का प्रस्ताव दिया। जुलाई 2010 तक यह काम चल रहा था।[12] इस विलय में कुछ समय लग सकता था, क्योंकि अनल्डेन स्वल्लो मूल रूप से पायथन 2.6 पर आधारित था[13] जिसके साथ पायथन 3 ने संगतता तोड़ दी (अधिक विवरण के लिए पायथन 3000 देखें)। चूँकि, बाद में पीईपी को वापस ले लिया गया था।

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


अनल्डेन स्वल्लो रिलीज इतिहास

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


वितरण

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

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

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

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

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


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

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

उद्यम लिनक्स
वितरण संस्करण वितरण जीवन का अंत पायथन संस्करण
उबंटू 22.04 एलटीएस (जैमी जेलिफ़िश) 3.10 [1]
उबंटू 20.04 एलटीएस (फोकल फोसा) 2030-04[29][needs update] [30] Older version, yet still maintained: 3.8[31][needs update]
उबंटू 18.04 एलटीएस (बायोनिक बीवर) 2028-04[32] Old version, no longer maintained: 2.7[33] Old version, no longer maintained: 3.6[34]
उबंटू 16.04 एलटीएस (जेनियल ज़ेरस) 2021-04-30[35][needs update] Old version, no longer maintained: 2.7[33] Old version, no longer maintained: 3.5[34]
डेबियन 11 2026-06[36] Older version, yet still maintained: 3.9[36][needs update]
डेबियन 10 2024-06[37] Old version, no longer maintained: 2.7[38] Older version, yet still maintained: 3.7[39][needs update]
डेबियन 9 2022-06-30[40][needs update] Old version, no longer maintained: 2.7[41] Old version, no longer maintained: 3.5[42]
रेड हैट एंटरप्राइज लिनक्स 8 2029 Old version, no longer maintained: 2.7[43] Old version, no longer maintained: 3.6
रेड हैट एंटरप्राइज लिनक्स 7 2024-11-30[44] Old version, no longer maintained: 2.7[45]
सेंटओएस 8 2029-05-31 Old version, no longer maintained: 2.7 Old version, no longer maintained: 3.6
सेंटओएस 7 2024-06-30 Old version, no longer maintained: 2.7[46]
एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 15 2031-07-31 Old version, no longer maintained: 2.7[47] Old version, no longer maintained: 3.6
एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 12 2027-10-31 Old version, no longer maintained: 2.7[48]
एसयूएसई लिनक्स एंटरप्राइज़ सर्वर 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


विकल्प

सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) कार्यान्वयनों में से एक है: ज्योथन जावा वर्चुअल मशीन (जेवीएम) के लिए जावा (प्रोग्रामिंग भाषा) में लिखा गया ज्योथन, PyPy आरपायथन में लिखा गया हैं और सी में अनुवादित हैं, और आयरनपायथन, जोसामान्य भाषा अवसंरचना सी शार्प (प्रोग्रामिंग भाषा) में लिखा गया है। कई प्रयोगात्मक कार्यान्वयन भी हैं।[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. -फ़रवरी/086111.html "Irix अभी भी समर्थित है?". {{cite web}}: Check |url= value (help)
  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.


बाहरी संबंध