From gavin.simpson at ucl.ac.uk  Sat Feb 17 16:15:30 2007
From: gavin.simpson at ucl.ac.uk (Gavin Simpson)
Date: Sat, 17 Feb 2007 15:15:30 +0000
Subject: [Rd] Rscript on Windows
In-Reply-To: <971536df0702170631t2daf5818nefe910db36fc49a@mail.gmail.com>
References: <971536df0701252058i739700dx8f7e02f8be48bf4e@mail.gmail.com>
	<8651815.post@talk.nabble.com>
	<971536df0701260645p68852335n21812456a52733e8@mail.gmail.com>
	<971536df0701290644w51e75315r59120822cffe2819@mail.gmail.com>
	<971536df0702160635m256f5dc0q51c2b5e683a22ede@mail.gmail.com>
	<45D6EF65.1070702@stats.uwo.ca>
	<971536df0702170431j6234dc69n8f43eade71978b84@mail.gmail.com>
	<45D6F91C.7060000@stats.uwo.ca>
	<971536df0702170631t2daf5818nefe910db36fc49a@mail.gmail.com>
Message-ID: <1171725331.3013.21.camel@dhcppc2.my.nat.localnet>

On Sat, 2007-02-17 at 09:31 -0500, Gabor Grothendieck wrote:
> Surely R has higher standards than that.  How about quality and
> completeness of implementation?
> 
> Every other major scripting language has implemented this for good reason
> and its a glaring omission.

I think you are forgetting that R is an open source project, and is
reliant on the generous efforts of the R community, and in particular
the Core development team, for any work done on it.

I disagree with your statement about core mods being best done by the
core group - we all benefit when anyone, core or otherwise, contributes
to R. Duncan has already offered to review a submitted patch and
therefore commit some of his time to improving this feature - and this
is how it should work for those features that are of lower priority to
the core team.

However, that is your opinion and you are free to contribute directly to
R or not or contribute in some other way (as R-help subscribers know you
do to their benefit). But Core developers have that same right, and I'm
sure there are numerous other things in R that they might consider to be
incompletely implemented, in need of improvement or just plain missing
and therefore more deserving of their attention. Otherwise the SVN logs
wouldn't be quite so active...

G

