Thread: [cedet-eieio] Slot characteristic inheritance
Brought to you by:
zappo
From: Pierre L. <pol...@wa...> - 2007-06-06 14:50:12
|
Hi, Sorry if this question has already been discussed here but I am a newbie in using eieio. Well I read in info documentation : "Every slot in parent is replicated in the new class. If two parents share the same slot name, the parent which appears in the list first sets the attributes for that slot. If a slot in the new class' slot list matches a parent, then the new specifications for the child class override that of the parent." Well it does not seem to be the case for the custom attribute for instance. Indeed when a read teh code, I saw that init, type (and maybe default) really override settings for parent class but not custom. Why ? Is it something that has to be done in the code or should it absolutely not be done if it would disturbe the widget definition process ? Bests Pierre |
From: Eric M. L. <er...@si...> - 2007-06-06 16:06:54
|
In eieio.el, I see the following comment: ;; TODO: ;; For other slots (protection, etc) we should get the ;; original value, and make sure each is equal to the ;; last value and throw an error, or accept it. which seems as though I never got around to implementing this section. If you'd like to take a stab at fixing the part for custom and customgroup, that'd be ideal. There is a good example just before that comment. Otherwise I'll look into sometime soon. Thanks Eric >>> Pierre Lorenzon <pol...@wa...> seems to think that: >Hi, > >Sorry if this question has already been discussed here but I am >a newbie in using eieio. Well I read in info documentation : >"Every slot in parent > is replicated in the new class. If two parents share the same > slot name, the parent which appears in the list first sets the > attributes for that slot. If a slot in the new class' slot list > matches a parent, then the new specifications for the child class > override that of the parent." > >Well it does not seem to be the case for the custom attribute >for instance. Indeed when a read teh code, I saw that >init, type (and maybe default) really override settings for >parent class but not custom. > >Why ? Is it something that has to be done in the code or should >it absolutely not be done if it would disturbe the widget >definition process ? > >Bests > >Pierre > > >------------------------------------------------------------------------- >This SF.net email is sponsored by DB2 Express >Download DB2 Express C - the FREE version of DB2 express and take >control of your XML. No limits. Just data. Click to get it now. >http://sourceforge.net/powerbar/db2/ >_______________________________________________ >cedet-eieio mailing list >ced...@li... >https://lists.sourceforge.net/lists/listinfo/cedet-eieio > -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: Pierre L. <pol...@wa...> - 2007-06-06 19:20:29
|
Hi Eric, From: "Eric M. Ludlam" <er...@si...> Subject: Re[1]: [cedet-eieio] Slot characteristic inheritance Date: Wed, 6 Jun 2007 12:06:45 -0400 > In eieio.el, I see the following comment: > > ;; TODO: > ;; For other slots (protection, etc) we should get the > ;; original value, and make sure each is equal to the > ;; last value and throw an error, or accept it. Ok, I did not see thiscomment since I investigated carefully version 0.17 of eieio were this comment was not. Then I installed vers 1.0 in the hope that something would have change : but unfortunately .... So what is rellay the scope that must be implemented ? If it is only a matter of implementation shurely I can do it ! But so waht ? Should the child custom match the parent custom or is it allowed to completely change custom between parent and children ? I must confess that I would prefer the second solution but I know that I have to respect the package developers will ! > > which seems as though I never got around to implementing this section. > > If you'd like to take a stab at fixing the part for custom and > customgroup, that'd be ideal. There is a good example just before > that comment. Otherwise I'll look into sometime soon. > > Thanks > Eric Regards Pierre |
From: Eric M. L. <er...@si...> - 2007-06-07 03:05:19
|
Hi Pierre, In the code section I mentioned below, each attribute of the slot will need to be looked at to see if should be preserved from the parent (and an error thrown if an overload attempted), or the new attribute should apply. For example, the :allocation and :protection should not be allowed to change, but I agree that the customization slot should be overloadable. The customize group, however, should probably remain constant. If you would like to try your had at patching EIEIO, that would be appreciated. Starting with the version in CVS would likely be best. Once you've made your change, running it through eieio-test.el is important to make sure nothing is broken. If nothing breaks, then it is likely a new test will need to be added. Thanks! Eric >>> Pierre Lorenzon <pol...@wa...> seems to think that: >Hi Eric, > > > > >From: "Eric M. Ludlam" <er...@si...> >Subject: Re[1]: [cedet-eieio] Slot characteristic inheritance >Date: Wed, 6 Jun 2007 12:06:45 -0400 > >> In eieio.el, I see the following comment: >> >> ;; TODO: >> ;; For other slots (protection, etc) we should get the >> ;; original value, and make sure each is equal to the >> ;; last value and throw an error, or accept it. > > Ok, I did not see thiscomment since I > investigated carefully version 0.17 of eieio > were this comment was not. Then I installed > vers 1.0 in the hope that something would > have change : but unfortunately .... So > what is rellay the scope that must be > implemented ? If it is only a matter of > implementation shurely I can do it ! But so > waht ? Should the child custom match the > parent custom or is it allowed to completely > change custom between parent and children ? > I must confess that I would prefer the > second solution but I know that I have to > respect the package developers will ! > > >> >> which seems as though I never got around to implementing this section. >> >> If you'd like to take a stab at fixing the part for custom and >> customgroup, that'd be ideal. There is a good example just before >> that comment. Otherwise I'll look into sometime soon. >> >> Thanks >> Eric > > Regards > > Pierre > > >------------------------------------------------------------------------- >This SF.net email is sponsored by DB2 Express >Download DB2 Express C - the FREE version of DB2 express and take >control of your XML. No limits. Just data. Click to get it now. >http://sourceforge.net/powerbar/db2/ >_______________________________________________ >cedet-eieio mailing list >ced...@li... >https://lists.sourceforge.net/lists/listinfo/cedet-eieio > -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: Pierre L. <pol...@wa...> - 2007-06-07 07:05:04
|
Hi Eric I'll download the cvs version and try to make a patch. From: "Eric M. Ludlam" <er...@si...> Subject: Re[2]: [cedet-eieio] Slot characteristic inheritance Date: Wed, 6 Jun 2007 23:05:10 -0400 > Hi Pierre, > > In the code section I mentioned below, each attribute of the slot > will need to be looked at to see if should be preserved from the > parent (and an error thrown if an overload attempted), or the new > attribute should apply. Ok it depends on the nature of attribute ! > > For example, the :allocation and :protection should not be > allowed Sure ! It concerns the deep structure of the data structure. I do not remember if java for instance allows to change protection since I have not been devlopping in java since many years ! > to change, but I agree that the customization slot should be > overloadable. The customize group, however, should probably remain > constant. OK for the customization. I think however that customization groupss could at least be incremented. When you implement child of a class it for more specialized purpose and the object will probably be involved in certain groups which are absolutely not concerned by the parent class. Regards Pierre |
From: Eric M. L. <er...@si...> - 2007-06-07 11:02:27
|
>>> Pierre Lorenzon <pol...@wa...> seems to think that: > >Hi Eric > >I'll download the cvs version and try to make a patch. Great. Thanks! >From: "Eric M. Ludlam" <er...@si...> >Subject: Re[2]: [cedet-eieio] Slot characteristic inheritance >Date: Wed, 6 Jun 2007 23:05:10 -0400 [ ... ] >> to change, but I agree that the customization slot should be >> overloadable. The customize group, however, should probably remain >> constant. > > OK for the customization. I think however that customization > groupss could at least be incremented. When you implement > child of a class it for more specialized purpose and the > object will probably be involved in certain groups which are > absolutely not concerned by the parent class. [ ... ] Good idea. That would be a nice feature to have. Eric -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: Pierre L. <pol...@wa...> - 2007-06-07 14:17:26
|
Hi Eric, Sorry but I did not found were to download the cvs version. I browsed http://cedet.sourceforge.net/ and found cede-1.4 pre but no link to the cvs repository. I am blind and at the moment my braille display is not available so I browse the web only with a speeh synthesis and it is possible that something escape me ! Regards Pierre |
From: Eric M. L. <er...@si...> - 2007-06-08 21:57:42
|
The CEDET project page is here: http://sourceforge.net/projects/cedet The description of the CVS access is here: http://sourceforge.net/cvs/?group_id=17886 You can use the following unix commands to get a copy the CEDET trunk: --------- cvs -d:pserver:ano...@ce...:/cvsroot/cedet login cvs -z3 -d:pserver:ano...@ce...:/cvsroot/cedet co -P cedet --------- Have fun Eric >>> Pierre Lorenzon <pol...@wa...> seems to think that: >Hi Eric, > >Sorry but I did not found were to download the cvs version. I >browsed http://cedet.sourceforge.net/ and found cede-1.4 pre >but no link to the cvs repository. I am blind and at the moment >my braille display is not available so I browse the web only >with a speeh synthesis and it is possible that something escape >me ! > >Regards > >Pierre > -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: Pierre L. <pol...@wa...> - 2007-06-26 11:07:59
Attachments:
eieio.el
|
Hi Eric, Sorry but it took a while before I wrote the pieces of code concerning slot inheritance. Inbetween I start to use ede and I am very happy with it now ! First I think that I am not allowed to commit my changes to the cvs repository for the eieio project. Hence I simply join the modified eieio.el file. Modifications are between line 733 and 776. I ran the tests and they passed. Moreover I going to use intensively the eieio package, hence if there is a bug somewhere in the code I wrote, I'll certainly discover it soon ! Regards Pierre |
From: Pierre L. <pol...@wa...> - 2007-06-30 20:58:33
Attachments:
eieio.el
|
Hi Again, In my last modification of eieio.el, I did not implement any protocol for the doc attribute. It seems clear for me that this attribute should be overrriddable : Hence I implement it as overriddable ! I send the modified eieio.el : modifications are between line 733 and 785 in the join file. Sure I ran the tests and they passed and used these new features for my own classes and they produced the expected result ! Regards Pierre |
From: Eric M. L. <er...@si...> - 2007-07-04 21:13:58
|
Hi, I've investigated your changes, and they make sense. I'm going to write some tests for the changes and check them in sometime soon. Thanks! Eric >>> From ced...@li... Tue Jun 26 08:10:05 2007 seems to think that: >Hi Eric, > >Sorry but it took a while before I wrote the pieces of code >concerning slot inheritance. Inbetween I start to use ede and I >am very happy with it now ! > >First I think that I am not allowed to commit my changes to the >cvs repository for the eieio project. Hence I simply join the >modified eieio.el file. > >Modifications are between line 733 and 776. > >I ran the tests and they passed. Moreover I going to use >intensively the eieio package, hence if there is a bug >somewhere in the code I wrote, I'll certainly discover it soon >! > >Regards > >Pierre [ ... ] -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: Eric M. L. <er...@si...> - 2007-07-10 13:37:57
|
Hi Pierre, I wanted to let you know that in writing tests against your new code, I've found some problems getting errors out when the protection is overridden. The current layout of the code makes the determination a bit tricky. The other stuff appears ok so far. I'll let you know when I resolve the issue. Thanks Eric >>> Pierre Lorenzon <pol...@wa...> seems to think that: >----Next_Part(Sat_Jun_30_22_58_10_2007_759)-- >Content-Type: Text/Plain; charset=us-ascii >Content-Transfer-Encoding: 7bit > >Hi Again, > >In my last modification of eieio.el, I did not implement any >protocol for the doc attribute. It seems clear for me that this >attribute should be overrriddable : Hence I implement it as >overriddable ! I send the modified eieio.el : modifications are >between line 733 and 785 in the join file. > >Sure I ran the tests and they passed and used these new >features for my own classes and they produced the expected >result ! > >Regards > >Pierre [ ... ] -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: Eric M. L. <er...@si...> - 2007-08-25 16:58:14
|
Hi Pierre, I finally got part of your changes checked into CEDET/CVS for eieio.el. I had written some tests to try out your changes, and I couldn't get them to pass. It turns out that the protection (variable prot) has a value of `nil' when it is public, so it skipped the test for a protection change. It's testing well now, so those changes, plus a new set of tests are in CVS. I still have to write some tests for the class allocated slots. I'll get there eventually. Thanks! Eric >>> Pierre Lorenzon <pol...@wa...> seems to think that: >----Next_Part(Tue_Jun_26_13_07_13_2007_720)-- >Content-Type: Text/Plain; charset=us-ascii >Content-Transfer-Encoding: 7bit > >Hi Eric, > >Sorry but it took a while before I wrote the pieces of code >concerning slot inheritance. Inbetween I start to use ede and I >am very happy with it now ! > >First I think that I am not allowed to commit my changes to the >cvs repository for the eieio project. Hence I simply join the >modified eieio.el file. > >Modifications are between line 733 and 776. > >I ran the tests and they passed. Moreover I going to use >intensively the eieio package, hence if there is a bug >somewhere in the code I wrote, I'll certainly discover it soon >! > >Regards > >Pierre [ ... ] -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |