On Mon, May 14, 2018 at 11:22 AM, Herbert Vojčík <he...@mailbox.sk> wrote:
> > > Guillermo Polito wrote: > >> >> On Sun, May 13, 2018 at 6:37 PM, Herbert Vojčík <he...@mailbox.sk >> <mailto:he...@mailbox.sk>> wrote: >> >> >> >> Guillermo Polito wrote: >> >> Just be careful, that privateState thing looks like a Moose only >> Famix feature. It't not available in plain Pharo objects :) >> >> >> In ES6 mailing list, they had this problem re how to do private >> state for objects, and it was shown that having private state is >> sort of isomorphic to having WeakMap indexed by objects. So in case >> of Pharo, I'd say using WeakIdentitityKeyDictionary can do the >> trick. Without resorting to any external dependency. >> >> >> This works if the WeakMap is ephemeral. We should see in latest Pharo7 if >> Ephemerons are working. >> > > Isn't Weak[Identity]KeyDictionary meant to have weak keys? Yes > Since it is named after that and contains it in its docs? Or is Pharo7 > thinking about removing WeakXxx from the vm / image completely :-o ? > No, what makes you say so? What I said is that there is a (not so) "new" finalization mechanism called ephemerons implemented in the VM since some time ago, that avoids memory leaks when using weak dictionarys. WeakArrays work ok. WeakDictionaries may generate a memory leak if a **strong** value has a reference to a __weak__ key. > > Herby >> >> On Wed, May 9, 2018 at 2:09 AM, Alidra Abdelghani via >> Pharo-users <pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org> >> <mailto:pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org>>> wrote: >> >> >> >> ---------- Forwarded message ---------- >> From: Alidra Abdelghani <alidran...@yahoo.fr >> <mailto:alidran...@yahoo.fr> >> <mailto:alidran...@yahoo.fr <mailto:alidran...@yahoo.fr>>> >> To: Pavel Krivanek <pavel.kriva...@gmail.com >> <mailto:pavel.kriva...@gmail.com> >> <mailto:pavel.kriva...@gmail.com >> <mailto:pavel.kriva...@gmail.com>>> >> Cc: Any question about pharo is welcome >> <pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org> >> <mailto:pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org>>> >> Bcc: >> Date: Wed, 9 May 2018 01:09:06 +0100 >> Subject: Re: Package extension. Adding instance variables >> to classes >> Hi Pavel, >> >> Thank you for your answer. >> I actually didn’t know about this mechanism. >> I think it is will do the job :) >> I have probably to rewrite some parts pf my code to access >> my >> variables through privateState. no? >> >> >> Thanks again >> Abdelghani >> >> On 07 May 2018, at 13:15, >> pharo-users-requ...@lists.pharo.org >> <mailto:pharo-users-requ...@lists.pharo.org> >> <mailto:pharo-users-requ...@lists.pharo.org >> <mailto:pharo-users-requ...@lists.pharo.org>> wrote: >> >> >> Message: 1 >> Date: Mon, 7 May 2018 13:43:56 +0200 >> From: Pavel Krivanek <pavel.kriva...@gmail.com >> <mailto:pavel.kriva...@gmail.com> >> <mailto:pavel.kriva...@gmail.com >> <mailto:pavel.kriva...@gmail.com>>> >> To: Any question about pharo is welcome >> <pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org> >> <mailto:pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org>>> >> Subject: Re: [Pharo-users] Package extension. Adding >> instance >> variables to classes >> Message-ID: >> <CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd= >> trmnmui...@mail.gmail.com >> <mailto:trmnmui...@mail.gmail.com> >> <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd >> <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN%2Bpbc%2BHsd>=trMnmu >> i...@mail.gmail.com >> <mailto:trmnmui...@mail.gmail.com>>> >> Content-Type: text/plain; charset="utf-8" >> >> 2018-05-07 12:25 GMT+02:00 Alidra Abdelghani via >> Pharo-users < >> pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org> >> <mailto:pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org>>>: >> >> >> >> ---------- P?eposlan? zpr?va ---------- >> From: Alidra Abdelghani <alidran...@yahoo.fr >> <mailto:alidran...@yahoo.fr> >> <mailto:alidran...@yahoo.fr >> <mailto:alidran...@yahoo.fr>>> >> To:pharo-users@lists.pharo.org >> <mailto:to%3apharo-us...@lists.pharo.org> >> <mailto:pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org>> >> Cc: >> Bcc: >> Date: Mon, 7 May 2018 11:25:49 +0100 >> Subject: Package extension. Adding instance >> variables to classes >> Hi, >> >> I am working on a package named ClassNamesAnalyzer >> and I need to >> add code >> to third party classes in other packages (for >> instance the FAMIX-Core >> package). >> ?Extending? third party classes with methods is >> easy; I just need to >> categorise my methods under the *ClassNamesAnalyzer >> protocole so that >> loading my package will load them in the image. >> However, if I want to add instance variables to >> theses classes, >> they are >> not there when I load the package in a new image. >> >> *So my question is* : is there a way to include >> instance variables >> addition to other packages in my package? >> >> >> Currently not, you should use privateState >> >> >> *Another question is* : is it good practice to add >> instance >> variables to >> classes in third party packages and is there a way >> to avoid it >> (because I >> am not very confortable with that idea)? >> >> >> It is not, see >> FAMIXContainerEntity>>#definedAnnotationTypes how >> this issue >> is currently being solved using the privateState. >> >> Cheers, >> -- Pavel >> >> >> >> Thanks in advance, >> Abdelghani >> >> >> >> >> >> >> >> -- >> >> >> Guille Polito >> >> Research Engineer >> >> Centre de Recherche en Informatique, Signal et Automatique de >> Lille >> >> CRIStAL - UMR 9189 >> >> French National Center for Scientific Research - >> _http://www.cnrs.fr_ >> >> >> *Web:* _http://guillep.github.io_ >> >> *Phone: *+33 06 52 70 66 13 >> >> >> >> >> -- >> >> >> >> Guille Polito >> >> Research Engineer >> >> Centre de Recherche en Informatique, Signal et Automatique de Lille >> >> CRIStAL - UMR 9189 >> >> French National Center for Scientific Research - _http://www.cnrs.fr_ >> >> >> *Web:* _http://guillep.github.io_ >> >> *Phone: *+33 06 52 70 66 13 >> >> -- Guille Polito Research Engineer Centre de Recherche en Informatique, Signal et Automatique de Lille CRIStAL - UMR 9189 French National Center for Scientific Research - *http://www.cnrs.fr <http://www.cnrs.fr>* *Web:* *http://guillep.github.io* <http://guillep.github.io> *Phone: *+33 06 52 70 66 13