On Tue, Jun/12/2007 04:53:21PM, Jeff Squyres wrote: > On Jun 12, 2007, at 10:50 AM, Ethan Mallove wrote: > > >>> eval $btls = MTT::Functions::if(MTT::Functions::regexp > >>> (MTT::Functions::shell("hostname"), "v440-2|v20z-2"), > >>> MTT::Functions::enumerate("self,sm,tcp"), > >>> MTT::Functions::if("MTT::Functions::regexp > >>> ("MTT::Functions::shell("hostname"), "v440-6"), > >>> MTT::Functions::enumerate("udapl"), > >>> MTT::Functions::enumerate("sm", "tcp", > >>> "sm,tcp", "udapl", "sm,udapl") > >>> ) > >>> ) > >> > >> Ah -- I had to think about this a bit before I figured it out/ > >> remembered. I think we won't get the expansion effect if you do it > >> this way. > > > > No expansion effect? As long as the perl code evaluates to > > an array, couldn't it to work? E.g., > > We'll need to revamp all the current funclets to accept > arrays and return [potentially] arrays of arrays. What > if, as a counterproposal, we have a &perl() funclet? > Then you could do the following: > > > > btls = &perl("if ($hostname =~ /foo/) { \ > return ("self,sm,tcp"); \ > } elsif ($hostname =~ /bar/) { \ > return ("udapl"); \ > } else { \ > return ("sm", "tcp", "sm,tcp", "udapl", "sm,udapl"); \ > }") > > > > (or something like that) >
I like that. Is that in anticipation of having &ksh(), &zsh(), &python(), &php(), &tcl(), ... ? To reduce some clutter, maybe a param like this would be fun, e.g., default_ini_evaluator = perl So MTT will assume you mean &perl() if there's no leading '&'. Other legal options being ... default_ini_evaluator = python default_ini_evaluator = sh default_ini_evaluator = tcl default_ini_evaluator = ... -Ethan > > > > -- > Jeff Squyres > Cisco Systems > > _______________________________________________ > mtt-users mailing list > mtt-us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users