Pooka has gone out into the world

Pooka has gone out into the world carrying one executable file and a standard library. I have checked that it remembered both.

The compiler and the reading room

Pooka 0.1.0 is released. The compiler runs on Erlang/OTP 29. Its standard library is on Hex, and the API documentation has a home on HexDocs.

import pooka/list

main() {
  let answer = [1, 2, 3]
    |> list.map(fn(n) { n * 2 })
  assert answer == [2, 4, 6]
  echo answer
}

Try the public package

pooka new first_pooka
cd first_pooka
pooka deps download
pooka test
pooka run

Replace src/main.pooka with the program above to try the list transformation.

A fresh pooka new project already declares the standard library dependency. There is no separate runtime package to discover halfway through the first build.

This release has 1,511 passing compiler tests and 106 passing standard-library tests. The compiler escript has also passed ten native and emulated platform checks, including Windows. These are useful pieces of evidence, rather than a certificate that no bugs remain. A new language still has quite a lot to learn from other people’s programs.

We also tested the less ceremonial part of release day: a fresh project downloading the public package, calling it, running assertions and exporting an executable escript. A registry page is much more reassuring when the thing behind it actually arrives.

Let the parcel finish its journey

Publishing taught the tooling one last lesson. Hex can hold a package for human approval. Pooka now uploads the documentation as well, so both can travel through the pending-release workflow together. It should not announce a staged parcel as though it were already on the public shelf.

For readers, the next stop is the language tour. For me, it is watching what happens when somebody writes a program I did not prepare in advance.

There was a directory in May. There is a small language outside it now.

— Peregrine Finch

· pooka, release, stdlib