Guillermo Polito wrote:


On Mon, May 14, 2018 at 11:22 AM, Herbert Vojčík <he...@mailbox.sk <mailto: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>
        <mailto: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?

"This works if ... Ephemerons are working" of yours. Not a correct understanding, it seems. :-)

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.

Ah. Didn't know that, sorry.

             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>>
                 <mailto: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>>
                      <mailto: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>>
                      <mailto: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>>
                      <mailto: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>>
                          <mailto: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>>
                          <mailto: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>>
                     <mailto: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:trmnmui...@mail.gmail.com
        <mailto:trmnmui...@mail.gmail.com>>
                     <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN+pbc+Hsd
        <mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN%2Bpbc%2BHsd>
<mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN%2Bpbc%2BHsd
        
<mailto:CAHN2FzeMiBL4Y8asJ0XCjS2AQdxycoN%252Bpbc%252BHsd>>=trmnmui...@mail.gmail.com
        <mailto:trmnmui...@mail.gmail.com>
                     <mailto: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>>
                     <mailto: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>>
                              <mailto: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:to%3apharo-us...@lists.pharo.org
        <mailto:to%253apharo-us...@lists.pharo.org>>
                         <mailto:pharo-users@lists.pharo.org
        <mailto:pharo-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_


*Web:* _http://guillep.github.io_

*Phone: *+33 06 52 70 66 13


Reply via email to