115
edits
Fgnievinski (talk | contribs) (→Implement classdef classes: adding info from GSoC proposal comment) |
|||
Line 250: | Line 250: | ||
Matlab has two kinds of classes: old style @classes and new style classdef. Octave has only fully implemented the old style. There is partial support for new classes in [http://hg.savannah.gnu.org/hgweb/octave/shortlog/classdef our classdef branch]. There is irregular work here, and classdef is [http://www.mathworks.com/help/matlab/matlab_oop/method-attributes.html a very] [http://www.mathworks.com/help/matlab/events-sending-and-responding-to-messages.html complicated] [http://www.mathworks.com/help/matlab/enumeration-classes.html thing] to fully implement. A successful project would be to implement enough of classdef for most basic usages. Familiarity with Matlab's current classdef support would be a huge plus. Michael Goffioul and jwe can mentor this. | Matlab has two kinds of classes: old style @classes and new style classdef. Octave has only fully implemented the old style. There is partial support for new classes in [http://hg.savannah.gnu.org/hgweb/octave/shortlog/classdef our classdef branch]. There is irregular work here, and classdef is [http://www.mathworks.com/help/matlab/matlab_oop/method-attributes.html a very] [http://www.mathworks.com/help/matlab/events-sending-and-responding-to-messages.html complicated] [http://www.mathworks.com/help/matlab/enumeration-classes.html thing] to fully implement. A successful project would be to implement enough of classdef for most basic usages. Familiarity with Matlab's current classdef support would be a huge plus. Michael Goffioul and jwe can mentor this. | ||
Although there's already a substantial classdef support in current octave code base, there are still many areas that are unimplemented or need improvements. The main ones that come to my mind are: | |||
* support for events | |||
* support for enums | |||
* support for "import" (this requires good understanding of octave internals, especially he symbol table) | |||
* improving multiple inheritance and method resolution | |||
* honoring and computing "Sealed" attribute | |||
* support for function handle to methods | |||
== Infrastructure == | == Infrastructure == |
edits