Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-user] PTP synchronized projects - Environment Management * was: Ooops, remote make doesn't execute ?

Hi

Yes, it looks like you have encountered a different problem. In the first line of the function:

final Set<String> result = new TreeSet<String>(MODULE_NAME_COMPARATOR);

MODULE_NAME_COMPARATOR is a case-insensitive function for comparing
module names. This is good for sorting names, but it treats names that differ only by case
as equivalent. In a set, equivalent names are not allowed.

I think the solution is to modify this function to not treat names that differ only by case as
equivalent. (The function is defined in the superclass AbstractEnvManager).


John
 
On Nov 11, 2012, at 4:02 PM, Christoph Pospiech <Christoph.Pospiech@xxxxxxxxxx> wrote:

On Tuesday, November 06, 2012 10:28:42 John Eblen <jeblen@xxxxxxx> wrote
Hi

I have also noticed missing modules. Environment management filters module
names with "special" characters. This is
done to filter extra output lines that are not module names, but it seems
to be too strict in some cases. In my case,
C++ modules are missing because the + character is special. I'll file a bug
report for this.

Hi John,

good to see that this is a known issue - in principle. In my case, however, I
don't think it is related to special characters. See detailed analysis below.


The relevant code is in file org.eclipse.ptp.ems.core.ModulesEnvManager in
function "collectModuleNamesFrom"
"MODULE_NAME_PATTERN" is the guilty regular _expression_. In the console view
of your development environment,
you should see an error message for each line that is filtered.

John

I started debugging by setting several breakpoints in ModuleEventManager.java,
method "private Set<String> collectModuleNamesFrom(List<String> output)".
The variable "output" has the following value at method entry.

(java.util.ArrayList<E>) [/sw/aix61/modules-3.2.7b/Modules/versions:,
/sw/aix61/modules-3.2.7b/Modules/3.2.7/modulefiles:, /sw/aix61/Modules:,
FERRET/6.1, GAMS/23.7, GAMS/default, GCC/gcc-4.3.3, GCC/gcc-4.3.3-1,
GCC/gcc-4.4.0-1, GCC/gcc-4.4.2, GCC/gcc-4.5.1, GLOBUS/4.2.1, GLOBUS/default,
GNU/autoconf/2.69, GNU/autoconf-2.64, GNU/autoconf-2.68, GNU/automake/1.11.5,
GNU/automake/1.11.6, GNU/automake-1.11, GNU/automake-1.11.1,
GNU/libtool/2.4.2, GNU/libtool-2.4, IBM/hpct5.1.0.2, IBM/xlC10.1.0.0,
IBM/xlC10.1.0.10, IBM/xlC10.1.0.13, IBM/xlC10.1.0.3, IBM/xlC10.1.0.4,
IBM/xlC10.1.0.5, IBM/xlC10.1.0.6, IBM/xlC10.1.0.7, IBM/xlC11.1.0.10,
IBM/xlC11.1.0.11, IBM/xlC11.1.0.2, IBM/xlC11.1.0.3, IBM/xlC11.1.0.4,
IBM/xlC11.1.0.5, IBM/xlC11.1.0.7, IBM/xlC11.1.0.8, IBM/xlC12.1.0.0,
IBM/xlC12.1.0.1, IBM/xlc10.1.0.10, IBM/xlc10.1.0.13, IBM/xlc10.1.0.2,
IBM/xlc10.1.0.3, IBM/xlc10.1.0.4, IBM/xlc10.1.0.5, IBM/xlc10.1.0.6,
IBM/xlc10.1.0.7, IBM/xlc11.1.0.10, IBM/xlc11.1.0.11, IBM/xlc11.1.0.2,
IBM/xlc11.1.0.3, IBM/xlc11.1.0.4, IBM/xlc11.1.0.5, IBM/xlc11.1.0.6,
IBM/xlc11.1.0.7, IBM/xlc11.1.0.8, IBM/xlc12.1.0.0, IBM/xlc12.1.0.1,
IBM/xlf12.1.0.0, IBM/xlf12.1.0.11, IBM/xlf12.1.0.3, IBM/xlf12.1.0.4,
IBM/xlf12.1.0.5, IBM/xlf12.1.0.6, IBM/xlf12.1.0.7, IBM/xlf12.1.0.8,
IBM/xlf13.1.0.0, IBM/xlf13.1.0.10, IBM/xlf13.1.0.11, IBM/xlf13.1.0.2,
IBM/xlf13.1.0.3, IBM/xlf13.1.0.4, IBM/xlf13.1.0.5, IBM/xlf13.1.0.6,
IBM/xlf13.1.0.7, IBM/xlf13.1.0.8, IBM/xlf14.0.0.1_BETA, IBM/xlf14.1.0.0,
IBM/xlf14.1.0.1, IGES/grads2.0.a6, NAG/5.1.340, NCAR/ncarg5.1.0,
NCAR/ncarg5.1.1, NCAR/ncarg5.2.0, NCAR/ncarg6.0.0, NCL/6.0.0-beta, NCO/3.9.9,
NCO/4.0.8, NCVIEW/1.93g, NCVIEW/2.0beta4, NCVIEW/default, NETCDF/4.2,
NETCDF/4.2.1, NETCDF/4.2.1.1, PYTHON/2.6.4, PYTHON/2.6.4-buildbot-0.8.2,
PYTHON/2.7.1, SVN/1.6.16, SVN/1.7.5, TAU/2.18.3, TAU/2.19, TEX/default,
UNITE/1.0, afterburner/4.4.0, afterburner/4.5.1, afterburner/4.6.0,
afterburner/4.6.1, afterburner/4.6.2, afterburner/4.6.3, afterburner/default,
cdo/1.4.0.1, cdo/1.4.1, cdo/1.4.3, cdo/1.4.4, cdo/1.4.5, cdo/1.4.5.1,
cdo/1.4.6, cdo/1.4.7, cdo/1.5.0, cdo/1.5.1, cdo/1.5.2, cdo/1.5.3, cdo/1.5.4,
cdo/1.5.5, cdo/1.5.6, cdo/1.5.8, cdo/default, default,
/sw/aix61/unite/modulefiles/tools:, ddt/2.6.13711-aixpoe-ibm, ddt/3.0.17813-
aixpoe-ibm, ddt/3.1.20638-aixpoe-ibm(default), ddt/3.2.24924-aixpoe-ibm,
marmot/2.4.0-aixpoe-ibm, scalasca/1.3.3-aixpoe-ibm, scalasca/1.4.1-aixpoe-ibm,
scalasca/1.4.2-aixpoe-ibm(default), vampirserver/vampirserver-7.5.0(default),
vampirtrace/5.11-aixpoe-ibm, vampirtrace/5.12.2-aixpoe-ibm,
vampirtrace/5.13.1-aixpoe-ibm(default)]

