Changeset 956

Show
Ignore:
Timestamp:
03/04/09 17:11:51 (3 years ago)
Author:
andrei
Message:

Changed eval() to not use the same filename for all expressions

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tools/rdmd.d

    r954 r956  
    3333// For --eval 
    3434immutable string importWorld = " 
     35module temporary; 
    3536import std.stdio, std.algorithm, std.array, std.atomics, std.base64,  
    36     std.bigint, std.bind, /*std.bitarray,*/ std.bitmanip, std.boxer,  
     37    std.bigint, /*std.bind, std.bitarray,*/ std.bitmanip, std.boxer,  
    3738    std.compiler, std.complex, std.contracts, std.conv, std.cpuid, std.cstream, 
    3839    std.ctype, std.date, std.dateparse, std.demangle, std.encoding, std.file,  
     
    4445    std.string, std.syserror, std.system, std.traits, std.typecons,  
    4546    std.typetuple, std.uni, std.uri, std.utf, std.variant, std.xml, std.zip, 
    46     std.zlib;"; 
     47    std.zlib; 
     48"; 
    4749 
    4850int main(string[] args) 
     
    177179    // Have at it 
    178180    if (isNewer(root, exe) || 
    179             canFind!((string a) {return isNewer(a, exe);})(myModules.keys)
     181            find!((string a) {return isNewer(a, exe);})(myModules.keys).length
    180182    { 
    181183        invariant result = rebuild(root, exe, objDir, myModules, compilerFlags); 
     
    226228    context.update(root); 
    227229    foreach (flag; compilerFlags) { 
    228         if (canFind(irrelevantSwitches, flag)) continue; 
     230        if (find(irrelevantSwitches, flag).length) continue; 
    229231        context.update(flag); 
    230232    } 
     
    352354int eval(string todo) 
    353355{ 
    354     auto progname = tmpDir~"/eval.d"; 
     356    MD5_CTX context; 
     357    context.start(); 
     358    context.update(todo); 
     359    ubyte digest[16]; 
     360    context.finish(digest); 
     361    auto progname = std.path.join(tmpDir, 
     362            "rdmd_eval" ~ digestToString(digest) ~ ".d"); 
     363 
    355364    std.file.write(progname, todo); 
    356365    scope(exit) std.file.remove(progname);