I'll review the test changes.

-Brad


On Mon, 24 Feb 2014, Michael Ferguson wrote:

> Hi Tom (and everybody) -
>
> Great, thanks. I've committed the compiler changes with your review and
> am awaiting a review of the test/ changes.
>
> Cheers,
>
> -michael
>
> On 02/24/2014 02:33 PM, Tom Hildebrandt wrote:
>> Hi Michael:
>>
>> The C++ changes look fine to me.  I am less familiar with scripts, so I hope 
>> someone else will chime in on that part of the patch.
>>
>> You might consider checking this in as two separate pataches anyway, since 
>> the problems fixed in the C++ and script codes are correspondingly distinct.
>>
>> THH
>> ________________________________________
>> From: Michael Ferguson [[email protected]]
>> Sent: Monday, February 24, 2014 11:01 AM
>> To: chapel-developers
>> Subject: [Chapel-developers] request for review: portability fixes
>>
>> Hi -
>>
>> I recently switched to using Debian 7.4 for my Chapel development,
>> and I discovered:
>>    - gcc 4.7.2 has -Wall enabled warnings about casting away const
>>    - /bin/sh is more POSIX-compilant and doesn't like bash-isms
>>    - /bin/csh is not tcsh and behaves oddly with echo >> somefile
>>
>> I've addressed these problems. For the build errors, in most
>> cases I just made cast-to types include 'const' in the right way,
>> but in one case I actually added C++'s const_cast.
>>
>> The main /bin/sh problem is that [ "a" == "b" ] does not
>> work; what we want is [ "a" = "b" ] for string comparison
>> or [ 1 -eq 2 ] for numeric comparison.
>>
>> The /bin/csh problems caused me to convert two tests
>> to using /bin/sh :
>>    test/memory/shannon/outofmemory/sub_test
>> and lots of tiny scripts in
>>    test/compflags/bradc/printstuff/
>>
>> since the group has been trying to move away from csh.
>>
>> Patch below and attached.
>>
>> Index: compiler/AST/symbol.cpp
>> ===================================================================
>> --- compiler/AST/symbol.cpp     (revision 22775)
>> +++ compiler/AST/symbol.cpp     (working copy)
>> @@ -1800,8 +1800,8 @@
>>
>>
>>    static int compareLineno(const void* v1, const void* v2) {
>> -  FnSymbol* fn1 = *(FnSymbol**)v1;
>> -  FnSymbol* fn2 = *(FnSymbol**)v2;
>> +  FnSymbol* fn1 = *(FnSymbol* const *)v1;
>> +  FnSymbol* fn2 = *(FnSymbol* const *)v2;
>>      if (fn1->linenum() > fn2->linenum())
>>        return 1;
>>      else if (fn1->linenum() < fn2->linenum())
>> Index: compiler/AST/type.cpp
>> ===================================================================
>> --- compiler/AST/type.cpp       (revision 22775)
>> +++ compiler/AST/type.cpp       (working copy)
>> @@ -1615,8 +1615,8 @@
>>    // Compare the cnames of different types alphabetically
>>    static int compareCnames(const void* v1, const void* v2) {
>>      int retval;
>> -  TypeSymbol* t1 = *(TypeSymbol**)v1;
>> -  TypeSymbol* t2 = *(TypeSymbol**)v2;
>> +  TypeSymbol* t1 = *(TypeSymbol* const *)v1;
>> +  TypeSymbol* t2 = *(TypeSymbol* const *)v2;
>>      retval = strcmp(t1->cname, t2->cname);
>>      if (retval > 0)
>>        return 1;
>> Index: compiler/passes/codegen.cpp
>> ===================================================================
>> --- compiler/passes/codegen.cpp (revision 22775)
>> +++ compiler/passes/codegen.cpp (working copy)
>> @@ -316,8 +316,8 @@
>>
>>    static int
>>    compareSymbol(const void* v1, const void* v2) {
>> -  Symbol* s1 = *(Symbol**)v1;
>> -  Symbol* s2 = *(Symbol**)v2;
>> +  Symbol* s1 = *(Symbol* const *)v1;
>> +  Symbol* s2 = *(Symbol* const *)v2;
>>      ModuleSymbol* m1 = s1->getModule();
>>      ModuleSymbol* m2 = s2->getModule();
>>      if (m1 != m2) {
>> Index: compiler/passes/docs.cpp
>> ===================================================================
>> --- compiler/passes/docs.cpp    (revision 22775)
>> +++ compiler/passes/docs.cpp    (working copy)
>> @@ -16,14 +16,14 @@
>>    int NUMTABS = 0;
>>
>>    static int compareNames(const void* v1, const void* v2) {
>> -  Symbol* s1 = *(Symbol**)v1;
>> -  Symbol* s2 = *(Symbol**)v2;
>> +  Symbol* s1 = *(Symbol* const *)v1;
>> +  Symbol* s2 = *(Symbol* const *)v2;
>>      return strcmp(s1->name, s2->name);
>>    }
>>
>>    static int compareClasses(const void *v1, const void* v2) {
>> -  Type *t1 = *(Type**)v1;
>> -  Type *t2 = *(Type**)v2;
>> +  Type *t1 = *(Type* const *)v1;
>> +  Type *t2 = *(Type* const *)v2;
>>      return strcmp(t1->symbol->name, t2->symbol->name);
>>    }
>>
>> Index: compiler/optimizations/scalarReplace.cpp
>> ===================================================================
>> --- compiler/optimizations/scalarReplace.cpp    (revision 22775)
>> +++ compiler/optimizations/scalarReplace.cpp    (working copy)
>> @@ -68,8 +68,8 @@
>>    //
>>    static int
>>    compareTypesByOrder(const void* v1, const void* v2) {
>> -  ClassType* ct1 = *(ClassType**)v1;
>> -  ClassType* ct2 = *(ClassType**)v2;
>> +  ClassType* ct1 = *(ClassType* const *)v1;
>> +  ClassType* ct2 = *(ClassType* const *)v2;
>>      int order1 = typeOrder.get(ct1);
>>      int order2 = typeOrder.get(ct2);
>>      if (order1 < order2)
>> Index: compiler/util/stringutil.cpp
>> ===================================================================
>> --- compiler/util/stringutil.cpp        (revision 22775)
>> +++ compiler/util/stringutil.cpp        (working copy)
>> @@ -92,7 +92,7 @@
>>      Vec<const char*> keys;
>>      chapelStringsTable.get_keys(keys);
>>      forv_Vec(const char, key, keys) {
>> -    free((void*)key);
>> +    free(const_cast<char*>(key));
>>      }
>>    }
>>
>> Index: test/compflags/bradc/printstuff/versionhelp.csh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/versionhelp.csh     (revision 22775)
>> +++ test/compflags/bradc/printstuff/versionhelp.csh     (working copy)
>> @@ -1,6 +0,0 @@
>> -#!/bin/csh -f
>> -set compiler = $3
>> -echo -n `basename $compiler`
>> -cat version.goodstart
>> -diff ../../../../compiler/main/BUILD_VERSION ./zero.txt >& /dev/null && 
>> echo "" || (echo -n "." && cat ../../../../compiler/main/BUILD_VERSION)
>> -
>> Index: test/compflags/bradc/printstuff/zcopylice.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zcopylice.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/zcopylice.prediff   (working copy)
>> @@ -1,2 +1,2 @@
>> -#!/bin/csh -f
>> -./licensehelp.csh $1 $2 $3 > zcopylice.good
>> +#!/bin/sh
>> +./licensehelp.sh $1 $2 $3 > zcopylice.good
>> Index: test/compflags/bradc/printstuff/zall.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zall.prediff        (revision 22775)
>> +++ test/compflags/bradc/printstuff/zall.prediff        (working copy)
>> @@ -1,5 +1,6 @@
>> -#!/bin/csh -f
>> -./versionhelp.csh $1 $2 $3 > zall.good
>> -./licensehelp.csh $1 $2 $3 >> zall.good
>> +#!/bin/sh
>> +./versionhelp.sh $1 $2 $3 > zall.good
>> +./licensehelp.sh $1 $2 $3 >> zall.good
>> +#echo >> zall.good This version does not result in a newline on Debian 
>> 7.4's csh
>>    echo >> zall.good
>> -./helphelp.csh $1 $2 $3 >> zall.good
>> +./helphelp.sh $1 $2 $3 >> zall.good
>> Index: test/compflags/bradc/printstuff/zcopyvers.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zcopyvers.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/zcopyvers.prediff   (working copy)
>> @@ -1,3 +1,3 @@
>> -#!/bin/csh -f
>> -./versionhelp.csh $1 $2 $3 > zcopyvers.good
>> -./copyrighthelp.csh $1 $2 $3 >> zcopyvers.good
>> +#!/bin/sh
>> +./versionhelp.sh $1 $2 $3 > zcopyvers.good
>> +./copyrighthelp.sh $1 $2 $3 >> zcopyvers.good
>> Index: test/compflags/bradc/printstuff/copyrighthelp.sh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/copyrighthelp.sh    (revision 22775)
>> +++ test/compflags/bradc/printstuff/copyrighthelp.sh    (working copy)
>> @@ -1,2 +1,2 @@
>> -#!/bin/csh -f
>> +#!/bin/sh
>>    cat ../../../../COPYRIGHT
>> Index: test/compflags/bradc/printstuff/zhelplice.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zhelplice.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/zhelplice.prediff   (working copy)
>> @@ -1,4 +1,4 @@
>> -#!/bin/csh -f
>> -./licensehelp.csh $1 $2 $3 > zhelplice.good
>> +#!/bin/sh
>> +./licensehelp.sh $1 $2 $3 > zhelplice.good
>>    echo >> zhelplice.good
>> -./helphelp.csh $1 $2 $3 >> zhelplice.good
>> +./helphelp.sh $1 $2 $3 >> zhelplice.good
>> Index: test/compflags/bradc/printstuff/copyrighthelp.csh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/copyrighthelp.csh   (revision 22775)
>> +++ test/compflags/bradc/printstuff/copyrighthelp.csh   (working copy)
>> @@ -1,2 +0,0 @@
>> -#!/bin/csh -f
>> -cat ../../../../COPYRIGHT
>> Index: test/compflags/bradc/printstuff/zhelpvers.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zhelpvers.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/zhelpvers.prediff   (working copy)
>> @@ -1,5 +1,5 @@
>> -#!/bin/csh -f
>> -./versionhelp.csh $1 $2 $3 > zhelpvers.good
>> -./copyrighthelp.csh $1 $2 $3 >> zhelpvers.good
>> +#!/bin/sh
>> +./versionhelp.sh $1 $2 $3 > zhelpvers.good
>> +./copyrighthelp.sh $1 $2 $3 >> zhelpvers.good
>>    echo >> zhelpvers.good
>> -./helphelp.csh $1 $2 $3 >> zhelpvers.good
>> +./helphelp.sh $1 $2 $3 >> zhelpvers.good
>> Index: test/compflags/bradc/printstuff/version.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/version.prediff     (revision 22775)
>> +++ test/compflags/bradc/printstuff/version.prediff     (working copy)
>> @@ -1,4 +1,4 @@
>> -#!/bin/csh -f
>> -./versionhelp.csh $1 $2 $3 > version.good
>> -./copyrighthelp.csh $1 $2 $3 >> version.good
>> +#!/bin/sh
>> +./versionhelp.sh $1 $2 $3 > version.good
>> +./copyrighthelp.sh $1 $2 $3 >> version.good
>>
>> Index: test/compflags/bradc/printstuff/licensehelp.sh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/licensehelp.sh      (revision 22775)
>> +++ test/compflags/bradc/printstuff/licensehelp.sh      (working copy)
>> @@ -1,2 +1,2 @@
>> -#!/bin/csh -f
>> +#!/bin/sh
>>    cat ../../../../LICENSE
>> Index: test/compflags/bradc/printstuff/versionhelp.sh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/versionhelp.sh      (revision 22775)
>> +++ test/compflags/bradc/printstuff/versionhelp.sh      (working copy)
>> @@ -1,6 +1,6 @@
>> -#!/bin/csh -f
>> -set compiler = $3
>> +#!/bin/sh
>> +compiler=$3
>>    echo -n `basename $compiler`
>>    cat version.goodstart
>> -diff ../../../../compiler/main/BUILD_VERSION ./zero.txt >& /dev/null && 
>> echo "" || (echo -n "." && cat ../../../../compiler/main/BUILD_VERSION)
>> +diff ../../../../compiler/main/BUILD_VERSION ./zero.txt > /dev/null 2>&1 && 
>> echo "" || (echo -n "." && cat ../../../../compiler/main/BUILD_VERSION)
>>
>> Index: test/compflags/bradc/printstuff/licensehelp.csh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/licensehelp.csh     (revision 22775)
>> +++ test/compflags/bradc/printstuff/licensehelp.csh     (working copy)
>> @@ -1,2 +0,0 @@
>> -#!/bin/csh -f
>> -cat ../../../../LICENSE
>> Index: test/compflags/bradc/printstuff/helphelp.sh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/helphelp.sh (revision 22775)
>> +++ test/compflags/bradc/printstuff/helphelp.sh (working copy)
>> @@ -1,2 +1,2 @@
>> -#!/bin/csh -f
>> +#!/bin/sh
>>    cat ../help/userhelp.good
>> Index: test/compflags/bradc/printstuff/helphelp.csh
>> ===================================================================
>> --- test/compflags/bradc/printstuff/helphelp.csh        (revision 22775)
>> +++ test/compflags/bradc/printstuff/helphelp.csh        (working copy)
>> @@ -1,2 +0,0 @@
>> -#!/bin/csh -f
>> -cat ../help/userhelp.good
>> Index: test/compflags/bradc/printstuff/zlicevers.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zlicevers.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/zlicevers.prediff   (working copy)
>> @@ -1,3 +1,3 @@
>> -#!/bin/csh -f
>> -./versionhelp.csh $1 $2 $3 > zlicevers.good
>> -./licensehelp.csh $1 $2 $3 >> zlicevers.good
>> +#!/bin/sh
>> +./versionhelp.sh $1 $2 $3 > zlicevers.good
>> +./licensehelp.sh $1 $2 $3 >> zlicevers.good
>> Index: test/compflags/bradc/printstuff/copyright.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/copyright.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/copyright.prediff   (working copy)
>> @@ -1,3 +1,3 @@
>> -#!/bin/csh -f
>> -./copyrighthelp.csh $1 $2 $3 > copyright.good
>> -echo "Hello, Merl\!" >> copyright.good
>> +#!/bin/sh
>> +./copyrighthelp.sh $1 $2 $3 > copyright.good
>> +echo "Hello, Merl!" >> copyright.good
>> Index: test/compflags/bradc/printstuff/zcopyhelp.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/zcopyhelp.prediff   (revision 22775)
>> +++ test/compflags/bradc/printstuff/zcopyhelp.prediff   (working copy)
>> @@ -1,4 +1,4 @@
>> -#!/bin/csh -f
>> -./copyrighthelp.csh $1 $2 $3 > zcopyhelp.good
>> +#!/bin/sh
>> +./copyrighthelp.sh $1 $2 $3 > zcopyhelp.good
>>    echo >> zcopyhelp.good
>> -./helphelp.csh $1 $2 $3 >> zcopyhelp.good
>> +./helphelp.sh $1 $2 $3 >> zcopyhelp.good
>> Index: test/compflags/bradc/printstuff/license.prediff
>> ===================================================================
>> --- test/compflags/bradc/printstuff/license.prediff     (revision 22775)
>> +++ test/compflags/bradc/printstuff/license.prediff     (working copy)
>> @@ -1,2 +1,2 @@
>> -#!/bin/csh -f
>> -./licensehelp.csh $1 $2 $3 > license.good
>> +#!/bin/sh
>> +./licensehelp.sh $1 $2 $3 > license.good
>> Index: test/io/ferguson/readThis/readclass4.prediff
>> ===================================================================
>> --- test/io/ferguson/readThis/readclass4.prediff        (revision 22775)
>> +++ test/io/ferguson/readThis/readclass4.prediff        (working copy)
>> @@ -4,7 +4,7 @@
>>    outfile=$2
>>
>>    grep -i error $outfile > $outfile.2
>> -if [ $? == 0 ]
>> +if [ $? -eq 0 ]
>>    then
>>      echo CompileError > $outfile.2
>>      mv $outfile.2 $outfile
>> Index: test/chpldoc/module/PREDIFF
>> ===================================================================
>> --- test/chpldoc/module/PREDIFF (revision 22775)
>> +++ test/chpldoc/module/PREDIFF (working copy)
>> @@ -2,7 +2,7 @@
>>
>>    chplCompiler=`basename $3`
>>
>> -if [ "$chplCompiler" == "chpldoc" ];
>> +if [ "$chplCompiler" = "chpldoc" ];
>>    then
>>       cat $1.doc.out > $1.good
>>    else
>> Index: test/chpldoc/PREDIFF
>> ===================================================================
>> --- test/chpldoc/PREDIFF        (revision 22775)
>> +++ test/chpldoc/PREDIFF        (working copy)
>> @@ -2,7 +2,7 @@
>>
>>    chplCompiler=`basename $3`
>>
>> -if [ "$chplCompiler" == "chpldoc" ];
>> +if [ "$chplCompiler" = "chpldoc" ];
>>    then
>>       cat $1.doc.out > $1.good
>>    else
>> Index: test/memory/shannon/outofmemory/sub_test
>> ===================================================================
>> --- test/memory/shannon/outofmemory/sub_test    (revision 22775)
>> +++ test/memory/shannon/outofmemory/sub_test    (working copy)
>> @@ -1,6 +1,6 @@
>> -#!/bin/csh -f
>> +#!/bin/bash
>>
>> -limit vmemoryuse 256M
>> +# Set virtual memory limit
>> +ulimit -v 262144
>>
>>    ../../../../util/test/sub_test $1
>> -
>>
>
>
> ------------------------------------------------------------------------------
> Flow-based real-time traffic analytics software. Cisco certified tool.
> Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
> Customize your own dashboards, set traffic alerts and generate reports.
> Network behavioral analysis & security monitoring. All-in-one tool.
> http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
> _______________________________________________
> Chapel-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/chapel-developers
>

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to