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? 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 <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>=trmnmui...@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


Reply via email to