Inlinec — una nueva forma de usar código C en scripts de Python

Proyecto inlinec se ha propuesto una nueva forma de integración en línea de código en C en scripts en Python. Las funciones en C se definen directamente en un único archivo de código Python, destacándose con el decorador «@inlinec». El script compilado se ejecuta tal cual por el intérprete spython y se analiza utilizando el mecanismo proporcionado en Python de los códecs, que permite conectar un parser para transformar el script antes de que sea analizado por el intérprete (generalmente, se aplica el módulo codecs para la recodificación transparente de texto, pero también permite transformar arbitrariamente el contenido del script).

El parser se conecta como un módulo («from inlinec import inlinec»), que realiza el procesamiento inicial y traduce sobre la marcha las definiciones de funciones en C, resaltadas mediante las anotaciones @inlinec, en enlaces ctypes y reemplaza el cuerpo de la función en C con una llamada a esos enlaces. Después de esta transformación, el intérprete de Python recibe ya el texto de script corregido y transformado, en el que las funciones en C son llamadas a través de ctypes. Un método similar también se aplica en el proyecto Pyxl4, que permite mezclar código HTML y Python en un solo archivo.

# coding: inlinec
from inlinec import inlinec

@inlinec
def test():
#include<stdio.h>
void test() {
printf(«Hola, mundo»);
}

El desarrollo se presenta aún como un prototipo experimental, en el que se observan deficiencias como la falta de soporte para pasar punteros a la función (excepto cadenas), la necesidad de ejecutar
«gcc -E» para el preprocesamiento de código, la conservación de archivos intermedios *.so, *.o y *.c en el directorio actual, la falta de almacenamiento en caché de la variante transformada y la ejecución de etapas de análisis innecesarias (grandes retrasos en cada ejecución).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster