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.