bugGNU Octave - Bugs: bug #52111, meta.class.* does not work after...


bug #52111: meta.class.* does not work after after 'clear classes'

Submitted by:  Piotr Held <jsoh425>
Submitted on:  Mon 25 Sep 2017 06:31:57 PM UTC  
Category: InterpreterSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Unexpected Error
Status: NoneAssigned to: None
Originator Name: Piotr HeldOpen/Closed: Open
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.


Fri 29 Sep 2017 12:38:01 AM UTC, comment #3:

As far as I can tell they don't change.

I dug aroung and found that only the 'meta' package itself needs to be not unregistered (the rest already stays). I am attaching a lot smaller patch with this fix. The patch is in file simple_bug_patch.diff.

I am also attaching a patch disabling 'meta.event' and 'meta.dynproperty' because they don't work and cause Octave to exit. This patch is called octave_panic_bug.diff.

(file #41956, file #41957)

Piotr Held <jsoh425>
Thu 28 Sep 2017 03:50:21 PM UTC, comment #2:

Once installed, do the meta.* objects ever change? If not, then instead of deleting and reinstalling them when doing "clear all", should we just avoid deleting them?

John W. Eaton <jwe>
Project Administrator
Thu 28 Sep 2017 01:06:00 AM UTC, comment #1:

I found out a new bug and solved it with this patch (which I don't think there is a need to submit a separate bug, it's all quite intertwined). Octave will close when calling:

which the latter isn't even Matlab compatible.

The patch introduces two methods:
# cdef_manager::install_meta_classes_in_symtab which is a way of avoiding code duplication.
# cdef_manager::reinit which takes the classes and packages created in cdef_manager::initialize() and reloads them. I could call cdef_manager::initialize again but that increases memory leak from Bug #52123.

I removed tmp_meta* cdef objects from cdef_manager::intialize since they did not really serve any purpose and only cluttered the code. I also removed references to events and dynproperties as they are not implemented and only cause confusion/octave termination.

I also added some documentation to cdef_manager (in ov-classdef.h)

(file #41907)

Piotr Held <jsoh425>
Mon 25 Sep 2017 06:31:57 PM UTC, original submission:

This problem extends to meta.package as well. The bug can be recreated in the following way:

I am using a build with the most current cset: 8f3db1ac7877 .

Piotr Held <jsoh425>


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

Attach File(s):

Attached Files
file #41956:  octave_panic_bug.diff added by jsoh425 (1KiB - text/x-patch)
file #41957:  simple_bug_patch.diff added by jsoh425 (1KiB - text/x-patch)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by amro_octave
  • -unavailable- added by jwe (Posted a comment)
  • -unavailable- added by jsoh425 (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 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 07 Dec 2017 04:35:34 PM UTCamro_octaveCarbon-Copy-=>Added amro_octave
    Fri 29 Sep 2017 12:38:01 AM UTCjsoh425Attached File-=>Added octave_panic_bug.diff, #41956
      Attached File-=>Added simple_bug_patch.diff, #41957
    Thu 28 Sep 2017 01:06:00 AM UTCjsoh425Attached File-=>Added meta_class_clear_all_patch.diff, #41907

    Back to the top

    Powered by Savane 3.1-cleanup1