[Rd] optim/vmmin and R_alloc

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Dec 30 17:27:59 CET 2004


On Thu, 30 Dec 2004, Thomas Lumley wrote:

> On Thu, 30 Dec 2004, [iso-8859-1] Göran Broström wrote:
>> 
>> However, and that is my question/suggestion: Why not use Calloc+Free
>> instead of R_alloc in vmmin (and maybe in other places)? I made the
>> changes in 'optim.c' in the functions 'vmmin' and 'Lmatrix'. Then I rebuilt
>> and reinstalled R-2.0.1. The result was great! My function ran very fast 
>> and
>> without any memory problems.
>> 
>> So why not? Or will this change create other problems?
>
> Memory will leak permanently if the functions are interrupted or an error 
> occurs.  This may be less serious now than it was in the past, since R can be 
> interrupted in fewer places.

An error in the objective function would also cause a leak. Goran *should* 
be managing the heap himself by vmax[gs]et, as discussed in Writing R 
Extensions.

So why not read the manual and use the documented mechanism?  I do
often wonder if the developers spend more time writing these 
manuals than the users collectively spend reading them.

To answer the follow-up, some code can be demonstrated not to leak as it 
cannot be interrupted, and some wants memory preserved across .C calls.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-devel mailing list