Executando verificação de segurança...
2

Achamos que, em primeiro lugar, o projeto precisa ser um pouco mais profissional, evitando coisas assim: https://github.com/lucasFelixSilveira/carla/blob/main/src/main.crl#L4, seguido o que você mesmo disse sobre ser um projeto que não é brincadeira.

Tentamos ler a documentação, e tivemos um 404: https://github.com/lucasFelixSilveira/carla/blob/main/docs, ou https://github.com/lucasFelixSilveira/carla/blob/main/docs/carla.md. Não há exemplos de código em qualquer parte do projeto. Não há testes unitários em nenhum dos três componentes. O parser de Carla é tão pequeno que não podemos ter certeza de que funciona ou não.

Se funciona no Linux, funciona em Mac e BSD. É algo que você poderia facilmente terminar.

LLVM tem suas virtudes. Dezenas de arquiteturas de processador, sistemas operacionais, imensa interoperabilidade. São mais de 500 mil commits e mais de 5000 colaboradores. Seu projeto precisa fazer a lição de casa: ter CI/CD em cada projeto, documentação mais extensa, código curado, sem renomear arquivos indesejados pra .txt ou coisa do tipo. Temos interesse de acompanhar, mas ainda não vimos todo o diferencial prometido aqui.

Carregando publicação patrocinada...
2

Fala "pessoal"! (Creio que seja um grupo dono do perfil)

Seguinte, vou passar ponto à ponto para não deixar passar nada!

Achamos que, em primeiro lugar, o projeto precisa ser um pouco mais profissional, evitando coisas assim: https://github.com/lucasFelixSilveira/carla/blob/main/src/main.crl#L4, seguido o que você mesmo disse sobre ser um projeto que não é brincadeira.

Carla está migrando agora de uma etapa "Não profissional" para "Profissional". Estou adaptando o projeto em um todo. Alguns detalhes, tal como o "main.crl" acabam passando da fase de coding para o repositório. Irresponsabilidade de não revisar o diff das mudanças antes de commitar. Esse tipo de coisa acabará em breve, podem ficar tranquilos.

Tentamos ler a documentação, e tivemos um 404: https://github.com/lucasFelixSilveira/carla/blob/main/docs, ou https://github.com/lucasFelixSilveira/carla/blob/main/docs/carla.md. Não há exemplos de código em qualquer parte do projeto. Não há testes unitários em nenhum dos três componentes. [...]

Ainda não trabalhamos na documentação, e isto é sim um problema. Alguns mínimos detalhes estão sendo decididos ainda. E, eu entendo sim que o projeto deve ter uma documentação ao menos com o que já está implementado. Mas, novamente, ainda não foi a prioridade. Estava até ontem, focando na compatibilidade com Windows. Agora sim esse tipo de coisa entrará como prioridade.

Testes unitários estão sendo desenvolvidos. Estou trabalhando no "Mari", um "cmake" da vida, compatível com Carla e que também terá o papel de cuidar dos testes unitários.

[...] O parser de Carla é tão pequeno que não podemos ter certeza de que funciona ou não.

Este é mais um dos diferenciais do Carla. O Parser é realmente simples, ele é composto por 2 tipos de "nodes", Common e Block.

Mas, O parser do Carla tem uma chamada de um "pattern checker" externo ao parser.hpp.
Lá sim o parser "cresce". Ainda bem incompleto, com certeza. Mas permite maior facilidade para implementar novas keywords, statements, etc.

O core do Carla é sim pequeno ainda, pois para ele crescer, o do Morgana também deve crescer. Isso é o único "gap" que tomamos por essa escolha de abandonar o LLVM.

Se funciona no Linux, funciona em Mac e BSD. É algo que você poderia facilmente terminar.

Sim, com certeza. Mas meu objetivo é garantir uma compatibilidade mais ampla entre diferentes sistemas.

Eu entendo que eu poderia sim usar a libc internamente para me facilitar a gerar código de máquina, mas, não é um opção que vejo como plausível. Para mim, Morgana deve gerar código como cada sistema operacional espera nativamente. Respeitando ABIs, syscalls e convenções específicas.

Em vez de depender da libc como abstração comum, prefiro tratar cada plataforma de forma explícita.

Como o foco do Carla também inclui aplicações de baixo nível, essa abordagem faz sentido: reduz camadas intermediárias e tende a oferecer um comportamento mais previsível e consistente entre os sistemas, na maioria dos casos.

LLVM tem suas virtudes. Dezenas de arquiteturas de processador, sistemas operacionais, imensa interoperabilidade.

Estarei ativamente trabalhando em inovações para o Morgana. Nem por um dia o projeto ficará parado. Mesmo que não haja commit, pode ter certeza que alguma ideia estará sendo bolada.

Documentação mais extensa, código curado, sem renomear arquivos indesejados pra .txt ou coisa do tipo. Temos interesse de acompanhar, mas ainda não vimos todo o diferencial prometido aqui.

Já tocamos neste ponto, mas pretendo retomar novamente para deixar claro novamente, o projeto ainda está migrando para "a fase de maturidade". Faremos o dever de casa o mais cedo possível.