<div dir="ltr">Hi there, <div><br></div><div>Any chance to get it to work on a Redhat 6.3 ?</div><div>The current blocker is yacc, which I couldn't install with yum (EPEL enabled).</div><div><br></div><div>Thanks,</div><div><br></div><div>--</div><div>Fethallah</div><div class="gmail_extra">
<br><div class="gmail_quote">On Mon, Apr 11, 2016 at 5:14 PM, Bradley Lowekamp <span dir="ltr"><<a href="mailto:brad@lowekamp.net" target="_blank">brad@lowekamp.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hello,<div><br></div><div>We have R tested with SimpleITK on a number of systems each night. And this morning we have run the tests on several systems, and it is running and passing OK, this was with what every old R version was on the systems</div><div><br></div><div>We should focus on getting the tests to pass on your system first. It’s a good sign that you can run the AddCommand with the sitk::Command class. Does the rest of the R tests pass when you run ctest?</div><div><br></div><div>I am still suspicious you are not running the latest development version. What is the git hash you are using?</div><div><br></div><div>As you were digging into the SimpleITK R code you were on the right track with the ProccessObject::AddCommand and the sitk::Command class. The other two parts you are missing is the RCommand C++ class [1], and the overridden ProcessObject::AddCommand method [2]. These were recently added to SimpleITK since the 0.9 release. You can see that the added procedure wraps the passed callable, into the RCommand class.</div><div><br></div><div>HTH,</div><div>Brad</div><div><br></div><div><br></div><div>[1] <a href="https://github.com/SimpleITK/SimpleITK/blob/master/Wrapping/R/sitkRCommand.h" target="_blank">https://github.com/SimpleITK/SimpleITK/blob/master/Wrapping/R/sitkRCommand.h</a></div><div>[2] <a href="https://github.com/SimpleITK/SimpleITK/blob/2ffffba589b24465a09eed1303bbffd6fe3fe18e/Wrapping/R/R.i#L565-L589" target="_blank">https://github.com/SimpleITK/SimpleITK/blob/2ffffba589b24465a09eed1303bbffd6fe3fe18e/Wrapping/R/R.i#L565-L589</a></div><div><div class="h5"><div><br><div><blockquote type="cite"><div>On Apr 11, 2016, at 3:59 AM, Mathew Guilfoyle <<a href="mailto:mrguilfoyle@gmail.com" target="_blank">mrguilfoyle@gmail.com</a>> wrote:</div><br><div>
<div style="word-wrap:break-word">I tried running the code below as suggested - both in RStudio and the terminal - and get the same abort/segfault error.<div><br></div><div>Which version of R are you running? - I can install an older version to see if it works.</div><div><br><div><blockquote type="cite"><div>On 11 Apr 2016, at 01:02, Richard Beare <<a href="mailto:richard.beare@gmail.com" target="_blank">richard.beare@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div><div><div>This is a long shot, but lets try testing whether it is the R garbage collection causing issues. Modify the test so that every method call result is assigned to a different variable:<br><br></div>e.g.<br><br></div>a1 <- gaussian$SetVariance(2)<br><div style="margin:0px;font-size:10px;font-family:Monaco">a2 <- gaussian$AddCommand( 'sitkStartEvent', f1 )</div><div><div style="margin:0px;font-size:10px;font-family:Monaco">a3 <- gaussian$AddCommand( 'sitkEndEvent', f2 )</div></div><br></div>I was running in a terminal on my mac, with an older version of R.<br><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 11, 2016 at 9:56 AM, Mathew Guilfoyle <span dir="ltr"><<a href="mailto:mrguilfoyle@gmail.com" target="_blank">mrguilfoyle@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Richard<div><br></div><div>It seems it must be something specific to my setup. I ran your example and get the same hard abort in Rstudio. Running the example in R.app I get the same error but a somewhat more graceful crash with the following error message:</div><div><br></div><div><span><div><font face="Menlo">gaussian$AddCommand( 'sitkStartEvent', f1 )</font></div><div><font face="Menlo"><br></font></div></span><div><font color="#ff2600" face="Menlo"> *** caught segfault ***</font></div><div><font color="#ff2600" face="Menlo">address 0x7ff511000080, cause 'memory not mapped'</font></div><div><font color="#ff2600" face="Menlo"><br></font></div><div><font color="#ff2600" face="Menlo">Traceback:</font></div><div><font color="#ff2600" face="Menlo"> 1: .Call("R_swig_ProcessObject_AddCommand", self, event, cmd, as.logical(.copy), PACKAGE = "SimpleITK")</font></div><div><font color="#ff2600" face="Menlo"> 2: f(x, ...)</font></div><div><font color="#ff2600" face="Menlo"> 3: gaussian$AddCommand("sitkStartEvent", f1)</font></div><div><font color="#ff2600" face="Menlo"><br></font></div><div><font color="#ff2600" face="Menlo">Possible actions:</font></div><div><font color="#ff2600" face="Menlo">1: abort (with core dump, if enabled)</font></div><div><font color="#ff2600" face="Menlo">2: normal R exit</font></div><div><font color="#ff2600" face="Menlo">3: exit R without saving workspace</font></div><div><font color="#ff2600" face="Menlo">4: exit R saving workspace</font></div><div><br></div><div>I have tried the version of SimpleITK built without the version of SWIG you patched to correct the character argument error, again I get the same behaviour. </div><div><br></div><div>Bradley - I’m using the latest SimpleITK 0.9 source compiled using the super build on OS X 10.11. I’ve done the build with the supplied SWIG and with a version patched by Richard and available here: <a href="https://github.com/richardbeare/swig.git" target="_blank">https://github.com/richardbeare/swig.git</a>. I’m funning R 3.2.4 in Rstudio IDE.</div><div><div><div><br></div><div><br></div><div><br></div><div><blockquote type="cite"><div>On 10 Apr 2016, at 23:17, Bradley Lowekamp <<a href="mailto:brad@lowekamp.net" target="_blank">brad@lowekamp.net</a>> wrote:</div><br><div><div>Hello,<br><br>I would like to know your environment. <br><br>What version of SimpleITK? R? OS? Compiler? Did you use simpleITK's super build? If not what version of SWIG?<br><br>Thanks<br><br><blockquote type="cite">On Apr 10, 2016, at 9:46 AM, Mathew Guilfoyle <<a href="mailto:mrguilfoyle@gmail.com" target="_blank">mrguilfoyle@gmail.com</a>> wrote:<br><br>Richard<br><br>Thanks for the reply. I hadn't appreciated that function being passed in the registration example was a closure. However, in the FiterProgressReporting example it is not a closure. <br><br>I have modified my code to be a closure but still get a crash/abort; I have also run the code in the examples themselves verbatim and get the same problem.<br><br>Any further ideas on how to get this working?<br><br>Cheers <br><br><br><blockquote type="cite">On 10 Apr 2016, at 02:10, Mathew Guilfoyle <<a href="mailto:mrguilfoyle@gmail.com" target="_blank">mrguilfoyle@gmail.com</a>> wrote:<br><br>There seems to be a problem with using the $AddCommand function to ImageRegistrationMethod objects in the R wrapping to SimpleITK.<br><br>Using R 3.2.4 on OS X 10.11<br><br>Example:<br><br>f <- function(x){print(x$GetMetricValue())}<br><br>registration = ImageRegistrationMethod()<br><br>registration$AddCommand(‘sitkIterationEvent’, f(registration))<br><br>This last line causes R to abort/hard crash (no error message). This behaviour is irrespective of which event type I use or the function passed as the second argument (e.g. even something simple like print(‘Hello’))<br><br>The AddCommand method is inherited from the SimpleITK ProcessObject type. Digging around in the SimpleITK.R file I can see that the ProcessObject$AddCommand method expects a second argument of type ‘_p_itk__simple__Command’.<br><br>There is a ‘Command’ method that generates a new object of type ‘_p_itk__simple__Command’. If I pass this resulting object as the second argument to registration$AddCommand then I do not get an error. However, there doesn’t seem to be any way to point the ‘_p_itk__simple__Command’ object to my function or otherwise convert my function to a ‘_p_itk__simple__Command’ type.<br><br>The $AddCommand method is used in a couple of example scripts on the SimpleITK site (using it for monitoring a registration and a filter e.g. <a href="https://github.com/SimpleITK/SimpleITK/blob/master/Examples/FilterProgressReporting.R" target="_blank">https://github.com/SimpleITK/SimpleITK/blob/master/Examples/FilterProgressReporting.R</a>) so I don’t know if it was working previously and a bug has been introduced more recently? (the example scripts cause the same error when I run them now)<br></blockquote><br>_____________________________________<br>Powered by <a href="http://www.kitware.com/" target="_blank">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br><a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br><br>Please keep messages on-topic and check the ITK FAQ at:<br><a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://public.kitware.com/mailman/listinfo/insight-users" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br></blockquote></div></div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>
</div></blockquote></div><br></div></div>_____________________________________<br>Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br><a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br><br>Please keep messages on-topic and check the ITK FAQ at:<br><a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://public.kitware.com/mailman/listinfo/insight-users" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br></div></blockquote></div><br></div></div></div></div><br>_____________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br></div></div>