Lorenz Minder on Wed, 11 May 2011 05:53:56 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: allocatemoremem() backwards compatibility |
Hi Bill, Bill Allombert wrote: > On Tue, May 10, 2011 at 09:57:10AM +0200, Jeroen Demeyer wrote: > > Hello, > > > > Does the libpari function allocatemem() behave the same as the old > > function allocatemoremem()? > > Not really. allocatemem() end with cb_pari_err_recover(), while > allocatemoremem() did not. That's great news, and I will update my code if I get around to. (Unfortunately I have rarely time for that nowadays.) > > I think you should add a declaration in pariold.h for allocatemoremem(). > > Some external programs use that function. > > allocatemoremem() was removed because it was not safe to use in most case. > Also the documentation stated that it returned void, while in fact it was returning > a long. > > How did you use that function ? I use it in a snippet like this: stack_clean(); allocatemoremem(sz); stack_init(); Here, stack_clean() clones every live object residing on the stack, and stack_init() does essentially an "avma = top;" (in addition to implementing a workaround for a pari < 2.4.3 bug). Is this a safe use (if we ignore the possibility that allocatemoremem() might not actually manage to allocate memory)? Best, --Lorenz