Utekl další týden (12. 1. – 15. 1.), a tak si sepisuju, co jsem dělal.
Pondělí: naucse
Opravil jsem CSS pro lekce psané v Jupyter Notebooku. Ještě to není úplně nasazené, příští týden dokončím.
Sepsal jsem si, co bude potřeba pro rozjezd videokurzu. Zas tolik toho není; zatím to vypadá že největší překážka je asi drobnost v odevzdávátku. Tak se to snad povede a zorganizuju kurz – po pár letech co učím kurzy které organizují PyLadies.
Úterý: CPython
Většinu úterka jsem strávil definování stabilního ABI – slučováním seznamů z několika různých zdrojů. Už se „těším“ na diskuse které nastanou až budu hotový se svým návrhem.
A pár menších věcí:
- Oprava správy paměti při importech je konečně hotová
- Oprava správy paměti u vectorcall taky, bude v další revizi 3.8.
- Oprava zavírání souborů v ttestech se trochu posunula, CI.
Taky se strhla mailová diskuse
ohledně heap types.
Co to je? Zjednodušeně řečeno: typy které se dají měnit, na rozdíl od
statických typů jako např. str
:
>>> str.lower = 'něco jiného'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can''t set attributes of built-in/extension type 'str'
Třídy definované v Pythonu jsou heap types. Aktuálně se na ně převádí spousta „vestavěných“ typů. V aktuální alfa verzi Pythonu 3.10 tak jde udělat třeba:
>>> from array import array
>>> array.count = 'něco jiného'
>>> array('b', [3, 4, 5]).count
'něco jiného'
Diskuse se točila kolem toho, proč jsou heap types lepší, pokud chceme umožnit pod-interprety bez GIL (sdíleného zámku).
Než se bude dát měnit str
, nějakou dobu to potrvá a nejspíš bude potřeba
změnit C-API Pythonu. Ale zatím to vypadá že nakonec to tak bude.
Středa: Fedora
Ve středu jsem hlavně spravoval věci ve Fedoře. Poslal jsem PR do šablonovacího jazyka Mako, který v Pythonu 3.10 narážel na varování, což pak rozbíjelo testy projektů, které Mako používají a varování ve svých vlastních testech berou jako chyby.
Taky jsem pokročil v balíčkování nové verze Pipenv, ale nestihl jsem to otestovat. Miro se na to kouknul a hned asi tři našel. (Pipenv je, mimochodem, strašlivé mocnáctihlavé monstrum. Ale užitečné.)
Čtvrtek: Plánování a Python 2
Ve čtvrtek jsem (kromě extra velké týmové porady) vyndával z Fedoray věci, které ještě pořád potřebují Python 2. Zbývá jich už jen 70.
Pátek: Práce v korporátu
No a v pátek jsem podobné nechtěné balíčky vyndával z budoucí verze RHELu, aby tam zbyly jen věci, které reálně můžeme nějaké to desetiletí podporovat.