Ridgun 1.0.9 para Linux, macOS e Windows
Código que se alinha.
Programas que escalam.
O Ridgun é uma linguagem tabular, funcional e de sistemas. As assinaturas e as cláusulas alinham-se em colunas que se leem num relance, o paralelismo faz parte da sintaxe e a memória é libertada de forma determinística, sem coletor de lixo.
type Shape = Circle Int | Rect Int Int
fn :: area Shape => Int
area (Circle r) = 3 * r * r
area (Rect w h) = w * h
fn :: report [Shape] => Int Int
report shapes = (total, biggest)
|| ||map area shapes -> areas
|| fold (acc a => acc + a) 0 areas -> total
|| fold bigger 0 areas -> biggest
fn :: bigger Int Int => Int
bigger a b =
| a > b = a
| otherwise = b
fn :: describe (Int Int) => String
describe (total, biggest) = "total {total}, largest {biggest}"
fn :: main => ()
main =
shapes = [Circle 4, Rect 3 5, Rect 20 30]
echo (describe (report shapes))
ridgunc run shapes.rg
total 663, largest 600
Porquê o Ridgun
Comparado com outras linguagensTabular de raiz
Cada função é uma tabela: a assinatura em cima, uma cláusula por linha e os argumentos em colunas.
stable formatmantém cada ficheiro alinhado, por isso as revisões tratam da lógica e não da disposição.O paralelismo é sintaxe
||formam um grafo de dependências que o compilador distribui pelos núcleos.||mape||filterrepartem o trabalho por threads, e os agentes com canais tratam dos serviços de longa duração.Sem coletor de lixo
O compilador liberta cada valor logo após o seu último uso. As estruturas partilhadas têm contagem de referências, e as regiões libertam uma arena inteira de uma só vez. Os programas nunca param para recolher lixo.
Binários nativos e estáticos
ridgunc, o compilador, gera sozinho executáveis ELF64 ligados estaticamente para x86-64 e ARM64. Sem toolchain de C nem runtime para instalar no servidor. Está escrito em Ridgun, tal comostable,omni, as bibliotecas e o site que está a ler.Uma só ferramenta para o projeto
stablecria, verifica, testa, formata e compila projetos a partir de umbuild.rgescrito no próprio Ridgun. Sem YAML nem TOML.Um comando para bibliotecas e ferramentas
omni, o gestor de pacotes, instala a partir deste site e verifica antes cada assinatura:omni install jsonacrescenta uma biblioteca ao seu projeto,omni install -g unix-toolscoloca os programas de um pacote no seuPATH.
Notícias
Todos os artigosAinda não há notícias. As versões e os anúncios aparecerão aqui.
Pergunte, partilhe, participe
Preso num erro de tipos? Fez algo em Ridgun? Tem uma ideia para a linguagem? O fórum é onde a equipa e a comunidade se encontram.
Visitar o fórum