Detalles de software:
Versión: 0.9.9
Fecha de carga: 5 Jun 15
Licencia: Libre
Popularidad: 196
Pyrex es un lenguaje diseñado para la creación de módulos de extensión de Python escritas en código C.
Está diseñado para reducir la brecha entre el bien, de alto nivel, fácil de usar mundo de Python y el desordenado mundo de bajo nivel de C.
Para los tipos básicos como números y cadenas esto no es tan malo, pero nada más elaborado y usted está en recoger objetos Python aparte utilizando los Python / C llamadas a la API, que requiere ser meticuloso sobre el mantenimiento de los recuentos de referencia, la comprobación de errores a cada paso y limpiar adecuadamente si algo sale mal
¿Cuál es nuevo en esta versión:.
- Algunas características para la interconexión con código C ++ se han introducido en esta versión.
- Pyrex lugares ya no capturan excepciones en el estado hilo. Esto asegura que las excepciones y rastreos no se escapan de la cláusula de excepción de que los atrapó, a menos que hagas algo para preservar explícitamente.
- En la actualidad, un argumento a una función de Python que se declara como un tipo de extensión, por defecto, se permitirá recibir el valor Ninguno; para evitar esto, usted debe calificar la declaración de discusión con 'No Ninguno'.
- Ahora es posible definir y tipo de extensión con los atributos de Python que no participan en la recolección de basura cíclica, con una nueva opción nogc.
- size_t ahora es un tipo incorporado y es el tipo devuelto por el operador sizeof. Además, los tamaños de size_t y Py_ssize_t ahora se supone que en algún lugar entre largo y largo, largo.
- Las operaciones entre dos tipos int del mismo valor ahora devuelven un resultado sin firmar si alguno de los operandos es sin firmar; si las filas son diferentes, el resultado tiene el mismo tipo que el operando del ranking general. Creo que esta es la mejor aproximación de las normas ANSI C que es posible sin conocer los tamaños exactos de los tipos.
- PyString_InternFromString está expuesto bajo el nombre cintern en lugar de interno, porque no es un reemplazo completo de la función pasante Python (que no puede manejar cadenas que contienen bytes nulos).
- La comprobación de tamaño que se ha generado con anterioridad al importar un tipo de extensión se ha desactivado por el momento, hasta que se me ocurre algo mejor. Se generando demasiados falsos positivos, por ejemplo, de diferentes versiones de numpy.
- La opción de convenciones __fastcall llamando es ahora compatible. También, Pyrex ya no supone que __cdecl es la convención de llamada predeterminada. Para ser considerado compatible, dos tipos de funciones deben ser declaradas, ya sea con la misma convención de llamada, o ambos deben dejar sin especificar.
- Como he estado amenazando desde hace algún tiempo, el uso de __new__ como el nombre del método de inicialización de un tipo de extensión se ha convertido en un error en lugar de sólo una advertencia. En alguna versión futura, __new__ resurgirá con más semántica-Python similares.
Limitaciones
no encontrado
Comentarios que no se encuentran