octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Are package folder supported?


From: Ben Abbott
Subject: Re: Are package folder supported?
Date: Wed, 30 Jan 2013 09:03:43 -0500

** Moved to the maintainer's mail-list **

On Jan 29, 2013, at 7:18 AM, Michael Goffioul wrote:

> On Tue, Jan 29, 2013 at 3:04 AM, deraltefritz <address@hidden> wrote:
> 
> On Mon, Jan 28, 2013 at 3:21 PM, Michael Goffioul [via Octave] <[hidden 
> email]> wrote:
> 
> On Mon, Jan 28, 2013 at 7:30 AM, deraltefritz <[hidden email]> wrote:
> I really would like to contribute, but I'm more than confused by the immense
> number of files inside "libinterp", and the non-speaking file names.
> 
> Is there any form of documentation how instructions are parsed by Octave?
> 
> Or can anyone point me to the relevant files/classes/functions that parse
> instructions like "foo = function(bar)" ?
> 
> For the record, I'm currently working on adding classdef support for octave, 
> the code is available in the "classdef" branch of octave repository. Support 
> for package folders will be added as part of that work. It's not done yet, 
> but it's among the top items in my TODO list.
> 
> Michael.
> 
> Great to hear that ! 
> I'll check out the "classdef" branch, and can provide feedback if (and when) 
> you want. Is there anything I need to pay attention to (for instance, when 
> building)? 
> 
> No. It should build as the default branch.
>  
> What's the current status of classdef support?
> 
> At the moment, the following features are supported (non exhaustive):
> - classdef file parsing
> - handle/value class semantic
> - class inheritance
> - property/method access with dot-notation
> - property/method access restriction (public, protected, private, cell array 
> of classes)
> - property accessors
> - array of objects
> - static methods / constant properties
> 
> Michael.

Michael,

I discovered a bug with the array of objects.  In the event, you haven't come 
across it yet, the commands below crash octave when run in the ./test/classdef 
directory.

        foo = foo_value_class;
        foo(10) = foo_value_class;

>From gdb I see ...

>> foo = foo_value_class
class: foo_value_class
method block
constructor: foo_value_class
method: amount
property block
property: rate
property: term
property: principle
constructor
foo = foo_value_class object
>> foo(10) = foo_value_class
constructor
panic: impossible state reached in file 'octave-value/ov-classdef.cc' at line 
1182

Program received signal SIGABRT, Aborted.
0x00007fff8f3ebce2 in __pthread_kill ()
(gdb) bt
#0  0x00007fff8f3ebce2 in __pthread_kill ()
#1  0x00007fff86e597d2 in pthread_kill ()
#2  0x0000000101374276 in raise [inlined] () at :327
#3  0x0000000101374276 in abort () at 
/Volumes/work/macports/var/macports/build/_Volumes_work_mports_dports_lang_llvm-3.1/llvm-3.1/work/llvm-3.1.src/lib/Support/Signals.cpp:327
#4  0x0000000100a09e29 in panic ()
#5  0x00000001006ae575 in cdef_object_scalar::subsasgn ()
#6  0x00000001006c2b04 in cdef_object::subsasgn ()
#7  0x00000001006ad9c0 in octave_classdef::subsasgn ()
#8  0x00000001007821c5 in octave_value::subsasgn ()
#9  0x00000001007823a4 in octave_value::assign ()
#10 0x00000001008b5e89 in octave_lvalue::assign ()
#11 0x00000001007f7f7e in tree_simple_assignment::rvalue1 ()
#12 0x0000000100808931 in tree_evaluator::visit_statement ()
#13 0x000000010082d5a4 in tree_statement::accept ()
#14 0x0000000100808b9e in tree_evaluator::visit_statement_list ()
#15 0x000000010082d93a in tree_statement_list::accept ()
#16 0x0000000100be4d82 in main_loop ()
#17 0x0000000100311102 in octave_execute_interpreter ()
#18 0x0000000100009a79 in main ()
(gdb) 

Ben


reply via email to

[Prev in Thread] Current Thread [Next in Thread]