From jel+r at cs.uni-magdeburg.de  Sat Jan  2 23:10:49 2010
From: jel+r at cs.uni-magdeburg.de (Jens Elkner)
Date: Sat, 2 Jan 2010 23:10:49 +0100
Subject: [Rd] readCitationFile encoding
In-Reply-To: <7C0CA516-F119-4A79-99F3-EE7CEB7E8E3F@r-project.org>
References: <20091231063312.GA991@trex.cs.uni-magdeburg.de>
	<alpine.LFD.2.00.0912310755040.20941@gannet.stats.ox.ac.uk>
	<20091231150516.GA1305@trex.cs.uni-magdeburg.de>
	<7C0CA516-F119-4A79-99F3-EE7CEB7E8E3F@r-project.org>
Message-ID: <20100102221049.GA2330@trex.cs.uni-magdeburg.de>

On Thu, Dec 31, 2009 at 02:50:00PM -0500, Simon Urbanek wrote:
> 
> On Dec 31, 2009, at 10:05 AM, Jens Elkner wrote:
> 
> > OT: Wondering, what does "recommended portable encoding names" in this
> > context mean (e.g. AFAIK 'latin1' is not a standardized name ...).
> 
> It is in R -- since no standard name for that encoding exists in general R maps "latin1" to whatever the OS expects this to be -- see ?Encoding.
  
Ahh - ok. So since our staff, student, guests are using all kind of OS
(i.e. win, solaris, linux, macosx) it is better to recommend
ISO8859-15/UTF-8 instead of latin*, understood.
  
> > Ahh - good hint - help("check") wasn't really fruitful. However,
> > 
> > elkner.idev2 build/R-2.10.1/bin > ./check --help
> > Can't locate File/Copy/Recursive.pm in @INC (@INC contains: ...
> > 
> > So still need to do a little bit tweaking ...
> > 
> 
> .. rather reading the docs ;).

Hmm - think I already skimmed a lot of the onine docs. But at least wrt.
check everything is for my taste quite shallow ... ;-(

> It's R CMD check --help (since we're on R-devel knowledge of basics is assumed).

Well - it doesn't tell the details as well...

BTW: the bad infinite recursion fails for 2.10.1 2009-12-14 patched (but
not in the unpatched version):

running code in 'ok-errors.R' ...*** Error code 1
The following command caused the error:
LANGUAGE=en LC_ALL=C SRCDIR=. R_DEFAULT_PACKAGES= ../bin/R --vanilla < ok-errors.R > ok-errors.Rout 2>&1 || (mv ok-errors.Rout ok-errors.Rout.fail && exit 1)
make: Fatal error: Command failed for target `ok-errors.Rout'
Current working directory /export/scratch/elkner/build/R-2.10.1/tests
*** Error code 1

Without optimization
--------------------
> ## bad infinite recursion / on.exit / ... interactions
> bar <- function() 1+1
> foo <- function() { on.exit(bar()); foo() }
> foo() # now simple "infinite recursion"
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: C stack usage is too close to the limit
Error: segfault from C stack overflow
Execution halted

With optimization (-xO5 -xautopar)
----------------------------------
> ## bad infinite recursion / on.exit / ... interactions
> bar <- function() 1+1
> foo <- function() { on.exit(bar()); foo() }
> foo() # now simple "infinite recursion"

 *** caught segfault ***
address fffffd7fff3fff90, cause 'memory not mapped'

Traceback:
 1: foo()
...
2489: foo()
aborting ...

With optimization (-xO5 -xautopar) but unpatched 2.10.1
-------------------------------------------------------
> ## bad infinite recursion / on.exit / ... interactions
> bar <- function() 1+1
> foo <- function() { on.exit(bar()); foo() }
> foo() # now simple "infinite recursion"
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
>

Regards,
jel.
-- 
Otto-von-Guericke University     http://www.cs.uni-magdeburg.de/
Department of Computer Science   Geb. 29 R 027, Universitaetsplatz 2
39106 Magdeburg, Germany         Tel: +49 391 67 12768



[Rd] readCitationFile encoding
Jens Elkner