> 
> On 2/17/07, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> > On 2/17/2007 7:31 AM, Gabor Grothendieck wrote:
> > > I think its best if core mods are done by the core group while others
> > > focus on work that can be done external to the core.
> >
> > Fair enough, but then you also have to accept that the core group is
> > going to set the priorities.  As far as I know *nobody* in the core
> > group uses the CMD.EXE shell regularly, so changes to accommodate its
> > limitations are going to get low priority.
> >
> > Duncan Murdoch
> >
> > >
> > > Thus, what I have done is to enhance the batchfiles distribution with
> > > 3 new batchfiles: Rscript.bat, #Rscript.bat and runR.bat which will be
> > > part of the
> > > next distribution of batchfiles but can be obtained now, if desired, from the
> > > batchfiles svn (with the caveat that they require R 2.5.0).  The batchfiles
> > > home page is here:
> > >
> > >    http://code.google.com/p/batchfiles
> > >
> > > The source tab on that page gets you to the svn and the links on the right
> > > include links to the NEWS and README files which describe the additions,
> > > a link to info on the Windows bug that I mentioned and two perl links that
> > > describe how this all works in perl which may be a helpful analogous
> > > situation.
> > > .
> > > On 2/17/07, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> > >> On 2/16/2007 9:35 AM, Gabor Grothendieck wrote:
> > >>> I mentioned this twice already and no one answered;however, I am mentioning
> > >>> this a third time since its a serious deficiency.
> > >> I agree this would be a reasonable addition, but I wouldn't class it as
> > >> a serious deficiency, and I don't plan to work on it myself.
> > >>
> > >> If you want to put together patches to the trunk code and docs to
> > >> implement this I'll review them and possibly commit them.  If you don't
> > >> see this as a high enough priority to do that, then I'd suggest doing
> > >> what I do:  don't use the CMD.EXE shell.  There are a number of
> > >> Unix-like shells available in Windows (Cygwin, MSYS, etc.) that can
> > >> handle the #! syntax just fine.  Or just use two files, as you describe
> > >> below.
> > >>
> > >> Duncan Murdoch
> > >>
> > >>  > The Rscript facility
> > >>> that is upcoming in R is useful but on Windows one will often be relegated
> > >>> to having two files: a batch file and an R file unless the -x switch
> > >>> is implemented
> > >>> to allow them to be combined.  This is not a problem on UNIX which supports
> > >>> #! but on Windows we need -x.  Every other common scripting language including
> > >>> perl, python and ruby supports -x for this purpose.
> > >>>
> > >>> (The -x flag would start R processing at the first line that begins with #! so
> > >>> that prior lines could be Windows batch commands allowing the same file
> > >>> to be used as a batch file and an R file.)
> > >>>
> > >>> Note that there is a bug in Windows which means that if you simply associate
> > >>> .R to running R then the result cannot be redirected.  There is a bug
> > >>> fix available
> > >>> for this but I think we need to be able to run out of the box for something this
> > >>> common.
> > >>>
> > >>>
> > >>> On 1/29/07, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> > >>>> Haven't got any feedback on this one.
> > >>>>
> > >>>> Will we be getting a perl/python/ruby style -x switch for Rscript for R 2.5.0?
> > >>>>
> > >>>> It certainly would give more flexibility to users of Rscript on non-UNIX systems
> > >>>> where #! notation is not available.
> > >>>>
> > >>>> On 1/26/07, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> > >>>>> Good idea.  ruby seems to work the same way.  python does too but with
> > >>>>> a slightly different definition:
> > >>>>>
> > >>>>> C:\> ruby -h | findstr strip
> > >>>>>  -x[directory]   strip off text before #!ruby line and perhaps cd to directory
> > >>>>>
> > >>>>> C:\> perl -h | findstr strip
> > >>>>>  -x[directory]   strip off text before #!perl line and perhaps cd to directory
> > >>>>>
> > >>>>> C:\> python -h | findstr skip
> > >>>>> -x     : skip first line of source, allowing use of non-Unix forms of #!cmd
> > >>>>>
> > >>>>>
> > >>>>> On 1/26/07, Vladimir Eremeev <wl2776 at gmail.com> wrote:
> > >>>>>> ActivePerl has '-x' switch which tells it to skip all lines in the file till
> > >>>>>> "#!".
> > >>>>>> This allows writing perl scripts in ordinary .bat files.
> > >>>>>>
> > >>>>>> ?shQuote contains a link with the following perl script example:
> > >>>>>> ===8<===
> > >>>>>> @echo off
> > >>>>>> :: hello.bat
> > >>>>>> :: Windows executable Perl script
> > >>>>>> :: Note:
> > >>>>>> ::   assumes perl.exe is in path
> > >>>>>> ::   otherwise, use absolute path
> > >>>>>> perl -x -S "%0" %*
> > >>>>>> goto end
> > >>>>>> #!perl
> > >>>>>>
> > >>>>>> print "Hello, World!\n";
> > >>>>>> __END__
> > >>>>>> :end
> > >>>>>> :: ------ end of hello.bat ------
> > >>>>>>
> > >>>>>> Windows Notes:
> > >>>>>> " -x " (lower case x): Skip all text until shebang line.
> > >>>>>> " -S " (upper case S): Look for script using PATH variable. Special meaning
> > >>>>>> in Windows: appends .bat or .cmd if lookup for name fails and name does not
> > >>>>>> have either suffix.
> > >>>>>> " %* " only on WinNT/2K/XP; use %1 %2 . . . %9 on Win9x/DOS
> > >>>>>> ===8<===
> > >>>>>>
> > >>>>>> I think the simplest way to implement shebang on windows would be embedding
> > >>>>>> one more command line switch with similar functionality to perl's '-x'.
> > >>>>>>
> > >>>>>> --
> > >>>>>> View this message in context: http://www.nabble.com/Rscript-on-Windows-tf3120774.html#a8651815
> > >>>>>> Sent from the R devel mailing list archive at Nabble.com.
> > >>>>>>
> > >>> ______________________________________________
> > >>> R-devel at r-project.org mailing list
> > >>> https://stat.ethz.ch/mailman/listinfo/r-devel
> > >>
> >
> >
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Gavin Simpson                     [t] +44 (0)20 7679 0522
ECRC                              [f] +44 (0)20 7679 0565
UCL Department of Geography
Pearson Building                  [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street
London, UK                        [w] http://www.ucl.ac.uk/~ucfagls/
WC1E 6BT                          [w] http://www.freshwaters.org.uk/
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



[Rd] Rscript on Windows
Gavin Simpson