At least the "IBM/xlc<some_version_number>" that I was missing previously, are
still in this list. Please note the list entries of the form
"IBM/xlC<same_version_number>". For xl Compilers, C and C++ share much of the
product development, so IBM/xlc and IBM/xlC pretty much always come in pairs,
and so do the modules generated from them.

The first entry after all "IBM/xlCxxx" entries is "IBM/xlc10.1.0.10". For this
entry I am seeing the following.
*  "shouldIgnore(line)" == false
*  MODULE_NAME_PATTERN.matcher(moduleName).matches() == true
*  method "add" evaluates to "return m.put(e, PRESENT)==null;"
* In TreeMap.class, method "public V put(K key, V value)", the following loop
  iterates until t == IBM/xlC10.1.0.10

           do {
               parent = t;
               cmp = cpr.compare(key, t.key);
               if (cmp < 0)
                   t = t.left;
               else if (cmp > 0)
                   t = t.right;
               else
                   return t.setValue(value);
           } while (t != null);

If t == IBM/xlC10.1.0.10, we get cmp == 0, and the method exits with
"return t.setValue(value)".

This means that the put method (and hence the calling add method) consider
"IBM/xlc10.1.0.10" and "IBM/xlC10.1.0.10" as identical. This is wrong, because
one module means xlC ( == C++) and the other means xlc (== C).

Consequently, the module list in Eclipse PTP contains only those versions of
the xlc Compiler that doesn't have a matching module for the C++ compiler with
identical version number.

Hope that was clear enough to demonstrate the bug. Unfortunately, I can't
propose a cure. I just don't know enough of the code. If possible, one cure
would be to turn cpr.compare case sensitive.
--

Mit freundlichen Grüßen / Kind regards

Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone: +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: christoph.pospiech@xxxxxxxxxx
-------------------------------------------------------------------------------------------------------------------------------------------
IBM Deutschland GmbH / Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Martina Koederitz (Vorsitzende), Reinhard Reschke, Dieter
Scholz, Gregor Pillen, Joachim Heel, Christian Noll
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB
14562 / WEEE-Reg.-Nr. DE 99369940

_______________________________________________
ptp-user mailing list
ptp-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-user


Back to the top