Urgent.News

What's breaking now, across thousands of outlets.

Tech

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. Dynamic values live on data stacks the compiler assigns. Growth bumps a pointer. Scope exit moves that pointer back. You do not write the stack. You do choose the array spelling, because that spelling is the…

This Goose language tutorial covers the basics of arrays, slices, and functions in Goose lang. The Goose language does not have a heap allocator or garbage collector, and values live on data stacks assigned by the compiler. Growth bumps a pointer, and scope exit moves that pointer back. The array spelling chosen is the contract, and in week one, the grow-only array T[..] is used.

References into the array stay valid across push operations, which is different from Vec T. The total function takes an array or slice and returns the sum of its elements without copying the elements. The main function demonstrates the use of the grow array, printing its contents, the total, and the total of a slice of it. Goose arrays are slices, a reference plus a count, and can be accessed using ^k for end-based counting.

Variables can only be reassigned with let, while var can be reassigned. Types usually infer, and there is no separate string type in Goose. The divide function demonstrates Euclidean division, returning both the quotient and a boolean indicating success. The three rules mentioned that can be confusing on day one are arithmetic using the operands' width, implicit type widening for narrow types, and the requirement to use as or as! for narrowing.

Growable values are not copied by assignment and bind a reference instead. The tutorial advises ignoring relative references, reusable pools, returning errors from load, threads, and external functions until the official tutorial. The compiler is still young, lacking namespace privacy, labeled break, and whole-program compilation.

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

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.

  • Download prebuilt Goose compiler from releases page and place on PATH
  • Run "goose hello.goose" to execute code with print function
  • Use "goose build -o filename" to create binary with custom name

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

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

Goose Lang and Flisk.sh 101: Same Repo, Different Processes

Part 5 of Goose lang and Flisk.sh 101. This is the join, and the join is a boundary. ./total is a Goose program. It prints and exits. The orders-api container is a Go process Flisk generated.

  • Goose Lang tutorial integrates with Flisk.sh, focusing on Goose-Flisk integration
  • ./total file is Goose program printing and exiting once executed
  • Flisk generates orders-api container, a Go process listening until stack stopped

More from Thursday 22 October →