Projetos de Estágio de Verão da Jane Street: JSQL Mais Rápido, Melhorias nas Ligações do Torch e Gerenciamento de Memória entre Processos

2025-08-29
Projetos de Estágio de Verão da Jane Street: JSQL Mais Rápido, Melhorias nas Ligações do Torch e Gerenciamento de Memória entre Processos

A Jane Street destaca três projetos excepcionais do programa de estágio de verão deste ano: o avaliador JSQL de Leo Gagnon, que alcança uma aceleração de centenas de vezes por meio de indexação; as ligações aprimoradas do OCaml Torch de Aryan Khatri, aproveitando o OxCaml para gerenciamento de memória de GPU seguro e eficiente; e a biblioteca de gerenciamento de memória entre processos de Anthony Li, eliminando a sobrecarga de serialização com contagem de referências. Esses projetos não apenas impulsionam a eficiência das ferramentas internas, mas também contribuem com código valioso para a comunidade de código aberto.

Leia mais
Desenvolvimento

Caçando um Higgs-Bugson: Depurando um Problema de NFS/Kerberos em Nível de Kernel

2025-07-03
Caçando um Higgs-Bugson: Depurando um Problema de NFS/Kerberos em Nível de Kernel

Engenheiros encontraram um bug difícil de reproduzir que causava falhas na cópia de arquivos (-EACCES) em Gord, um sistema crítico de dados de negociação. Desabilitar o Kerberos resolveu o problema, indicando problemas de autenticação. A investigação revelou que o kernel obtém credenciais Kerberos por meio do daemon rpc_gssd, mas os logs não mostraram anomalias. Testes extensivos, incluindo a criação de um sistema de arquivos falso na memória e o uso do bpftrace para rastreamento do kernel, finalmente identificaram o problema: alta carga do servidor NFS causou retransmissões de solicitações. O kernel lidou mal com solicitações/respostas com XIDs idênticos, mas números de sequência GSS diferentes, levando a incompatibilidades de checksum e erros. O engenheiro corrigiu o kernel para evitar a retransmissão imediata devido a incompatibilidades de número de sequência.

Leia mais
Desenvolvimento bug do kernel

Representação de Memória Eficiente com GADTs em OCaml

2025-05-12
Representação de Memória Eficiente com GADTs em OCaml

Este artigo explora o uso de Tipos de Dados Algébricos Generalizados (GADTs) em OCaml para otimizar a representação da memória. O autor primeiro explica as limitações do polimorfismo do OCaml, particularmente a ineficiência de espaço do List.iter ao lidar com tipos de dados diferentes devido à representação uniforme da memória. Tentativas de criar um tipo `Compact_array` usando variantes ordinárias e objetos falham devido a problemas de inferência de tipo e alocação de memória. Finalmente, usando GADTs, o autor cria com sucesso uma representação de memória flexível e eficiente para matrizes de diferentes tipos de dados, mostrando a utilidade dos GADTs além da escrita de compiladores, particularmente em aplicações de alto desempenho que exigem controle preciso da memória.

Leia mais
Desenvolvimento

A jornada de uma década da Jane Street: de Jenga a Dune

2025-01-30
A jornada de uma década da Jane Street: de Jenga a Dune

A Jane Street inicialmente construiu o Jenga, um sistema de construção OCaml, mas suas limitações levaram à sua adoção limitada e até mesmo a uma reversão de seu status de código aberto. Então, eles criaram o Jbuilder mais simples, que inesperadamente ganhou popularidade devido à sua velocidade, eventualmente evoluindo para o Dune. Após anos de esforço, a equipe da Jane Street migrou com sucesso seu sistema de construção interno do Jenga para o Dune para seus 70 milhões de linhas de código, aumentando as velocidades de construção e estabelecendo uma base sólida para o futuro do Dune.

Leia mais
Desenvolvimento