Urgent.News

What's breaking now, across thousands of outlets.

Tech

Goose Lang 101: Install the Compiler and Print One Line

Part 2 of Goose lang and Flisk.sh 101. The Flisk CLI stays closed. Goose is a whole-program compiler. It writes one C file and can run that C inside its own process through TinyCC. There is no package manager step and no go.mod . Install a release, do not clone yet Prebuilt compilers are on the releases page . Unpack one and put that directory on PATH . The compiler finds its standard library…

Goose Lang 101 delves into the installation of the Goose compiler and demonstrates printing a single line of code. Goose is a full-program compiler that generates a single C file and executes it within its own process using TinyCC. There is no package manager step, no go.mod file, and the installation process involves downloading a prebuilt compiler from the releases page and placing it on the PATH.

The compiler locates its standard library alongside itself, and the build cache is stored under ~/.goose or the GOOSE_HOME directory if set. On macOS, additional quarantine clearance steps may be necessary.

To confirm the language installation, check for the presence of the 'goose' command using the 'which' command. The Goose command requires a .goose file as input; if the help output focuses on LLM providers, rename or remove the binary from PATH and launch a new shell. On Linux, install libc6-dev prior to the first run, while macOS users need to install the Xcode command-line tools.

The Goose compiler needs a C compiler; suitable options include gcc, clang for Linux and macOS, and Visual Studio 2022 or clang for Windows. Since this version lacks threading capabilities, the in-process TinyCC path suffices. Running 'goose hello.goose' is sufficient to execute the code.

The 'print' function in Goose can accept multiple arguments, rendering each argument individually and outputting a single line. The 'print' function does not support format strings. In the example 'hello.goose', the 'print' function outputs "hello, goose". Additional print statements can include variables, such as "answer= ", 42, "ratio= ", 0.75, "yes= ", 3 2.

To create a binary with a name distinct from 'goose', use the 'goose build' command with the '-o' flag specifying the desired output filename. The compiler's C compiler selection can be verified using 'goose toolchain'. The compiler's intermediates are stored under the ~/.goose or GOOSE_HOME directory. If Goose cannot locate a C compiler, it will halt the build process and prompt for installation.

Optional: a VS Code extension is included in the release archive, providing language support through the 'code' command and the 'vscode/goose-language.vsix' extension. The Goose language server facilitates features such as diagnostics, hover information, go to definition, code completion, and renaming. Skip this step if time is limited.

The current installation process does not involve listening on a port, responding to port queries, or handling HTTP requests. Flisk cannot route a process that exits after a single print, which is acceptable for this introductory level. For further details, refer to the official Goose tour documentation and the '01_tour.goose' sample located in the Goose repository's 'docs' and 'samples' directories, respectively.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Diagrid's Goose Announcement Is a Kubernetes Story. flisk.sh Is Not.

Diagrid announced a Catalyst integration for Goose on 22 October 2026. A Goose recipe can commit each step before the next one starts: every LLM call, extension tool call, and sub-recipe.

  • Diagrid announced Goose-Catalyst integration on 22 October 2026
  • Goose remains unchanged at aaif-goose/goose repository
  • Flisk.sh focuses on API restarting, not relevant to Diagrid's announcement

Goose Lang 101: One Array, One Slice, One Function

Part 3 of Goose lang and Flisk.sh 101. Stay in ~/src/goose-flisk-101 . Run every file with goose file.goose before you build it. Goose has no heap allocator and no garbage collector.

  • Goose language uses grow-only arrays T[..] with valid references across push operations
  • Goose arrays are slices with reference and count, accessed via ^k for end-based counting

Flisk.sh 101: One service.json, Then a Health URL

Part 4 of Goose lang and Flisk.sh 101. Use the Go backend. Do not pass --language goose . Flisk turns service.json into a local Docker and Tilt stack. You own the manifest.

  • Flisk.sh converts service.json to Docker and Tilt stacks
  • Requires Node.js 22.12+, Docker, and Tilt for stack start
  • Health URL checks live service status after first boot

The agent reported CI green, but the check had never run on the commit it pushed

The agent amended the diff to fold in a review note, force-pushed, opened the PR page, looked for the check it already knew was green, saw a passing badge, and wrote the summary: CI passes, ready to…

  • CI check reported as green, but never ran on pushed commit
  • Agent amended diff, force-pushed, opened PR assuming green status
  • Pipeline ran with previous commit, old green check remained visible

More from Thursday 22 October →