Portando Pigz para Windows: Uma Jornada Surpreendentemente Suave de Plataforma Cruzada

2025-06-23
Portando Pigz para Windows: Uma Jornada Surpreendentemente Suave de Plataforma Cruzada

Pigz, uma ferramenta de compressão estilo Unix, foi surpreendentemente fácil de portar para Windows. O artigo detalha os desafios encontrados, como diferenças na biblioteca de threads pthreads e nas funções dirent, e pequenas variações nos nomes das funções da biblioteca C. O autor utilizou inteligentemente patches de compatibilidade existentes e o sistema de construção Premake para superar esses obstáculos. O Premake simplificou a criação e manutenção de arquivos de projeto do Visual Studio, resultando em uma implementação bem-sucedida do Pigz no Windows.

Leia mais
Desenvolvimento

Desenvolvedor do SumatraPDF abandona std::function após 16 anos, cria sua própria solução

2025-06-15
Desenvolvedor do SumatraPDF abandona std::function após 16 anos, cria sua própria solução

Após 16 anos desenvolvendo o SumatraPDF em C++, o autor abandonou `std::function` e lambdas devido a dificuldades de depuração. Relatórios de falhas eram difíceis de decifrar por causa dos nomes autogerados das funções lambda geradas pelo compilador. Ele criou funções de callback personalizadas mais simples, `Func0` e `Func1`. Embora menos ricas em recursos que `std::function`, elas oferecem vantagens significativas em relação à pegada de memória e à velocidade de compilação, e são mais fáceis de depurar. Esta postagem detalha o design e a implementação de `Func0` e `Func1`, e explica por que essa abordagem se adapta melhor às necessidades do SumatraPDF.

Leia mais
Desenvolvimento