Podrobnosti Software:
Pyrex je jazyk určený pro tvorbu Python rozšiřující moduly napsané v C kód.
Je navržen tak, aby překlenout propast mezi pěkné, vysoké úrovni a snadno použitelný svět Python a chaotický, low-level svět C.
U základních typů, jako jsou čísla a řetězce to není tak špatné, ale nic víc propracované a vy jste do vychystávání Python objekty od sebe pomocí / C volání API v Pythonu, který vyžaduje, abyste byli pečlivý o zachování referenčních počty, kontrola chyb na každém kroku a pro čištění správně, pokud se něco pokazí
Co je nového v této verzi:.
- Některé funkce pro propojení s C ++ kódu byly zavedeny v této verzi.
- Pyrex ne delší místa chytil výjimky do stavu závitu. Tím je zajištěno, že výjimky a tracebacks nemají unikat kromě doložky, která je chytil, pokud děláte něco, co explicitně udržovat je.
- V současné době, argument funkce Pythonu, která je deklarována jako typ rozšíření bude ve výchozím nastavení, je povoleno získat hodnotu None; aby se tomu zabránilo, je nutné kvalifikovat prohlášení argumentu za "ne Žádný".
- Nyní je možné definovat a typ rozšíření s atributy Python, který se nepodílí na cyklickém odvoz odpadu, pomocí nové nogc možnost.
- size_t je nyní vestavěný typu a je typ vrácen provozovatelem sizeof. Také, velikosti size_t a Py_ssize_t se nyní předpokládá, že někde mezi dlouhé a long.
- Operace mezi dvěma typy int stejné hodnoty nyní vrátit nepodepsaný výsledek, pokud jeden z operandů je unsigned; pokud se řady liší, výsledek má stejný typ jako širší-zařadil operand. Myslím si, že to je nejlepší sbližování právních předpisů ANSI C, který je možné bez znalosti přesné velikosti typu.
- PyString_InternFromString je nyní vystaven pod názvem cintern spíše než intern, protože to není kompletní náhrada pro funkci Python interním (neumí zacházet řetězce, které obsahují null bajty).
- Zkontrolujte, zda velikost, který byl dříve vygenerován při importu typ rozšíření byla zakázána v současné době, dokud jsem si vymyslet něco lepšího. To bylo generování příliš mnoho falešných poplachů, například z různých verzích numpy.
- konvence možnost __fastcall volání je nyní podporována. Také, Pyrex již předpokládá, že __cdecl je výchozí konvence volání. Chcete-li být považována za slučitelnou, dva typy funkce musí být buď prohlášeny za stejným konvence volání, nebo obojí, musí nechat nespecifikované.
- Jak jsem již ohrožuje nějakou dobu, s použitím __new__ jako název metody inicializaci typu rozšíření se stalo spíše než chyba jen varování. V některých budoucích verzích, __new__ bude znovu objevit s více Python-jako sémantiky.
Omezení :
nic nalezeno
Komentáře nebyl nalezen