Regression: Subfunctions not cleared upon function reload

John W. Eaton jwe at bevo.che.wisc.edu
Sun May 4 22:39:08 CDT 2008


On  4-May-2008, John W. Eaton wrote:

| On  4-May-2008, John W. Eaton wrote:
| 
| | On  4-May-2008, Moritz Borgmann wrote:
| | 
| | | Let's say I have the following files:
| | | 
| | | ============ testfun1.m ============
| | | function testfun1 ()
| | | testscript;
| | | 
| | | function testsubfun ()
| | | disp ('testsubfun in testfun1');
| | | ==================================
| | | 
| | | ============ testscript.m ============
| | | f = str2func ('testsubfun');
| | | f ();
| | | ==================================
| | | 
| | | This gives
| | | octave:5> testfun1 ()
| | | testsubfun in testfun1
| | | 
| | | Now if I comment out the testsubfun subfunction in testfun1.m and 
| | | save the file, Octave still gives exactly the same result. Instead, 
| | | it should bail out and complain that testsubfun is not defined. It 
| | | seems like subfunctions are not properly cleared from the symbol 
| | | table upon reload of a function.
| | 
| | The following change seems to fix this problem.
| 
| Never mind.  That change causes lots of test failures.  I think I'm
| closer to understanding what is cuasing the problem, but that fix is
| not the solution.

OK.  Try this one instead.  It also seems to fix the problem that Ben
Abbott reported.  I've checked it in to the public archive.

Thanks,

jwe


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: diffs
Url: https://www.cae.wisc.edu/pipermail/bug-octave/attachments/20080504/1c88a9dd/attachment.ksh 


More information about the Bug-octave mailing list