On Jul 15, 2014, at 2:03 PM, Mike Dubman <mi...@dev.mellanox.co.il> wrote:

> these are two separate issues:
> 
> 1. -x var=val (or -mca opal_base_envlist var=val) will work in the same way
> opal_base_envlist does the same as "-x" and can be used in the very same 
> fashion as -x
> 
> 2. When list of vars is passed with help of opal_base_envlist, the escaping 
> is possible but escaped char should differ from delimiter char.

That would be my preference (use something like "\" as the escape char).  
Though we could always go with a scheme where a doubled delimiter means 
"literal delimiter", sort of like "$$" in a Makefile.

> I think -x should stay as shotrt-form alias for -mca opal_base_envlist 
> var=val and -mca opal_base_envlist var.
> on dev meeting it was decided to deprecate it as some point.

Can we revisit this decision?  Mike and I both seem to be in favor of retaining 
"-x", at least for non-conflicting uses.  Would someone who is against 
retaining "-x" please speak up in favor of that position?

Also, Mike, I just looked again at the code and I don't think it is robustly 
checking for conflict cases.  It's possible to do this and you won't get an 
error with the current code, right?

----8<----
$ mpirun -mca mca_base_env_list foo=bar -x foo=baz ...
----8<----

See this code, which only looks at the environment when looking for 
"mca_base_env_list":

> Modified: trunk/orte/tools/orterun/orterun.c
> ==============================================================================
> --- trunk/orte/tools/orterun/orterun.c        Tue Jul  8 20:10:04 2014        
> (r32162)
> +++ trunk/orte/tools/orterun/orterun.c        2014-07-08 20:38:25 EDT (Tue, 
> 08 Jul 2014)      (r32163)
> @@ -1722,6 +1722,13 @@
>  
>      /* Did the user request to export any environment variables on the cmd 
> line? */
>      if (opal_cmd_line_is_taken(&cmd_line, "x")) {
> +        char* env_set_flag = getenv("OMPI_MCA_mca_base_env_list");
> +        if (NULL != env_set_flag) {
> +            orte_show_help("help-orterun.txt", "orterun:conflict-env-set", 
> false);
> +            return ORTE_ERR_FATAL;
> +        } else {
> +            orte_show_help("help-orterun.txt", "orterun:deprecated-env-set", 
> false);
> +        }
>          j = opal_cmd_line_get_ninsts(&cmd_line, "x");
>          for (i = 0; i < j; ++i) {
>              param = opal_cmd_line_get_param(&cmd_line, "x", i, 0);


-Dave

Reply via email to