Comunidad

Dónde ocurre kaikai

El proyecto es joven y se desarrolla a la vista. No hay foro ni chat todavía: todo pasa en los repositorios y en el blog.

El código

El lenguaje, las bibliotecas y este sitio viven en la organización en GitHub. El repositorio del compilador es kaikailang-org/kaikai: ahí están el compilador autoalojado, el runtime, la stdlib y la documentación de diseño.

Los issues están abiertos y son la vía principal para reportar. Un reporte útil trae la salida de kai --version y el programa más pequeño que reproduzca el problema; si el compilador acepta algo que no debería, o rechaza algo que sí, ese caso mínimo es la mitad del arreglo.

El libro

Effective Programming with kaikai se escribe en paralelo al lenguaje, en español e inglés, y se lee online o se descarga en PDF. Es un borrador vivo: cada versión se valida contra el compilador del momento, así que los ejemplos que trae son los que efectivamente corren.

Su repositorio es kaikailang-org/kaikai-book, y las correcciones al texto también se reciben como issues.

El blog

Las decisiones de diseño —por qué efectos algebraicos, por qué conteo de referencias en vez de recolector, qué se probó y se descartó— se cuentan en lnds.net.

Estado del proyecto

kaikai es pre-1.0 y va por la edición Hanga Roa. Dentro de una edición la superficie del lenguaje se mantiene estable, así que actualizar es leer las notas de la versión, correr kai upgrade y recompilar. Los cambios incompatibles se guardan para el cruce a la edición siguiente.

La etiqueta 1.0 está postergada a propósito: el objetivo es que llegue cuando la superficie esté fija, no en una fecha.

Agradecimientos

kaikai le debe su forma a lenguajes que resolvieron antes las mismas preguntas: los efectos algebraicos y su comprobación de filas vienen de la línea de Koka y Effekt; el conteo de referencias Perceus, de la investigación que Koka publicó; la inferencia de tipos, de la tradición de ML; la concurrencia estructurada, de las nurseries que popularizó Trio; el modelo de ediciones, del manifiesto de estabilidad de Rust; y el modelo de distribución, de Go.