सीपीथॉन: Difference between revisions
No edit summary |
No edit summary |
||
| Line 88: | Line 88: | ||
* [[जीपी2एक्स]] | * [[जीपी2एक्स]] | ||
* [[आइपॉडलिनक्स]] | * [[आइपॉडलिनक्स]] | ||
* [[ | * [[निनटेंडो डी एस]] | ||
* [[निंटेंडो गेमक्यूब]] | * [[निंटेंडो गेमक्यूब]] | ||
* [[एस60 (सॉफ्टवेयर प्लेटफॉर्म)|सिम्बियन ओएस सीरीज60]] | * [[एस60 (सॉफ्टवेयर प्लेटफॉर्म)|सिम्बियन ओएस सीरीज60]] | ||
| Line 106: | Line 106: | ||
; अन्य: | ; अन्य: | ||
{{columns-list|colwidth=30em| | {{columns-list|colwidth=30em| | ||
* [[ | * [[एआरओएस]] | ||
* [[ | * [[ओएस/390]] | ||
* [[ | * [[विंडोज विस्टा]] और बाद में | ||
* [[ | * [[जेड/ओएस]]{{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| | {{columns-list|colwidth=30em|* [[एदीओएस]] (2.6 से असमर्थित) | ||
* [[ | * [[बीओएस]] (2.6 से असमर्थित) | ||
* [[ | * [[डॉस]] (2.0 से असमर्थित) | ||
* [[ | * [[IRIX]] 4 (2.3 से असमर्थित) | ||
* [[IRIX]] 4 ( | * [[IRIX]] 5 और बाद में (3.2, 3.7 से असमर्थित)<ref>{{cite web|title=Irix अभी भी समर्थित है?|url=https://mail.python.org/pipermail/python-dev/2009 -फ़रवरी/086111.html}}</ref> | ||
* [[IRIX]] 5 | * [[मैक ओएस 9]] (2.4 से असमर्थित) | ||
* [[ | * [[मिनिक्स]] (2.3 से असमर्थित) | ||
* [[ | * [[ओपनवीएमएस]] (3.3 से असमर्थित) | ||
* [[ | * [[ओएस/2]] (3.3 से असमर्थित) | ||
* [[ | * [[आरआईएससी ओएस]] (3.0 से असमर्थित) | ||
* [[ | * [[विंडोज एक्सपी]] (3.5 से असमर्थित) | ||
* [[ | * [[विंडोज 2000]] (3.3 से असमर्थित) | ||
* [[ | * [[विंडोज 3.एक्स]] (2.0 से असमर्थित) | ||
* [[ | * [[विंडोज 9एक्स]] (2.6 से असमर्थित) | ||
* [[ | * [[विंडोज एनटी4]] (2.6 से असमर्थित)}} | ||
* [[ | |||
}} | |||
बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अक्सर प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे PSP के लिए ग्राफिक्स और ध्वनि API और S60 के लिए SMS और कैमरा API। इन बंदरगाहों में शामिल हैं: | बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अक्सर प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे PSP के लिए ग्राफिक्स और ध्वनि API और S60 के लिए SMS और कैमरा API। इन बंदरगाहों में शामिल हैं: | ||
Revision as of 15:34, 26 February 2023
| Original author(s) | Guido van Rossum |
|---|---|
| Developer(s) | Python core developers and the Python community, supported by the Python Software Foundation |
| Initial release | 26 January 1994 |
| 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. |
सीपीथॉन पायथन (प्रोग्रामिंग भाषा) का संदर्भ कार्यान्वयन है। सी (प्रोग्रामिंग भाषा) और पायथन में लिखा गया, सीपीथॉन, पायथन भाषा का डिफ़ॉल्ट और सबसे व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन है।
सीपीथॉन को दुभाषिया (कंप्यूटिंग) और संकलक दोनों के रूप में परिभाषित किया जा सकता है क्योंकि यह व्याख्या करने से पहले पायथन कोड को बाईटकोड में संकलित करता है। इसमें सी सहित कई भाषाओं के साथ विदेशी फ़ंक्शन इंटरफ़ेस है, जिसमें पायथन के अलावा किसी अन्य भाषा में स्पष्ट रूप से भाषा बंधन लिखनी चाहिए।
डिजाइन
सीपीथॉन की विशेष विशेषता यह है कि यह प्रत्येक सीपीथॉन दुभाषिया प्रक्रिया (कंप्यूटिंग) पर वैश्विक दुभाषिया लॉक (जीआईएल) का उपयोग करता है, जिसका अर्थ है कि ही प्रक्रिया के भीतर, किसी समय में केवल थ्रेड पायथन बाइटकोड को संसाधित कर सकता है।[1] इसका मतलब यह नहीं है कि मल्टीथ्रेडिंग (कंप्यूटर आर्किटेक्चर) का कोई मतलब नहीं है; सबसे आम मल्टीथ्रेडिंग परिदृश्य वह है जहां थ्रेड (कंप्यूटिंग) ज्यादातर बाहरी प्रक्रियाओं के पूरा होने की प्रतीक्षा कर रहे हैं।
यह तब हो सकता है जब कई थ्रेड्स अलग-अलग क्लाइंट्स को सर्विस दे रहे हों। हो सकता है कि थ्रेड क्लाइंट के जवाब का इंतज़ार कर रहा हो, और दूसरा थ्रेड डेटाबेस क्वेरी के निष्पादित होने का इंतज़ार कर रहा हो, जबकि तीसरा थ्रेड वास्तव में पायथन कोड को प्रोसेस कर रहा हो।
हालाँकि, जीआईएल का मतलब यह है कि सीपीथॉन उन प्रक्रियाओं के लिए उपयुक्त नहीं है जो पायथन कोड में सीपीयू-गहन एल्गोरिदम को लागू करते हैं जो संभावित रूप से कई कोर में वितरित किए जा सकते हैं।
वास्तविक दुनिया के अनुप्रयोगों में, ऐसी स्थितियाँ जहाँ जीआईएल महत्वपूर्ण अड़चन है, काफी दुर्लभ हैं। ऐसा इसलिए है क्योंकि पायथन स्वाभाविक रूप से धीमी भाषा है और आमतौर पर इसका उपयोग सीपीयू-गहन या समय-संवेदनशील संचालन के लिए नहीं किया जाता है। पायथन आमतौर पर शीर्ष स्तर पर उपयोग किया जाता है और विशिष्ट कार्यों को करने के लिए पुस्तकालयों में कार्यों को बुलाता है। इन पुस्तकालयों को आम तौर पर पायथन में नहीं लिखा जाता है, और इन अंतर्निहित प्रक्रियाओं में से किसी को कॉल करने के दौरान किसी अन्य थ्रेड में पायथन कोड निष्पादित किया जा सकता है। सीपीयू-गहन कार्य करने के लिए बुलाए जाने वाले गैर-पायथन पुस्तकालय जीआईएल के अधीन नहीं हैं और बिना किसी प्रतिबंध के कई प्रोसेसर पर कई थ्रेड्स को समवर्ती रूप से निष्पादित कर सकते हैं।
पायथन कोड की समवर्ती केवल मल्टीटास्किंग ऑपरेटिंग सिस्टम द्वारा प्रबंधित अलग-अलग सीपीथॉन दुभाषिया प्रक्रियाओं के साथ प्राप्त की जा सकती है। यह समानांतर कंप्यूटिंग के बीच संचार को जटिल बनाता है, हालांकि मल्टीप्रोसेसिंग मॉड्यूल इसे कुछ हद तक कम करता है; इसका मतलब यह है कि समवर्ती पायथन-कोड निष्पादन से वास्तव में लाभान्वित होने वाले अनुप्रयोगों को सीमित मात्रा में ओवरहेड (कंप्यूटिंग) के साथ लागू किया जा सकता है।
जीआईएल की उपस्थिति सीपीथॉन के कार्यान्वयन को सरल बनाती है, और बहु-थ्रेडेड अनुप्रयोगों को लागू करना आसान बनाती है जो समवर्ती पायथन कोड निष्पादन से लाभान्वित नहीं होते हैं। हालाँकि, जीआईएल के बिना, मल्टीप्रोसेसिंग ऐप्स को यह सुनिश्चित करना चाहिए कि सभी सामान्य कोड थ्रेड सुरक्षित हैं।
हालाँकि जीआईएल को खत्म करने के लिए कई प्रस्ताव दिए गए हैं, आम सहमति यह रही है कि ज्यादातर मामलों में, जीआईएल के फायदे नुकसान से अधिक हैं; कुछ मामलों में जहां जीआईएल अड़चन है, एप्लिकेशन को मल्टीप्रोसेसिंग संरचना के आसपास बनाया जाना चाहिए।
इतिहास
अनलादेन निगल
Unladen Swallow सीपीथॉन की अनुकूलन शाखा थी, जिसका उद्देश्य पूरी तरह से संगत और काफी तेज होना था। इसका उद्देश्य सीपीथॉन की कस्टम आभासी मशीन को जस्ट-इन-टाइम संकलन | समय-समय पर संकलन LLVM का उपयोग करके बनाया गया है।
परियोजना ने सीपीथॉन पर पांच के कारक द्वारा गति में सुधार का लक्ष्य बताया था;[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 मूल रूप से पायथन 2.6 पर आधारित था[13] जिसके साथ पायथन 3 ने संगतता तोड़ दी (अधिक विवरण के लिए पायथन 3000 देखें)। हालाँकि, बाद में PEP को वापस ले लिया गया था।
2011 की शुरुआत में, यह स्पष्ट हो गया कि परियोजना को रोक दिया गया था।[14]
अनलादेन निगल रिलीज इतिहास
वितरण
आधिकारिक तौर पर समर्थित टियर-1 प्लेटफॉर्म खिड़कियाँ, लिनक्स और मैकओएस (और रास्पबेरी पाई ओएस, और निचले स्तर पर s390x के लिए लिनक्स) हैं।
ऐसे और भी प्लेटफ़ॉर्म हैं जिनमें कार्यशील कार्यान्वयन शामिल हैं:[18]
- यूनिक्स की तरह
- विशेष और एम्बेडेड
- एंड्रॉयड
- एप्पल आईओएस (पुराने पायथन 3.6 और 2.7 के लिए समर्थन उपलब्ध है)
- ब्लैकबेरी 10
- जीपी2एक्स
- आइपॉडलिनक्स
- निनटेंडो डी एस
- निंटेंडो गेमक्यूब
- सिम्बियन ओएस सीरीज60
- नोकिया 770 इंटरनेट टैबलेट
- नोकिया एन800
- नोकिया एन810
- नोकिया एन900
- ओपनमोको
- पाम ओएस
- प्लेस्टेशन 2
- प्लेस्टेशन 3 (फ्रीबीएसडी)
- साइयन
- क्यूएनएक्स
- तेज ज़ौरस
- एक्सबॉक्स/एक्सबीएमसी
- वीएक्सवर्क्स
- अन्य
- एआरओएस
- ओएस/390
- विंडोज विस्टा और बाद में
- जेड/ओएस[citation needed]
पीईपी 11[19] पायथन सॉफ्टवेयर फाउंडेशन द्वारा सीपीथॉन में समर्थित नहीं होने वाले प्लेटफार्मों को सूचीबद्ध करता है। इन प्लेटफार्मों को अभी भी बाहरी बंदरगाहों द्वारा समर्थित किया जा सकता है। इन बंदरगाहों में शामिल हैं:
- एदीओएस (2.6 से असमर्थित)
- बीओएस (2.6 से असमर्थित)
- डॉस (2.0 से असमर्थित)
- IRIX 4 (2.3 से असमर्थित)
- IRIX 5 और बाद में (3.2, 3.7 से असमर्थित)[20]
- मैक ओएस 9 (2.4 से असमर्थित)
- मिनिक्स (2.3 से असमर्थित)
- ओपनवीएमएस (3.3 से असमर्थित)
- ओएस/2 (3.3 से असमर्थित)
- आरआईएससी ओएस (3.0 से असमर्थित)
- विंडोज एक्सपी (3.5 से असमर्थित)
- विंडोज 2000 (3.3 से असमर्थित)
- विंडोज 3.एक्स (2.0 से असमर्थित)
- विंडोज 9एक्स (2.6 से असमर्थित)
- विंडोज एनटी4 (2.6 से असमर्थित)
बाहरी पोर्ट जो कि पायथन Software Foundation के सीपीथॉन के आधिकारिक संस्करण में एकीकृत नहीं हैं, इसकी मुख्य विकास साइट के लिंक के साथ, अक्सर प्लेटफ़ॉर्म-विशिष्ट कार्यात्मकताओं के लिए अतिरिक्त मॉड्यूल शामिल होते हैं, जैसे PSP के लिए ग्राफिक्स और ध्वनि API और S60 के लिए SMS और कैमरा API। इन बंदरगाहों में शामिल हैं:
- Amiga: AmigaPython[21]
- IBM i: iSeriesPython[22]
- DOS using DJGPP: PythonD[23]
- MorphOS: Python 2 and 3[24]
- PlayStation Portable: Stackless Python for PSP[25]
- Symbian OS: Python for S60
- Windows CE/Pocket PC: Python Windows CE port[26]
- OpenVMS: Ports of Python 3.x are maintained by VSI[27]
एंटरप्राइज़ लिनक्स
ये पायथन संस्करण वर्तमान में समर्थित एंटरप्राइज़ लिनक्स वितरण के साथ वितरित किए गए हैं।[28] तालिका में पायथन की समर्थन स्थिति का तात्पर्य पायथन कोर टीम से समर्थन से है, न कि वितरण अनुरक्षक से।
| Distribution version | Distribution end-of-life | पायथन version | |
|---|---|---|---|
| Ubuntu 22.04 LTS (Jammy Jellyfish) | 3.10 [1] | ||
| Ubuntu 20.04 LTS (Focal Fossa) | 2030-04[29][needs update] | [30] | 3.8[31][needs update] |
| Ubuntu 18.04 LTS (Bionic Beaver) | 2028-04[32] | 2.7[33] | 3.6[34] |
| Ubuntu 16.04 LTS (Xenial Xerus) | 2021-04-30[35][needs update] | 2.7[33] | 3.5[34] |
| Debian 11 | 2026-06[36] | 3.9[36][needs update] | |
| Debian 10 | 2024-06[37] | 2.7[38] | 3.7[39][needs update] |
| Debian 9 | 2022-06-30[40][needs update] | 2.7[41] | 3.5[42] |
| Red Hat Enterprise Linux 8 | 2029 | 2.7[43] | 3.6 |
| Red Hat Enterprise Linux 7 | 2024-11-30[44] | 2.7[45] | |
| CentOS 8 | 2029-05-31 | 2.7 | 3.6 |
| CentOS 7 | 2024-06-30 | 2.7[46] | |
| SUSE Linux Enterprise Server 15 | 2031-07-31 | 2.7[47] | 3.6 |
| SUSE Linux Enterprise Server 12 | 2027-10-31 | 2.7[48] | |
| SUSE Linux Enterprise Server 11 | 2022-03-31[needs update] | 2.7[48] | |
Old version Older version, still maintained Latest version | |||
विकल्प
सीपीथॉन कई उत्पादन-गुणवत्ता वाले पायथन (प्रोग्रामिंग भाषा) #कार्यान्वयनों में से है: Java जावा वर्चुअल मशीनJVM) के लिए Java (प्रोग्रामिंग भाषा) में लिखा गया Jython, PyPy#Rपायथन में लिखा गया PyPy और C में अनुवादित, और Ironपायथन, जो सी शार्प (प्रोग्रामिंग भाषा) में लिखा गया है। सामान्य भाषा अवसंरचना के लिए सी #। कई प्रयोगात्मक कार्यान्वयन भी हैं।[49]
संदर्भ
- ↑ "Initialization, Finalization, and Threads". Python v3.8.3 documentation. Retrieved 2020-06-04.
- ↑ Paul, Ryan (2009-03-26). "Ars Technica report on Unladen Swallow goals". Arstechnica.com. Retrieved 2011-08-19.
- ↑ 3.0 3.1 Winter, Collin; Yasskin, Jeffrey; Kleckner, Reid (2010-03-17). "PEP 3146 - Merging Unladen Swallow into CPython". Python.org.
- ↑ "People working on Unladen Swallow". Archived from the original on 2015-10-29. Retrieved 2019-08-08.
- ↑ "Unladen Swallow project page". Retrieved 2011-08-19.
- ↑ "Issue 9410: Add Unladen Swallow's optimizations to Python 3's pickle. - Python tracker". bugs.python.org. Retrieved 2019-08-08.
- ↑ "Message on comp.lang.python". Retrieved 2011-08-19.
- ↑ "Unladen Swallow | Google Groups". Retrieved 2011-08-19.
- ↑ "reddit post by an Unladen committer". Reddit.com. 2010-06-24. Retrieved 2011-08-19.
- ↑ Winter, Collin (8 November 2010). "Current status of Unladen-Swallow".