Sábado, Fevereiro 28, 2009

POSIX/C++

No final de 2007, o IEEE aprovou a criação do projeto "POSIX-C++ Binding", com o propósito de aumentar a portabilidade de programas C++ que façam uso das interfaces de sistema especificadas em POSIX.

Este grupo de trabalho foi "fretado" inicialmente para entregar seu produto em Dezembro de 2011.

Discussões ocorrem em uma lista de discussão pública.

Os trabalhos iniciais envolveram a adequação da nova biblioteca de threads, componente da biblioteca padrão do C++0x, e especificar sua implementação sobre as interfaces de sistema especificadas em POSIX.

Dois outros projetos estão atualmente em discussão: bindings C++ para as interfaces de sockets, e bindings C++ para as interfaces do ligador dinâmico.

Eu estou trabalhando no projeto de bindings C++ para as interfaces de sockets; mais informações podem ser obtidas aqui. Meu trabalho está acontecendo sob a bandeira do Grupo de Usuários de C e C++ do Brasil.

Na próxima reunião do grupo de trabalho, dia 07 de Março, esses dois projetos serão tema da pauta de discussão. Infelizmente eu ainda não obtive um visto para participar dessa reunião; com sorte isso será possível.

O objetivo da binding para as interfaces de socket é basicamente produzir uma classe que aplique as técnicas de gerência de recurso em C++ no projeto de uma classe que represente um socket. Outros objetivos são melhorar a utilização das estruturas de dados representativas de endereços de socket, o uso de atributos de socket e das interfaces de tradução de nomes.

Ao longo deste processo se tornou claro que seria útil acrescentar às estruturas de dados simples especificadas em POSIX elementos como construtores e sobrecargas de operadores, para tornar mais simples e mais eficiente a inicialização de objetos destes tipos e sua operação.

Estou prestes a publicar agora meus primeiros trabalhos nesse sentido, na forma de uma modificação da GNU libc, usável com o GCC 4.4. Informações estão na mesma página mencionada acima.

0 comentários: