The one at http://www.digitalmars.com/d/2.0/rdmd.html has the following code: int eval(string todo) { auto progname = tmpDir~"/eval.d"; std.file.write(progname, todo); scope(exit) std.file.remove(progname); run("dmd -run " ~ progname); return 0; } I think this is a problem when there are several users. Probably eval.d could be in a directory with a temporary name.