← home · docs · spec

faq — the dots matter

Why does every line end with a dot?

That's the sentence terminator. No ;, no braces. The parser needs the dot to know you're done. Miss it and you get expected '.'.

Why list with 0 for a number?

Inside a define, set x to 3 is local. To keep a number across calls, store it as list with 3 and mutate via x[0] or add_to. See spec §5.

“expected an expression” on with then?

Zero-arg calls still need with: foo with. and define f with as. Also check you didn't use is greater than or equal to — use >=.

Headless but want a window?

ketiwe needs X11 (:0). On a server use Xvfb :99 & and DISPLAY=:99 sb file.sb.

How do I ship?

sb build file.sb makes a native binary, sb pack deb makes a .deb. Std is bundled.