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
