io_uring recebe nova funcionalidade de criação de processos

2024-12-20

O LWN.net noticia o desenvolvimento de um novo recurso de criação de processos para o subsistema io_uring. Essa funcionalidade é implementada por meio de duas novas operações io_uring: IORING_OP_CLONE, que cria um novo processo, e IORING_OP_EXEC, que executa uma chamada de sistema execveat() para carregar um novo programa. Isso promete maior eficiência e permite que lógica mais complexa, como a pesquisa de caminhos, seja executada de forma assíncrona no kernel. No entanto, o recurso ainda está em seus estágios iniciais e possui limitações, como a necessidade de execução síncrona de operações io_uring no novo processo. O desenvolvimento futuro visa aumentar a flexibilidade e, eventualmente, mesclar o recurso ao kernel principal do Linux.

Leia mais

Fish Shell 4.0 Lançado: Reescrito em Rust para Melhor Desempenho

2024-12-19

O Fish shell, um shell de linha de comando conhecido por sua facilidade de uso e recursos inteligentes, lançou a versão 4.0. A maior mudança é uma reescrita completa da base de código de C++ para Rust, resultando em melhor eficiência de computação moderna. A versão 4.0 também possui muitos recursos novos, como associações de teclas mais naturais e pesquisa de histórico aprimorada, projetadas para tornar a experiência de linha de comando mais fácil e agradável. Para garantir a estabilidade, o projeto lançou uma versão beta pública, convidando todos os usuários a participarem dos testes.

Leia mais
Desenvolvimento

Emacs com Guile: Um Projeto de Reescreita Audacioso

2024-12-16

O editor Emacs é conhecido por sua extensibilidade, mas enfrenta limitações de desempenho e expressividade com sua linguagem principal, Emacs Lisp (Elisp). Para resolver isso, o projeto Guile-Emacs visa substituir o Elisp no Emacs pelo Guile Lisp. Após anos de desenvolvimento e inatividade, o Guile-Emacs foi revivido pelos desenvolvedores Robin Templeton e Larry Valkama. O projeto pretende aproveitar as vantagens do compilador e do desempenho do Guile para melhorar a velocidade e a extensibilidade do Emacs, mantendo a compatibilidade com o Elisp. O objetivo final é reescrever uma parte significativa do código C do Emacs em Lisp, melhorando significativamente sua capacidade de personalização. Apesar dos desafios técnicos e políticos, o projeto apresenta possibilidades emocionantes para o futuro do Emacs.

Leia mais
Desenvolvimento

Compilador Rust: Uma Arquitetura de Compilação Incremental Baseada em Consultas

2024-12-13

Para resolver os problemas de eficiência da compilação tradicional em pipeline, o compilador Rust utiliza uma arquitetura de compilação incremental baseada em consultas. Essa arquitetura divide o processo de compilação em uma série de consultas interdependentes, usando um banco de dados de compilação para armazenar em cache os resultados intermediários. Isso permite recompilar apenas as seções de código necessárias. Semelhante à gestão de dependências de um sistema de construção, isso melhora significativamente a velocidade de compilação, especialmente benéfico em cenários como integração com IDE. Embora introduza complexidade, essa abordagem oferece uma experiência de compilação incremental mais estável e eficiente para Rust em comparação com melhorias graduais em métodos tradicionais, sendo agora o padrão para builds de desenvolvimento.

Leia mais

Projeto Git em impasse sobre a integração do Rust

2024-12-13

O projeto Git está envolvido em um debate acalorado sobre a integração da linguagem de programação Rust. Os proponentes argumentam que a segurança de memória e a facilidade de refatoração do Rust melhorariam a segurança e a experiência do desenvolvedor do Git. No entanto, os oponentes temem que a integração do Rust possa comprometer o suporte a plataformas de nicho como o NonStop, potencialmente prejudicando a viabilidade a longo prazo do Git. A prevalência do NonStop no setor financeiro, sua dependência do Git e a falta de um compilador Rust para a plataforma complicam a questão. A discussão, por fim, não chegou a uma resolução, deixando o projeto Git lutando com uma decisão crítica entre manter o amplo suporte à plataforma e melhorar a segurança e a experiência do desenvolvedor.

Leia mais
Desenvolvimento Suporte à Plataforma