STORM(1)
π STORM(1) π
okay bestie, welcome to storm(1) β the manual page for storm, a language system for extensible languages. yes, that's the whole vibe. she's a whole language system. π
β¨ NAME β¨
storm β a language system for extensible languages π
π¦ SYNOPSIS π¦
storm [options] [-l language] [path] [--] <arguments>
Launch an interactive REPL.
storm [file/directory]
Import file as package, try to run main.
storm [options] -f function
Run a function and exit.
storm [options] -t/-T package
Run tests in the specified package and exit.
storm [options] -c expr
Evaluate the expression expr and exit.
storm --server
Start the language server.
storm --version
Print version information and exit.
storm --help
Print help on command-line options and exit.
likeβ¦ there are so many ways to summon her. pick your fighter. π
πΈ DESCRIPTION πΈ
so. Storm itself is a language system for extensible languages. she ships bundled with two languages: Basic Storm, the general purpose one, and the syntax language for specifying context-free grammars. but real talk? most of the time you're just gonna be living in Basic Storm. that's the main character. periodt.
The easiest way to get started with Storm is to launch the interactive REPL:
$ storm
bs> "Testing: " + 1.toS
=> Testing: 1
look at her go. "Testing: " + 1.toS β Testing: 1. ate. π₯
To write actual programs, you make a file β myprogram.bs, for example β and write code in there. Then you can load it like this:
$ storm myprogram.bs
bs> use myprogram
using myprogram
bs> main()
...
As the above example attempts illustrate, this loads the contents of the file into the package myprogram. That package may then be imported and functions may be executed from there. And if you want the functions to run automatically, no manual typing, you can invoke storm like this:
$ storm myprogram.bs -f myprogram.main
For larger programs, it is useful to put all files inside a directory and point storm at the directory rather than an individual file. In that case, the entire directory gets loaded as a package. one directory, one package, so clean. π§
If the -i flag is not used to specify imports (as above), Storm will automatically try to execute the main function in the imported package(s). so the example above can be simplified even further:
$ storm myprogram.bs
lowkey iconic behavior ngl.
And if a double dash is present (--), then any parameters that appear after the double dash are treated as parameters to the Storm program, and are made available to the Storm program without further processing. no meddling. she just hands them over. π«Ά
π OPTIONS π
storm recognizes the following command-line options.
-llanguage β Launch the interactive REPL for language. The default is to launch thebsREPL.-ffunction β Execute function. The function may not require any formal parameters. (so don't come at her with arguments, she's not taking them π)-cexpr β Evaluate expr in the specified REPL.-tpackage β Execute all tests in package.-Tpackage β Execute all tests in package and any sub-packages. thorough queen. π-ipath β Import the directory or file path as a package in the root namespace.-Iname path β Import the directory path as a package with the name name.-rpath β Use the directory path as the root of the namespace in Storm. By default/usr/lib/stormis used.--versionβ Print version information.--serverβ Launch the language server. Communicates with an editor usingstdin/stdoutusing a binary protocol.--helpβ Print a summary of command-line options.
β SEE ALSO β
For further information about Storm, see: https://storm-lang.org/ π
okay that's the whole page bestie, you're officially a storm girlie now. go launch a REPL and slay. πβ¨ππ¦πΈπ π«Ά
this was the STORM(1) page from the General Commands Manual, dated October 15 2023. mwah, bye. π
π¦ where this page comes from
- debian trixie: storm-lang 0.6.28-3+b1 Β· BSD-2-Clause
- ubuntu noble: storm-lang 0.6.20-1build3 Β· BSD-2-Clause
- ubuntu questing: storm-lang 0.6.28-3build1
- ubuntu resolute: storm-lang 0.7.5-3 Β· BSD-2-Clause
- ubuntu stonking: storm-lang 0.8.1+dfsg-1build1 Β· BSD-2-Clause
- Copyright 2021 Filip StrΓΆmbΓ€ck <filip@fprg.se>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms