the name (path) of the file to write the script to
a pointer to the newly created device. The caller owns the surface and should call Device.destroy when done with it. This function always returns a valid pointer, but it will return a pointer to a "nil" device if an error such as out of memory occurs. You can use Device.status to check for this.
Creates a output device for emitting the script, used when creating the individual surfaces. Since 1.12