Transferring a string to a task, as an input of type 'string' does not work, an empty string is seen instead. For debugging purposes I also tried to use the $typename system function, which is not implemented yet, it is commented out it the example. The Example works properly in ModelSim.
iverilog -g2012 string_bug.sv
vsim -c -do 'run -all; quit' string_bug
The purpose of the original code was to open a named pipe ($ mkfifo pipename.fifo) for an UART model. Here ModelSim also failed, it locked into a loop while opening the pipe file.