Racket v9.0
(blog.racket-lang.org)- Racket 9.0 é um grande lançamento que introduz threads paralelas (Parallel Threads), expandindo o suporte existente a green threads, futures e places
- As novas threads podem ser criadas com o argumento
#:pool, e com a configuração#:keep 'resultsé possível consultar os resultados depois comthread-wait - O wrapper
black-boximpede que o compilador otimizador elimine certas operações, aumentando a precisão dos benchmarks - A função
decompile-linkletpode converter um linklet de volta para S-expressions, eprocessor-countfoi alterada para retornar o número de execuções paralelas - Inclui várias outras atualizações, como o pacote “natipkg” para AArch64, adição da distribuição de Weibull e melhorias na documentação
Principais mudanças no Racket 9.0
-
Nesta versão, foi introduzido o novo recurso de threads paralelas (Parallel Threads)
- O Racket já oferecia suporte a green threads, futures e places, e agora as threads paralelas chegam como uma grande expansão
- As threads paralelas podem ser criadas por meio do argumento
#:pool, e ao definir#:keep 'results, os resultados podem ser consultados depois comthread-wait
-
O wrapper
black-boximpede que o compilador otimizador elimine completamente certos cálculos- Isso é útil para garantir medições de desempenho mais precisas ao executar benchmarks
-
A função
decompile-linkletpermite mapear um linklet de volta para uma S-expression- Ela oferece uma forma de restaurar a representação interna para análise de código e depuração
-
No BC Racket, a função
processor-countfoi alterada para sempre retornar o número de processadores paralelos- Isso permite verificar de forma consistente a contagem de processadores em ambientes de execução paralela
-
O pacote “natipkg” para AArch64 passou a ser distribuído e pode ser usado na infraestrutura de build e testes de pacotes
Melhorias adicionais
- O recurso Check Syntax agora oferece suporte ao rastreamento de identificadores aninhados mais profundamente no campo “origin” de objetos de sintaxe
- A biblioteca
mathagora inclui a distribuição de Weibull - Também estão incluídas diversas correções de bugs e melhorias na documentação
Comunidade e como participar
- Nesta versão, contribuíram vários desenvolvedores, incluindo Alexander Shopov, Bogdan Popa, Matthew Flatt e Matthias Felleisen
- O Racket é um projeto open source orientado pela comunidade e recebe bem novos contribuidores
- As formas de participar podem ser consultadas em racket/README.md
Pedido de feedback e divulgação
- Perguntas e discussões podem ser feitas nas comunidades Racket Discourse ou Discord
- Também é recomendado compartilhar a notícia do lançamento com usuários e mantenedores de gerenciadores de pacotes em cada plataforma
- Download oficial: https://download.racket-lang.org
- Anúncio de lançamento: https://blog.racket-lang.org/2025/11/racket-v9-0.html
1 comentários
Comentários do Hacker News
O ponto principal desta novidade é que o Racket agora suporta threads paralelas
Já existiam formas de paralelização antes, como
places, mas desta vez a abordagem é muito mais leve e familiarComo gosto de criar coisas com Racket, fico feliz em ver isso ampliar o campo de uso da linguagem
placesnão era flexível. Não dava para passar lambdas com facilidade, eserializable-lambdafuncionava de forma contagiosa, então em tempo de execução só era possível enviar dados, não funçõesPor isso era difícil montar uma estrutura para distribuir trabalho entre vários
placesEspero que com esse novo recurso de concorrência isso passe a ser possível
Por esse motivo, até agora eu vinha usando GNU Guile em vez de Racket. O Guile era bem mais confiável para aproveitar múltiplos núcleos com futures ou fibers
Eu mesmo já fiz um modelo paralelo de árvore de decisão com futures e obtive um ganho de velocidade quase linear
Sou desenvolvedor Clojure e gosto da família Lisp. Queria saber o que você costuma construir com Racket
Vendo este vídeo, dá para perceber que o Racket pode parecer difícil se não for sua primeira linguagem, mas é simples o bastante para até crianças aprenderem
Eu gosto muito de Racket
Escrevi por diversão um livro sobre Racket, que pode ser lido online de graça
Entre as linguagens da família Scheme, recomendo Racket e Gerbil
O Racket é bom para iniciantes por ter uma IDE boa e bibliotecas padrão e de terceiros bem ricas, enquanto o Gerbil é ótimo para programação de sistemas e utilitários de rede
Racket é uma linguagem realmente muito legal
É uma boa linguagem da família Lisp para aprender, e ainda tenho lembranças de fazer trabalhos no IDE DrRacket
Eu experimentei Lisp pela primeira vez em meados dos anos 80 e, desde então, costumo voltar de tempos em tempos para aprender novas formas de pensar e técnicas de programação
Também tentei usar Racket várias vezes, mas por algum motivo o software nunca combinou comigo
Talvez com uso contínuo eu passasse a gostar, mas ainda não consigo me imaginar escrevendo um projeto grande em Racket
Era mais lento até que Python; talvez isso tenha melhorado depois da reescrita sobre Chez Scheme, mas hoje uso Common Lisp, que é rápido e leve
Conheci Racket porque vi que John Carmack usou Racket em trabalhos ligados ao Oculus cerca de 10 anos atrás
Vídeo relacionado
Artigo da Wikipédia sobre Arc
Lisp é por si só uma meta-linguagem, e Racket é ainda mais meta
Dá para pensar nele praticamente como um kit de criação de linguagens
Já usei Racket ao dar aulas de PL, mas os alunos, acostumados com Java ou Python, tinham dificuldade com a sintaxe Lisp
Então não sei muito bem para quem exatamente essa linguagem é feita
O blog do Bogdan Popa (defn.io) tem muita coisa interessante sobre Racket
Estou ansioso para testar o novo recurso de threading por conta própria
Já tentei usar Racket algumas vezes, mas a IDE me pareceu pouco intuitiva e estranha
Fico me perguntando se isso é uma escolha de design deliberada ou se é só falta de alternativas melhores
Racket também tem bom suporte em VSCode (Magic Racket, Langserver), Emacs (Racket Mode), Vim e outros
Dá para consultar a documentação oficial e o repositório do Langserver
O DrRacket ainda vale a pena por ter recursos que outras IDEs não têm, como o macro stepper
Racket é uma linguagem divertida
Na nossa universidade, usamos a versão educacional do Racket nas aulas introdutórias de Ciência da Computação
Alguns alunos detestam, mas há quem goste em silêncio