[Rd] Dialect for shell scripts

2017-12-17 Thread Rodrigo Tobar

Dear all,

During a recent package submission, we were highlighted that some lines 
in our configure script didn't follow the correct syntax. The lines 
looked like this:


x=$(($y/10))

We were indicated at the time that this is because the statement does 
not use Bourne shell syntax, which is absolutely true, and also that the 
manual warns about this, which is true again. So far everything is clear.


However, what confuses me is that even when the manual says that "you 
can include an executable (Bourne) shell script configure in your 
package" [1], the associated footnote says something slightly different: 
"The script should only assume a POSIX-compliant /bin/sh" [2]. The 
footnote goes even further, and links to the POSIX specification of the 
Shell Command Language [3] (as published by The Open Group), which 
explicitly includes arithmetic expressions like the one above in its 
syntax [4].


My question then is: what exact dialect should be considered? Given that 
the statement above does not work in the Bourne shell, I conclude that 
the Bourne shell is not POSIX-compliant. That in turn would make the 
manual ambiguous as to the precise dialect that should be used by our 
configure scripts, and either the shells used by R should be changed to 
be POSIX-compliants, or the manual edited to be more precise regarding .


Many thanks.

Rodrigo

[1] 
https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Configure-and-cleanup

[2] https://cran.r-project.org/doc/manuals/r-release/R-exts.html#FOOT25
[3] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
[4] 
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_04


__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Dialect for shell scripts

2017-12-18 Thread Rodrigo Tobar

Hi all,

Thanks to all for your responses. As pointed out by a few of you, using 
expr is indeed safer, and is what we ended up using in our script to get 
it accepted in CRAN.


On 19/12/17 07:26, peter dalgaard wrote:

(I suspect that the text in WRE is actually older than the current POSIX 
standard, which is what causes confusion as to what constitutes a Bourne shell. 
It may be worth editing it to say that we are in fact more restrictive than 
current POSIX.)


This was exactly my point, and I think it would be great to have this 
clarified in the manual to avoid any unsuspected surprises during 
package submission. Since R expectations are naturally aligned with 
autoconf's it would be worth noting that, and maybe also pointing to the 
resource pointed at by IƱaki.


I think the discussion about supported OSs is also an interesting one, 
but is greater than just about this particular subject.


Regards,

Rodrigo

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel