A Process is the runtime environment for the virtual machine and interpreter. It has a subclass named Main which is where you should override the methods of Process. There are two methods of interest. One is named
startup and is called after the class library has been compiled. The other is named
run and is called when the user chooses the Run menu command.
Get or set tail call optimization. The default is on. Setting this to
false can help with debugging by including intermediate levels in an error backtrace.
Returns the full path to the file containing the code that is currently executing interactively in the interpreter. Usually this is the current document. If the code block executes another file on disk, using String: -load or String: -loadPaths,
nowExecutingPath will be the location of the executed file.
nowExecutingPath is valid only for interactive code, i.e., code files with a
.scd extension. It does not apply to class definitions (
.sc). For that, use
This method is supported in the SuperCollider IDE, the macOS-only SuperCollider.app, and the scel (SuperCollider-Emacs-Lisp) environment. In other editor environments, it will return
nowExecutingPathhas a corresponding setter method,
nowExecutingPath_, for internal use only by the interpreter. Do not call the setter method!
called after the class library has been compiled. Override this in class Main to do whatever you want.
called when the user chooses the Run menu command. Override this in class Main to do whatever you want.
The top-level Thread, i.e the parent of all other Threads. This instance of Thread always exists and is created with the Process when SuperCollider starts.
All SuperCollider code initially runs in the context of the main Thread:
This means that thisThread will always initially point to the main Thread. However, when some code starts a Routine, the Routine becomes the current Thread, with the main Thread as its parent.