Díky. Opět skvělý článek.
Dívám se, že i knihovna zlib je docela "živá", čekal bych, že to, za ta léta už bude vyladěnější. Na mém Python 3.10.12 to wbits nedalo, ale i bez toho to šlo dobře.
zlib.compress(data, /, level=-1, wbits=MAX_WBITS) Changed in version 3.6: level can now be used as a keyword parameter. Changed in version 3.11: The wbits parameter is now available to set window bits and compression type.
Díky!
Ono to nastavení wbits jsem tam asi ani dávat nemusel, protože 15bitů je výchozí hodnota, která je čistě náhodou kompatibilní s PNGčkem.
(jinak zcela na okraj: 3.10/3.11 jsou pomalejší, než 3.12, tady se přechod asi vyplatí. Navíc je 3.12 v režimu vydávání bugfixů - https://devguide.python.org/versions/)
Tak to raději nebudu zmiňovat, že mám pár produkčních věcí ještě i na Pythonu 2.5 a 2.7.
V některých případech může být méně více.
Můj poslední úlovek je https://pocketpy.dev/
Takhle ochočený "Python" má 400k (200K by se mi tedy hodilo víc).
Ale jo, věřím, že 2.7 se ještě bude objevovat (ostatně my tady oprašujeme Javu 1.4 a to se už nezmění, ty systémy ne a ne umřít :-).
Díky za odkaz, ten PocketPy vypadá zajímavě. Já sice pro tyto účely raději Luu, ale třeba kdyby někdo plně konvertoval MicroPython pro hlavní platformy (včetně toho jejich assembleru), tak bych se vůbec nezlobil.
A nestačila by Lupa? https://pypi.org/project/lupa/
Co se MicroPythonu týče, ten se dá slušně portovat na kde co. Kromě všemožných mikrokontrolérů, může běhat i nad Lin/Mac/Win. https://github.com/micropython/micropython/tree/master/ports Takže na "hlavních" platformách vlastně je, byť ta vyladěnost je místy nevyzpytatelná.
Ale pokud ta platforma není nějak HW omezená, nebo to není třeba pouštět ve stovkách nezávislých procesů, tak vyhrává klasický CPython.
MicroPython používám například na EV3 https://en.wikipedia.org/wiki/Lego_Mindstorms_EV3 s Linuxovou distribucí EV3DEV https://www.ev3dev.org/
Na té kostce startuje cca 3x rychleji než CPython.
Já myslel portaci včetně toho vloženého assembleru (https://www.root.cz/clanky/zapis-funkci-obsahujicich-instrukce-thumb-a-thumb-2-v-micropythonu/). To by se dalo použít všude možně, klidně i pro výuku (tam, kde čistý assembler by byl až moc hardcore).
Tak to chápu. Takový odskok do assembleru umí některé věci zrychlit i 1000x.
Snahy dostat se na tuhle nízkou úroveň z CPythonu tu jsou. Třeba přes Numba a llvmlite https://www.root.cz/clanky/projekt-numba-aneb-dalsi-pristup-k-prekladu-pythonu-do-nativniho-kodu/
Tipnul bych si, že časem tahle užitečná schopnost vykrystalizuje do wrapperu v CPython pro MicroPython.
Pěkné Vánoce, hodně nadšení a sil do dalšího bádání a psaní článků.