Guillermo Polito wrote:
On Sun, May 13, 2018 at 6:37 PM, Herbert Voj����k <herby@mailbox.sk <mailto:herby@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?
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 ?
�� �� 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 <alidrandco@yahoo.fr
�� �� �� �� <mailto:alidrandco@yahoo.fr>
�� �� �� �� �� �� ��<mailto:alidrandco@yahoo.fr <mailto:alidrandco@yahoo.fr>>>
�� �� �� �� �� �� ��To: Pavel Krivanek <pavel.krivanek@gmail.com
�� �� �� �� <mailto:pavel.krivanek@gmail.com >
�� �� �� �� �� �� ��<mailto:pavel.krivanek@gmail.com
�� �� �� �� <mailto:pavel.krivanek@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-request@lists.pharo.org
�� �� �� �� �� �� <mailto:pharo-users-request@lists.pharo.org >
�� �� �� �� �� �� �� �� ��<mailto:pharo-users-request@lists.pharo.org
�� �� �� �� �� �� <mailto:pharo-users-request@lists.pharo.org >> wrote:
�� �� �� �� �� �� �� �� ��Message: 1
�� �� �� �� �� �� �� �� ��Date: Mon, 7 May 2018 13:43:56 +0200
�� �� �� �� �� �� �� �� ��From: Pavel Krivanek <pavel.krivanek@gmail.com
�� �� �� �� �� �� <mailto:pavel.krivanek@gmail.com >
�� �� �� �� �� �� �� �� ��<mailto:pavel.krivanek@gmail.com
�� �� �� �� �� �� <mailto:pavel.krivanek@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=trMnmuiJqw@mail.gm ail.com
�� �� �� �� �� �� <mailto:trMnmuiJqw@mail.gmail.com >
�� �� �� �� �� �� <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd
�� �� �� �� �� �� <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN%2Bpbc%2BHsd >=trMnmuiJqw@mail.gmail.com
�� �� �� �� �� �� <mailto:trMnmuiJqw@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 <alidrandco@yahoo.fr
�� �� �� �� �� �� �� �� <mailto:alidrandco@yahoo.fr>
�� �� �� �� �� �� �� �� �� �� ��<mailto:alidrandco@yahoo.fr
�� �� �� �� �� �� �� �� <mailto:alidrandco@yahoo.fr>>>
�� �� �� �� �� �� �� �� To:pharo-users@lists.pharo.org
�� �� �� �� �� �� �� �� <mailto:To%3Apharo-users@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 Phone: +33 06 52 70 66 13 |