Inlinec – uma nova maneira de usar código C em scripts Python

projeto embutido Um novo método para integração inline de código C em scripts Python foi proposto. As funções C são definidas diretamente no mesmo arquivo de código Python, destacadas pelo decorador “@inlinec”. O script de resumo é executado como está pelo interpretador Python e analisado usando o mecanismo fornecido em Python codecs, que permite conectar um analisador para transformar o script antes de analisá-lo pelo intérprete (via de regra, o módulo codecs é usado para transcodificação transparente de texto, mas também permite transformar arbitrariamente o conteúdo do script).

O analisador é conectado como um módulo (“from inlinec import inlinec”), que executa o processamento inicial e traduz dinamicamente as definições de funções C destacadas usando anotações @inlinec em ligações ctypes e substitui o corpo da função C por uma chamada para essas ligações. Após tal transformação, o interpretador Python recebe o texto fonte convertido correto do script, no qual as funções C são chamadas usando ctipos. Um método semelhante também é usado no projeto Pyxl4, que permite misturar código HTML e Python em um arquivo.

# codificação: inlinec
de inlinec importar inlinec

@inlinec
teste de definição():
#incluir
teste vazio() {
printf("Olá, mundo");
}

O desenvolvimento é até agora apresentado como um protótipo experimental, que contém deficiências como a falta de suporte para passagem de ponteiros (exceto strings) para a função, a necessidade de executar
“gcc -E” para pré-processamento de código, salvando arquivos intermediários *.so, *.o e *.c no diretório atual, não armazenando em cache a versão convertida e executando etapas de análise desnecessárias (longos atrasos cada vez que é executado).

Fonte: opennet.ru

Adicionar um comentário