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