[Pharo-dev] NBCodeGenRecursion:NativeBoostWin32>>#bootstrapAllocate:into:
My NativeBoost journey has reached the point where I would like to use some of the NBExternalStructure extensions available in development version 2.2 but I can't get past a NBCodeGenRecursion error which occurs when I run the NB tests. I put some halts into the NB code and thought that I had cracked it because NativeBoostWin32>>basicAllocate: calls NativeBoost>>callGateFunctionAddress which calls NativeBoostWin32>>basicAlloate:, but then I realised that the same thing was happening in the stable version I was using ... so I guess that I am looking in the wrong area? Were should I look next?
On 3 July 2013 12:15, Guy Hylton <guygantuan@gmail.com> wrote:
My NativeBoost journey has reached the point where I would like to use some of the NBExternalStructure extensions available in development version 2.2 but I can't get past a NBCodeGenRecursion error which occurs when I run the NB tests.
I put some halts into the NB code and thought that I had cracked it because NativeBoostWin32>>basicAllocate: calls NativeBoost>>callGateFunctionAddress which calls NativeBoostWin32>>basicAlloate:, but then I realised that the same thing was happening in the stable version I was using ... so I guess that I am looking in the wrong area?
Installing the call gate function is part of bootstrap (when you first time attempt to use NB in new session) and it is essential to have it installed because without it, you cannot make calls to VM functions which allocating new objects on heap. So, the bootstrap code written carefully to not use code which allocates new objects on heap before call gate function is installed and available. And the recursion happens when you change the code which violates this rule.
Were should I look next?
Cannot tell.. I need more details on what you trying to do. I am currently working on bringing things up to date (and make some fixes) and will release new config, which will be integrated into Pharo image. -- Best regards, Igor Stasenko.
Igor you have to explain us that. Looks interesting. S. On Jul 3, 2013, at 12:28 PM, Igor Stasenko <siguctua@gmail.com> wrote:
So, the bootstrap code written carefully to not use code which allocates new objects on heap before call gate function is installed and available. And the recursion happens when you change the code which violates this rule.
participants (3)
-
Guy Hylton -
Igor Stasenko -
Stéphane Ducasse