Running a main function
Unison programs can be executed within theUCMwith the
runcommand. This command is used to execute the "main" entry point to your Unison code. The
runcommand expects adelayed computationwhich returns unit or
runcommand provides a handler for the
Exceptionabilities, so programs which perform IO and bubble up top-level failures can be executed by the UCM.
Arguments to main functions
The following function will print out the given main function arguments:
In the UCM, you can call it with
.> run myMain blah blah blah
And it will return the following to the console:
.> run myMain blah blah blah Hello blah blah blah
The UCM can produce standalone binary executables for when you want to run a Unison program without entering into the CLI! These binary executables contain all the Unison code for the program in questionANDits essential dependencies in a single, lightweight bytecode file.
Toproducethe binary file run the
compilecommand from within the UCM:
.> compile myMain myRadExecutable
The first argument is the entry point to your Unison program (the "main" method described above), and the second argument is the name of the executable file that the UCM should produce.
Unison executable files have the suffix
.ucso the above command will write a file called
myRadExecutable.ucin the folder where the codebase lives.
Torunthe binary executable, you can then issue the following command from the terminal of your choice:
$ ucm run.compiled myRadExecutable.uc
🌻 Your Unison program is now up and running!
"UCM" stands for "Unison Codebase Manager." It's the all-in-one tool you'll use to explore and modify a Unison codebase and run Unison programs.