Some synthesis methods are very slow, and become even slower when creating large games, so the kernel will announce a slow process, provide regular updates, and signal when the process is done. The interface should display this in some useful way. In general, progress should always be displayed, although one could postpone displaying anything until after the first progress update, calculate an estimated time to completion, and not display anything if that estimate is for less than a few seconds. However, this is probably unnecessary.
void announce_read_progress()
The kernel calls this regularly while reading game definitions.
Interfaces running on slow machines should use this to indicate that
everything is still working; for instance, the Mac interface animates a
special cursor that indicates reading is taking place.
void announce_lengthy_process(char *msg)
The kernel calls this at the beginning of each synthesis. The argument
is a readable string that the interface can show to players.
void announce_progress(int pctdone)
The kernel may call this at milestones within a synthesis.
The number ranges from 0 to 100.
void finish_lengthy_process()
The kernel calls this at the end of a synthesis.