logo D System v0.6: Fixed Bugs


Checker-100394.1 Checker program didn't perform as advertised. Corrected in v0.7.

  • DepAnal-092894.1 Problem was with variable references in implied DO's. Corrected in v0.7.

  • Checker-040595.1 Composition errors caught but not printed. Corrected in v0.7.

  • Typo-031595.1 Notice contained incorrect URL. Corrected in v0.7.


    Master Listing

    Checker-100394.1 Checker program didn't perform as advertised. Corrections will appear in v0.7.
    {Can you reproduce the problem? (y/n)} y
    {If yes, how to reproduce:}
    
            run checker on a correct Fortran source file with
            some loops in it.
    
    {Can you work around the problem? (y/n)} n
    
    {Detailed Problem Description:}
    
            The options for the program 'checker' include "-d",
    which is supposed to get it to compute and save the dependence
    graph for the module in question (at least this is what it says
    it's supposed to do in the programs usage message). When I 
    run it, it computes the dependence graph just fine (and prints it),
    but doesn't save the dependence graph. 
    
    {Suggested fix (optional):}
    
    On October 4, 1994, John Mellor-Crummey (johnmc@cs.rice.edu) 
    added the following:
    
    ::The reason checker (and every other tool in the DSystem) 
    ::don't save dependence graphs is that the dependence graph 
    ::I/O was not written using the former ParaScope/Rn conventions 
    ::so when the database/repository was replaced, porting the 
    ::dependence graph I/O became a significant task. Since the 
    ::dependence graph is marked for reimplementation by Ken,
    ::porting the dependence graph I/O seems like a poor investment 
    ::of effort to me. If anyone has a compelling reason to want to 
    ::attempt it anyway, I'd be glad to advise what needs to be done.
    
    ::The documentation on checker that says it prints out the dependence
    ::graph is erroneous and will be fixed.
    
    
    {Date:} October 3rd, 1994
    
    {Name and email address:} Nathaniel McIntosh (mcintosh@cs.rice.edu)
    {Organization:} Rice University
    
    {Program:} D System     {Version:} [0.6]    
    {Report Type (1-6):} 2 Design Error - change the specification or design approach.
    
    {Attachments (1-3):} 1 Isolated source code (and data) that reproduce the problem.
    
    {Internal use only.  Please do not write below this line.}
    {--------------------------------------------------------}
    
    Assigned to: Kevin Cureton 10/94
    
    Resolved by: Kevin Cureton (curetonk@cs.rice.edu) on or 
    before 3/15/1995. Corrections will appear in v0.7.
    
    [index]


    DepAnal-092894.1 Problem was with variable references in implied DO's. Corrections will appear in v0.7.
    {Can you reproduce the problem? (y/n)} yes
    {If yes, how to reproduce:} see description
    
    {Can you work around the problem? (y/n)} no
    
    {Detailed Problem Description:}
    
       This bug has to do with the way that the dependence
    analyzer builds its list of references for a given loop.
    Consider the following loop (from SPEC77):
    
          DO 3 I=1,JCAP1
          WRITE(6,101) (A(I,J), J=1,JCAP1)
    
    When the dependence analyzer looks at the "i" loop, it sees
    the reference to "j" in the "j=1" part of the WRITE
    statement as a use of the scalar variable "j", as opposed
    to what it should be (i.e. a definition of a new induction
    variable for the implied DO). This can screw things up
    later on with variable privatization (since the privatizer
    tries to treat that "j" as a use, and can't get the right
    SSA information on it).
    
    
    {Suggested fix (optional):}
    
    The fix for this is to handle implied DO's as a special
    case in the routine dg_stmt_refs(). Should be a no-brainer.
    
    {Date:}  Sept 27, 1994
    
    {Name and email address:} N. McIntosh (mcintosh@cs.rice.edu)
    {Organization:} Rice University
    
    {Program:} D System     {Version:} [0.6] 
    
    {Report Type (1-6):} 2 {Design Error - change the specification or design approach.}
    
    {Attachments (1-3):} 1 {Isolated source code (and data) that reproduce the problem}
    
    {Internal use only.  Please do not write below this line.}
    {--------------------------------------------------------}
    
    Resolved by: Nat McIntosh (mcintosh@cs.rice.edu) on or 
    before 3/15/1995. Corrections will appear in v0.7.
    
    [index]


    Checker-040595.1 Composition errors caught but not printed. Corrections will appear in v0.7.

    This bug was reported and corrected by Nat McIntosh (mcintosh@cs.rice.edu), who added that it may not be completely resolved and may still involve module consistency checking.

    Version 0.6 of the D System contains a bug in the
    code which examines compositions. Compositions are
    checked for consistency (i.e. to detect duplicate
    function definitions and unresolved function 
    references, etc), but the specific errors are not
    printed when they occur. Instead, a single catch-all
    message is printed indicating that some errors are present.
    

    In Version 0.7, if a program composition file has consistency problems, the specific errors (i.e. duplicate definitions, unresolved references, etc) can be seen by running the composition through the "checker" with the -P option. Modified files in this bug fix include execs/checker/Checker.C libs/fileAttrMgmt/composition/Composition.h libs/fileAttrMgmt/composition/ErrorsCompAttr.C libs/fileAttrMgmt/composition/ErrorsCompAttr.h libs/fileAttrMgmt/composition/NeedProvCompAttr.C libs/fileAttrMgmt/composition/NeedProvCompAttr.h libs/fileAttrMgmt/composition/ProcModuleMap.h libs/fileAttrMgmt/composition/Composition.C libs/frontEnd/ast/NeedProvSet.C Note that other tools within the D System (examples: cfg, fortDcompiler) will still detect composition consistency problems, but will not report the specific errors ("checker" is required for this purpose).

    In Version 0.6 of the D System, the code which supports nested compositions (i.e. compositions within compositions) is buggy. Specifically, the facility that checks the nested composition for consistency is incorrect and will fail to detect certain consistency problems if they appear in nested compositions.

    [index]


    Typo-031595.1 Notice contained incorrect URL. Corrections will appear in v0.7.

    This bug was reported by Nat McIntosh (mcintosh@cs.rice.edu) and corrected by Kevin Cureton (curetonk@cs.rice.edu) in v0.7.

    When you run one of the D tools like fortD or checker, it spits 
    out a copyright notice, which includes the following:
    
       Usage of this software implies acceptance 
       of the licenses which can be found in
       /DSystem/LicenseDSystem and /DSystem/LicensePablo 
       or retrieved from the World Wide Web, using the URL 
       http:/softlib.rice.edu/fortran-tools/DSystem/v0.6
    
    The URL listed above is malformed. It should be 
     
        http://softlib.rice.edu/fortran-tools/DSystem/v0.6
    not 
        http:/softlib.rice.edu/fortran-tools/DSystem/v0.6
    
    [index]


    Please direct comments about this page to dsystem-info@cs.rice.edu.

    URL ftp://softlib.rice.edu/pub/DSystem/Release-0.6/bugIndexFixed-0.6.html