bugGNU Octave - Bugs: bug #48949, mexCallMATLABWithTrap not...

 
 

bug #48949: mexCallMATLABWithTrap not implemented

Submitted by:  Guillaume <gyom>
Submitted on:  Tue 30 Aug 2016 10:42:32 AM UTC  
 
Category: LibrariesSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Feature Request
Status: FixedAssigned to: None
Originator Name: GuillaumeOpen/Closed: Closed
Release: devOperating System: Any

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Thu 08 Sep 2016 11:14:33 PM UTC, comment #6:

I also made the default value of the TrapFlag to be 0 to match Matlab (http://hg.savannah.gnu.org/hgweb/octave/rev/3a8af9d517de). Previously Octave was behaving as if TrapFlag was set.

Rik <rik5>
Project Administrator
Thu 08 Sep 2016 11:03:29 PM UTC, comment #5:

I added mexCallMATLABWithTrap to the MEX API in this cset (http://hg.savannah.gnu.org/hgweb/octave/rev/ad5439817753). I mostly followed your suggestion, but the new code saves and restores the TrapFlag in case it is not 1 when entering the function. I also used Octave coding conventions for the alignment of the code and for the error id and message.

Rik <rik5>
Project Administrator
Thu 08 Sep 2016 10:04:58 PM UTC, comment #4:

Re-titling bug report for remaining issue.

Rik <rik5>
Project Administrator
Thu 08 Sep 2016 10:04:34 PM UTC, comment #3:

I made the change you suggested to get the correct status from mexCallMATLAB in this cset (http://hg.savannah.gnu.org/hgweb/octave/rev/2fb86778f78d).

Rik <rik5>
Project Administrator
Mon 05 Sep 2016 04:32:21 PM UTC, comment #2:

I actually conflated two issues in this bug report: one bug with mexCallMATLAB and a feature request with mexCallMATLABWithTrap.

  • bug report concerning mexCallMATLAB:

The integer value returned by mexCallMATLAB is always 1 even if an error has been caught. This can be fixed with the following (this is what mexEvalString does):

  • feature request for mexCallMATLABWithTrap:

Given that the try/catch ME currently returns a structure, the following could be used until a complete MException can be returned:

Guillaume <gyom>
Tue 30 Aug 2016 01:37:27 PM UTC, comment #1:

I've just made the following tiny change:

and it now returns a non zero value when an error is caught. The error message is still being displayed though:

Maybe the same approach than the one used by @oheim in patch #8033 can be used here.

Guillaume <gyom>
Tue 30 Aug 2016 10:42:32 AM UTC, original submission:

It seems that mexCallMATLABWithTrap is not available from the Octave API:
http://www.mathworks.com/help/matlab/apiref/mexcallmatlabwithtrap.html

I tried instead to use mexCallMATLAB with mexSetTrapFlag, even if its use is deprecated in MATLAB, as it seems to be implemented in Octave:
http://www.mathworks.com/help/matlab/apiref/mexsettrapflag.html

There seems to be an issue with the integer value returned by mexCallMATLAB though:

With mexSetTrapFlag(0), Octave gives:

With mexSetTrapFlag(0), MATLAB gives:

With mexSetTrapFlag(1), Octave gives:

With mexSetTrapFlag(1), MATLAB gives:

So it seems that when the Trap Flag is set to true, mexCallMATLAB is not set to a non-zero value when an error is caught.

From what I see, it seems that having an implementation of mexCallMATLABWithTrap might not be too difficult - the main issue being that MException is not implemented: what are the plans regarding this and should it be implemented in M-code or C++?

Guillaume <gyom>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by rik5 (Posted a comment)
  • -unavailable- added by gyom (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 08 Sep 2016 11:03:29 PM UTCrik5StatusNone=>Fixed
      Open/ClosedOpen=>Closed
    Thu 08 Sep 2016 10:04:58 PM UTCrik5SummarymexCallMATLABWithTrap not implemented and problem with mexCallMATLAB/mexSetTrapFlag=>mexCallMATLABWithTrap not implemented

    Back to the top


    Powered by Savane 3.1-cleanup1