Ton Hospel <[EMAIL PROTECTED]> writes: >Hi, > >I recently wanted to have several XS files in the same directory, and >was following the method described in the ExtUtils::MakeMaker FAQ. That >worked fine for two XS files, but from the third on, that started dumping >core. As far as I could determine this is caused by the called extra boot >code popping marks and there soon not being enough marks. By adding a >PUSHMARK(SP); before every line added in the BOOT: section things started >working properly.
Your analysis is ok. But doing a PUSHMARK(SP) does not pass any args. Normal boot_xxx could expect class name and version as args. > >This was for the module Graph::Layout::Aesthetic, which now ends like: > >BOOT: > PUSHMARK(SP); > boot_Graph__Layout__Aesthetic__Force__Centripetal(aTHX_ cv); > > PUSHMARK(SP); > boot_Graph__Layout__Aesthetic__Force__NodeRepulsion(aTHX_ cv); > > PUSHMARK(SP); > boot_Graph__Layout__Aesthetic__Force__NodeEdgeRepulsion(aTHX_ cv); > > ....(more of these)... > > >Please update the FAQ if you agree with my analysis and solution.
