Prog.varedetaljer:
Versjon: 0.9.9
Last opp dato: 5 Jun 15
Lisens: Gratis
Popularitet: 196
Pyrex er et språk designet for å skape Python tilleggsmoduler skrevet i C-kode.
Den er designet for å bygge bro over gapet mellom hyggelig, høyt nivå, lett-å-bruke verden av Python og rotete, lavt nivå verden av C.
For de grunnleggende typer som tall og strenger dette er ikke så ille, men noe mer forseggjort og du er i plukke Python-objekter fra hverandre ved hjelp av Python / C API-kall, som krever at du være nøye med å opprettholde referanse teller, sjekker for feil på alle trinn og rydde opp skikkelig hvis noe går galt
Hva er nytt i denne utgaven.
- Noen funksjoner for grensesnitt med C ++ kode er innført i denne utgaven.
- Pyrex ikke lenger steder fanget unntak i tråden staten. Dette sikrer at unntak og tracebacks ikke lekker ut av unntatt klausul som fanget dem, med mindre du gjør noe eksplisitt bevare dem.
- tiden, et argument til en Python-funksjon som er erklært som en forlengelse type vil, som standard, få lov til å motta verdien Ingen; for å forhindre dette, må du kvalifisere argument erklæring med 'ikke None'.
- Det er nå mulig å definere og utvidelse type med Python attributter som ikke deltar i syklisk søppelrydding, ved hjelp av en ny nogc alternativ.
- size_t er nå en innebygd type og er den type som returneres av sizeof operatøren. Dessuten er størrelsen på size_t og Py_ssize_t nå antas å være et sted mellom lang og lang lang.
- Operations mellom to int typer av samme rang nå returnere en usignert resultat hvis en av operandene er usignert; Hvis rekkene er forskjellige, har det resultat den samme type som den bredere rangerte operand. Jeg tror dette er den beste tilnærming av ANSI C regler som er mulig uten å vite den eksakte størrelsen på typene.
- PyString_InternFromString er nå utsatt under navnet cintern fremfor lærling, fordi det ikke er en komplett erstatning for Python intern funksjon (den ikke kan håndtere strenger som inneholder null byte).
- Størrelsen sjekken som tidligere ble generert ved import av en utvidelse type har blitt deaktivert for tiden før jeg kan tenke på noe bedre. Det ble generere for mange falske positiver, for eksempel fra ulike versjoner av numpy.
- __fastcall ringer konvensjonen alternativet er nå støttet. Også Pyrex ikke lenger forutsetter at __cdecl er standard ringer konvensjonen. For å bli vurdert kompatible, må to typer funksjons enten bli erklært med samme kall konvensjonen, eller begge må forlate den uspesifisert.
- Som jeg har blitt truet i noen tid, ved hjelp __new__ som navnet på den initialisering metoden for en utvidelse typen har blitt en feil i stedet for bare en advarsel. I noen fremtidig utgave, vil __new__ dukke opp med flere Python-lignende semantikk.
Begrensninger
ingenting funnet
Kommentarer ikke funnet