From hpages at fhcrc.org  Fri Oct 29 19:53:44 2010
From: hpages at fhcrc.org (=?ISO-8859-1?Q?Herv=E9_Pag=E8s?=)
Date: Fri, 29 Oct 2010 10:53:44 -0700
Subject: [Rd] list2env() is broken
In-Reply-To: <alpine.LFD.2.00.1010290812150.1613@gannet.stats.ox.ac.uk>
References: <4CCA613D.3050802@fhcrc.org>
	<alpine.LFD.2.00.1010290812150.1613@gannet.stats.ox.ac.uk>
Message-ID: <4CCB0A28.2040407@fhcrc.org>

Hi,

On 10/29/2010 12:17 AM, Prof Brian Ripley wrote:
> I have no idea what 'timeout' means, but that *should* take an
> extraordinarily long time (it is at least quadratic in the input
> length). This is the point of hashing -- you *need* hash=TRUE, and you
> should probably also set 'size' in new.env.

I can see that this has just been changed and now list2env() decides
to use hash=TRUE for me (when length(x) > 100). Sounds reasonable since
I *need* it.
Also the man page didn't mention anything about the purpose of
hash=TRUE (now it does, thanks), it was just saying "see new.env"
but the man page for new.env() doesn't say much either (in particular
it doesn't say anything about the quadratic behavior when hash=FALSE).

>
> There was an obvious missing PROTECT in this function.

Thanks for catching and fixing this.

>
> I do wonder if you are yet familiar with the debugging tools described
> in 'Writing R Extensions' -- please do use them before reporting.

Please note that I've tried to put as much details as possible in the
last 10 bug reports or so that I've made (most of the time even
suggesting solutions). Sometimes I don't have time to debug or to come
with a solution but I think it's still worth reporting the problem,
especially when it's a crash. Also AFAIK the posting guide says nothing
about me having to use the debugging tools or come up with a solution
before I report a problem.

Thanks again for the fix,
H.

>
> On Thu, 28 Oct 2010, Herv? Pag?s wrote:
>
>> Hi,
>>
>> The following code produces different kinds of problems depending
>> on which platform you run it:
>>
>> x <- as.list(1:200000)
>> names(x) <- paste("A", 1:200000, sep="")
>> e <- list2env(x)
>>
>> Timeout on Linux, crash on Mac and Windows, with R 2.12.0 and
>> current R devel.
>>
>> The "multi-assign" mode (i.e. when the 'envir' arg is supplied)
>> doesn't seem to have this problem.
>>
>> Cheers,
>> H.
>>
>> --
>> Herv? Pag?s
>>
>> Program in Computational Biology
>> Division of Public Health Sciences
>> Fred Hutchinson Cancer Research Center
>> 1100 Fairview Ave. N, M2-B876
>> P.O. Box 19024
>> Seattle, WA 98109-1024
>>
>> E-mail: hpages at fhcrc.org
>> Phone: (206) 667-5791
>> Fax: (206) 667-1319
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>


-- 
Herv? Pag?s

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



[Rd] list2env() is broken
=?ISO-8859-1?Q?Herv=E9_Pag=E8s?=