CPython
CPython je podrazumevana, najrasprostranjenija implementacija programskog jezika Pajton. Napisana je u jeziku C. CPython je interpretator izvornog koda. Sadrži interfejs strane funkcije sa nekoliko jezika uključujući C, u kome osoba mora eksplicitno pisati bajnding u programskom jeziku koji nije Pajton.
CPython | |
---|---|
Originalni naziv | engl. Python |
Izgovara se | Ce Pajton |
Model | C |
Autor(i) | Gvido van Rosum |
Aktuelna verzija | 3.5.0 i 2.7.10 |
Licenca | Python Software Foundation licenca[1] |
Veb-sajt | http://www.python.org/ |
Dokumentacija | http://www.python.org/doc/ |
CPython je jedna od nekoliko „proizvodnja-kvalitet” implementacija Pajtona uključujući: Jython, napisan u Javi za JVM, PyPy, napisana u RPython i prevedena u C, i IronPython, koja je napisana u C# za Opštu jezičku infrastrukturu. Postoje i nekoliko eksperimentalnih implementacija.[2]
Problemi saglasnosti uredi
Jedna od većih loših strana korišćenja CPython-a je prisustvo globalnog katanca interpretatora na svakom CPython procesu interpretatora, što efektivno onemogućava saglasnost Pajtonovih poglavlja u okviru jednog procesa.[3] Da bi bila potpuno saglasna u okruženju multitaskinga, odvojena CPython interpretatorska procesa su potrebna da se pokrenu, što čini komunikaciju između njih težim poslom, ali modul multiprocesinga ublažava ovo donekle. Bilo je dosta diskusije o tome da li treba obrisati GIL iz CPython-a, čak i nakon odbacivanja „otvorenog poglavlja” zakrpe na CPython-u iz Greg Stejn što je efektivno zamenilo GIL sa sitnozrnim zaključavanjem. Odbacivanje je uglavnom bilo bazirano na opštoj zakrpi koja je nanosila pokretanje jednog koda procesa.[4]
Podržane platforme uredi
Podržane platforme uključuju:[5]
Unix-tipa
- AIX operating system
- BSD
- Darwin
- FreeBSD
- HP-UX
- IRIX 5 i kasnije (nepodržane u 3.x)[6]
- Plan 9 from Bell Labs
- Mac OS X
- NetBSD
- Linux
- OpenBSD
- Solaris
- Tru64
Posebne i ugrađene
- GP2X
- iPodLinux
- Nintendo DS
- Nintendo Gamecube
- Symbian OS Series60
- Nokia 770 Internet Tablet
- Nokia N800
- Nokia N810
- Nokia N900
- Palm OS
- PlayStation 2
- PlayStation 3 (FreeBSD)
- Psion
- QNX
- Sharp Zaurus
- Xbox/XBMC
- VxWorks
- Openmoko
- Apple iOS
- Android
- BlackBerry 10
Ostali
- AROS
- VMS
- OS/2 (nepodržano u 3.3)
- OS/390
- RISC OS (nepodržano u 3.x)
- Windows XP i kasnije
- Windows 2000 (nepodržano u 3.3)
- z/OS
Prethodno podržane platforme uredi
PEP 11 sadrži listu platformi koje nisu podržane u CPython-u od Softverske Fondacije Pajtona. Ove platforme mogu i dalje biti podržane sa spoljnim portovima. Pogledajte ispod.
- AtheOS (nepodržano od 2.6)
- BeOS (nepodržano od 2.6)
- DOS (nepodržano od 2.0)
- IRIX 4 (nepodržano od 2.3)
- Mac OS 9 (nepodržano od 2.4)
- MINIX (nepodržano od 2.3)
- Windows 3.x (nepodržano od 2.0)
- Windows 9x (nepodržano od 2.6)
- Windows NT4 (nepodržano od 2.6)
Spoljni portovi uredi
Ovo su portovi koji nisu integrisani u zvaničnoj verziji CPython-a od Softverske Fondacije Pajtona, sa linkovima do njegovog glavnog sajta razvoja. Portovi obično uključuju dodatne module za funkcionalnosti platformi, kao što su grafika i zvuk API za PSP i SMS i API kamere za S60.
- Amiga: AmigaPython
- AS/400: iSeriesPython Arhivirano na sajtu Wayback Machine (15. maj 2008)
- DOS korišćenjem DJGPP: PythonD
- PlayStation Portable: Pajton za PSP
- Simbijan OS: Pajton za S60
- Windows CE/Pocket PC: Pajton Windows CE port
Istorija verzija uredi
Verzija | Datum objave | Podržano do |
---|---|---|
2.2 | 2001-12-21[7] | 2003-05-30[8] |
2.3 | 2003-07-29[9] | 2008-03-11[10] |
2.4 | 2004-11-30[11] | 2008-12-19[12] |
2.5 | 2006-09-19[13] | 2011-05-26[14] |
2.6 | 2008-10-01[15] | 2013-10-29[16] |
2.7 | 2010-07-03[17] | 2020-01-01[18] |
3.0 | 2008-12-03[19] | 2009-06-27[20] |
3.1 | 2009-06-27[21] | 2014-04-09[22] |
3.2 | 2011-02-20[23] | 2016-02-27[24] |
3.3 | 2012-09-29[25] | 2017-09-29[26] |
3.4 | 2014-03-16[27] | 2019-03-16 |
3.5 | 2015-09-13[28] | 2020-09-13 |
3.6 | 2016-12-23[29] | 2021-12-23[30] |
3.7 | 2018-06-27[31] | 2023-06-27[30] |
3.8 | 2019-10-20[32] | 2024-10[32] |
Reference uredi
- ^ History and License — Python v2.7.3 documentation, Pristupljeno 23. 4. 2013.
- ^ Martelli 2006
- ^ "Initialization, Finalization, and Threads — Python v2.7.6 documentation".
- ^ "Library and Extension FAQ".
- ^ "PythonImplementations".
- ^ „Irix still supported?”.
- ^ „Python 2.2”. Python.org. Pristupljeno 06. 02. 2014.
- ^ „Python 2.2.3”. Python.org. Pristupljeno 06. 02. 2014.
- ^ „Python 2.3”. Python.org. 29. 07. 2003. Pristupljeno 06. 02. 2014.
- ^ „Python 2.3.7 Release”. Python.org. 11. 03. 2008. Pristupljeno 06. 02. 2014.
- ^ „Python 2.4”. Python.org. 30. 11. 2004. Pristupljeno 06. 02. 2014.
- ^ „Python 2.4.6 Release”. Python.org. 19. 12. 2008. Pristupljeno 06. 02. 2014.
- ^ „Python 2.5 Release”. Python.org. 19. 09. 2006. Pristupljeno 06. 02. 2014.
- ^ „Python 2.5.6”. Python.org. 26. 05. 2011. Pristupljeno 06. 02. 2014.
- ^ „Python 2.6 Release”. Python.org. 01. 10. 2008. Pristupljeno 06. 02. 2014.
- ^ „Python 2.6.9 Release”. Python.org. 29. 10. 2013. Pristupljeno 06. 02. 2014.
- ^ „Python 2.7 Release”. Python.org. 03. 07. 2010. Pristupljeno 06. 02. 2014.
- ^ „PEP 373 - Python 2.7 Release Schedule”. Python.org. Pristupljeno 06. 02. 2014.
- ^ „Python 3.0 Release”. Python.org. 03. 12. 2008. Pristupljeno 06. 02. 2014.
- ^ „Python 3.0.1 Release”. Python.org. 13. 02. 2009. Pristupljeno 06. 02. 2014.
- ^ „Python 3.1 Release”. Python.org. 27. 06. 2009. Pristupljeno 06. 02. 2014.
- ^ „PEP 375 - Python 3.1 Release Schedule”. Python.org. Pristupljeno 06. 02. 2014.
- ^ „Python 3.2 Release”. Python.org. 20. 02. 2011. Pristupljeno 06. 02. 2014.
- ^ „PEP 392 - Python 3.2 Release Schedule”. Python.org. Pristupljeno 06. 02. 2014.
- ^ „Python 3.3.0 Release”. Python.org. 29. 09. 2012. Pristupljeno 06. 02. 2014.
- ^ „PEP 398 - Python 3.3 Release Schedule”. Python.org. Pristupljeno 06. 02. 2014.
- ^ „Python 3.4.0 Release”. Python.org. Pristupljeno 26. 04. 2014.
- ^ „Python 3.5.0 Release”. Python.org. Arhivirano iz originala 19. 09. 2015. g. Pristupljeno 16. 09. 2015.
- ^ „Python 3.6.0 Release”. Python.org. Pristupljeno 01. 01. 2017.
- ^ a b „Python Developer’s Guide: Status of Python branches”. Python Software Foundation. Pristupljeno 19. 09. 2018.
- ^ „Python 3.7 Release Schedule”. Python.org. Pristupljeno 01. 01. 2017.
- ^ a b „Python 3.8 Release Schedule”. Python.org. Pristupljeno 02. 07. 2017.