[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
- Re: Are package folder supported?,
Ben Abbott <=