static int RunDormantCmd(ClientData cd, Tcl_Interp *interp, int argc, char *argv[])
{
#ifdef _WIN32
    Interpreter *i = (Interpreter *)cd;
    symbolArr roots;
    symbolArr scope;

        if(i->ParseArgString((char *)argv[1], roots)!=0)  return TCL_ERROR;
        if(i->ParseArgString((char *)argv[2], scope)!=0)  return TCL_ERROR;


    // Find all projnodes in input and set them up as domain
    for(int ii = roots.size() - 1; ii >= 0; ii--){
            symbolPtr sym = roots[ii];
            if(sym.get_kind() == DD_PROJECT){
                Relational *rp = (Relational *)sym;
                projNode *pn   = (projNode *)rp;
                if(pn){
                        projList::domain_add(pn->get_name());
                        }
                roots.remove(sym);
                }
    }
    setupdefaults();
    decomposer *d = new decomposer;
    d->go_deadcode_only(roots, defaultweights, NWEIGHTS, TRUE, &scope);
    Tcl_SetResult(i->interp, "", TCL_VOLATILE);
#endif
    return TCL_OK;
}