Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144633 messages
Re: [Pharo-dev] @About posting here
by Frank-B
Dear @all three above,
I won't step into such off-topic discussions in a technical forum,
especially not if postings contain such stereotype and almost rassist
propaganda arguments as above.
I hold it avec le grand Voltaire - and I am expecting the same from
everybody I communicate with:
L'original:
"Je hais vos idées, mais je me ferai tuer pour que vous ayez le droit de les
exprimer"
Il existes plusieurs versions et je ne sais pas laquelle est la juste.
That is NOT a Google translation. I went to school in France.
In Deutsch:
"Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür
einsetzen, daà Sie sie äuÃern dürfen."
My translation to English:
"Monsieur, I do not share your opinion, but I would give my life to defend
that you may express it."
*Tempi passati!*
Today, truth and divergent opinions are the new hate crimes as we see here!
I think it would be far more intelligent and useful to welcome what in
German is called a "Querdenker" literally translated a "cross thinker" (or
lateral thinker?) who in my case does not even expect others to agree.
Très sincèrement - most sincerely - Habe die Ehre!
Frank
>From my side: Case closed!
--
View this message in context: http://forum.world.st/Anybody-using-Orca-Smalltalk-to-JavaScript-tp4960519p…
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Aug. 16, 2017
Re: [Pharo-dev] Ugly smell: really long symbols/selectors
by Denis Kudriashov
Which is actually shows that tests as methods are not really good idea.
Tests are supposed to be documentation but with classic SUnit we have only
two ways (classes and methods) to decompose them which is definitely not
enough for docs.
But ignore it. I am just thinking aloud :)
2017-08-16 13:47 GMT+02:00 Stephane Ducasse <stepharo.self(a)gmail.com>:
> I often use long selectors for tests :)
>
>
> On Wed, Aug 16, 2017 at 9:49 AM, Guillermo Polito <
> guillermopolito(a)gmail.com> wrote:
>
>> (ByteSymbol allInstances select: [ :e | e size > 50 ]) size
>> "638"
>> (ByteSymbol allInstances select: [ :e | e size > 50 and: [ e beginsWith:
>> 'test' ] ]) size
>> "200"
>>
>> Still 438 non test selectors. Some of them are class creation methods
>> (#subclass:instanceVariables:...)
>>
>> I'm just saying this is a smell, wanted to share some of my catarsis :).
>>
>> Guille
>>
>> On Wed, Aug 16, 2017 at 9:35 AM, Nicolas Cellier <
>> nicolas.cellier.aka.nice(a)gmail.com> wrote:
>>
>>> Hi Guile,
>>> have you inspect-ed the list?
>>> I wouldn't be surprise that these are whole sentence acting as
>>> specification in unit TestCase,
>>> like whenBrowserReceiveOpenItShouldReturnTheWindowMorph...
>>>
>>> 2017-08-16 3:51 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>:
>>>
>>>> #'thisIsAVeryLongSelectorAndIfYoureHereWeHaveOnly49ImagineIH
>>>> aveToWriteAllThisToArriveTo87ThenThisTo100'
>>>>
>>>> (ByteSymbol allInstances select: [ :e | e size > 100 ]) size
>>>> => 36
>>>>
>>>> (ByteSymbol allInstances select: [ :e | e size between: 50 and: 100 ])
>>>> size
>>>> => 653
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>>
>>>> Guille Polito
>>>>
>>>>
>>>> Research Engineer
>>>>
>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>
>>>
>>>
>>
>>
>> --
>>
>>
>>
>> Guille Polito
>>
>>
>> Research Engineer
>>
>> 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 <+33%206%2052%2070%2066%2013>
>>
>
>
Aug. 16, 2017
Re: [Pharo-dev] Issue 20309 - Startup should run always in a fresh process
by Denis Kudriashov
>
> From the other side I am not sure why connections should be closed when
>> image is saved. In case of Seamless pool is constructed in the way that it
>> checks if socket is valid before borrow it to user.
>
>
Well, that's a seamless issue, isn't it? Did you try not subscribing
> seamless to the startup to see if it still behaves well?
It is example to show that delay can be used during snapshot logic. And it
can be hidden inside libraries. In my case it is hidden inside ObjectPool.
And I of course not thought about #clear method when setup timeout.
I think implementations of database connection pool can be affected too.
What we have? Voyage?
(I tested Seamless scenario: it works fine without cleanup)
2017-08-16 13:28 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>:
>
>
> On Wed, Aug 16, 2017 at 1:21 PM, Denis Kudriashov <dionisiydk(a)gmail.com>
> wrote:
>
>> 2017-08-16 12:28 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>:
>>
>>>
>>>
>>> On Wed, Aug 16, 2017 at 12:13 PM, Denis Kudriashov <dionisiydk(a)gmail.com
>>> > wrote:
>>>
>>>>
>>>>
>>>> 2017-08-16 12:02 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>
>>>> :
>>>>
>>>>>
>>>>>
>>>>> On Wed, Aug 16, 2017 at 10:50 AM, Denis Kudriashov <
>>>>> dionisiydk(a)gmail.com> wrote:
>>>>>
>>>>>> There is possibility where delay can be used during startup/shutdown.
>>>>>> Library can clean resources which are managed by kind of pool which
>>>>>> organizes timeout logic to enter synchronization monitor.
>>>>>>
>>>>>> I checked Seamless which manages connections this way. But I not
>>>>>> found any issue there.
>>>>>>
>>>>>
>>>>> Can you explain this in more detail? I want to know exactly what
>>>>> "clean resources", "kind of pool" and "timeout logic to enter
>>>>> synchronization monitor" mean concretely.
>>>>>
>>>>> Also, how are you subscribing seamless to the startup list?
>>>>>
>>>>
>>>> Seamless server cleans all opened connections on image save. It
>>>> registers using:
>>>>
>>>> SessionManager default registerNetworkClassNamed: self name
>>>>
>>>> I copied this logic from ZnServer.
>>>> But Seamless manages connections using ObjectPool. So when image save
>>>> is performed "connectionPool clear" is evaluated. It closes connections and
>>>> reset all caches. Problem that ObjectPool is protected by Monitor with
>>>> timeout option. And #clear method enters this monitor. It is possible that
>>>> at the time of image save monitor will be busy and #clear method will wait
>>>> for delay to enter critical section.
>>>>
>>>>
>>> Does this means that there may be a timeout while closing connections
>>> during shutdown?
>>> Because in that case the session manager will continue shutting down
>>> things and seamless may be not fully cleaned up upon next startup.
>>>
>>
>> Yes. It is possible. But it looks like very rare case. Interesting if
>> there is real solution to this.
>>
>
> Well... maybe we need some actions that can "cancel" the shutdown? Like in
> the operating system, when there is an app that cannot be closed, it asks
> you to force close or not...
>
> Otherwise, I'd advice that at shutdown seamless should be in any case
> safer and avoid that case. Maybe you want to clear the pool without a
> timeout? Maybe you want to force kill connections without waiting for them
> (because they may never end)?
>
>
>> From the other side I am not sure why connections should be closed when
>> image is saved. In case of Seamless pool is constructed in the way that it
>> checks if socket is valid before borrow it to user.
>>
>
> Well, that's a seamless issue, isn't it? Did you try not subscribing
> seamless to the startup to see if it still behaves well?
>
>
>>
>>
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>> 2017-08-16 1:46 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com
>>>>>> >:
>>>>>>
>>>>>>>
>>>>>>> On Tue, Aug 15, 2017 at 3:25 PM, Ben Coman <btc(a)openinworld.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> In case any of the shutdown/startup scripts use a delay, now or in
>>>>>>>> the future,
>>>>>>>> I'd first try at highestPriority-1 to avoid influence on the
>>>>>>>> DelayScheduler.
>>>>>>>> but then Eliot's suggestion to valueUnpreemptively may avoid that
>>>>>>>> anyway.
>>>>>>>>
>>>>>>>
>>>>>>> Why should a shutdown/startup use a delay? startup and shutdown
>>>>>>> should be fast and not be blocked... If there is a delay on client code, it
>>>>>>> should block a client thread, not a system thread...
>>>>>>>
>>>>>>> Moreover, I see a series of issues in having the delay process
>>>>>>> running in higher priority than the startup. If I'm wrong, please correct
>>>>>>> me because otherwise that means there is something I'm not getting.
>>>>>>>
>>>>>>> First, today the Delay scheduling process is being terminated on
>>>>>>> shutdown and being re-initialized on startup. This means that even if a
>>>>>>> shutdown/startup action tries to use a delay that will fail/block
>>>>>>> indefinitely?
>>>>>>>
>>>>>>> Second, what happens with race conditions between the startup and
>>>>>>> the delay process? If the shutdown is in the middle of terminating the
>>>>>>> delay process and the delay process gets suddenly activated?
>>>>>>>
>>>>>>> stopTimerEventLoop
>>>>>>> "Stop the timer event loop"
>>>>>>>
>>>>>>> timerEventLoop ifNotNil: [ timerEventLoop terminate ].
>>>>>>> timerEventLoop := nil.
>>>>>>>
>>>>>>> Maybe before terminating the timerEventLoop we need to suspend it?
>>>>>>> That will at least atomically (primitive) remove the process from the ready
>>>>>>> list and avoid it from being activated again, no?
>>>>>>>
>>>>>>> In any case, I see no good in letting a delay work on startup. That
>>>>>>> is far too low level and the system would be in a far too unstable state to
>>>>>>> run any code other than the startup itself.
>>>>>>>
>>>>>>>
>>>>>>>> btw, what happens if an error occurs inside valueUnpreemptively?
>>>>>>>> Does the normal priority debugger still get to run?
>>>>>>>>
>>>>>>>> cheers -ben
>>>>>>>>
>>>>>>>> On Mon, Aug 14, 2017 at 6:42 PM, Guillermo Polito <
>>>>>>>> guillermopolito(a)gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> I'm proposing a kind-of critical change that I believe is very
>>>>>>>>> good for the health of the system: I want that the startup of the system
>>>>>>>>> runs in maximum priority and becomes non-interruptable.
>>>>>>>>>
>>>>>>>>> Right now, when you save your image, the shutdown and startup are
>>>>>>>>> run in the same priority than the process that triggered the save (usually
>>>>>>>>> the ui or the command line, priority 40). This can cause lots of problems
>>>>>>>>> and race conditions: processes with higher priorities can interrupt the
>>>>>>>>> shutdown/startup and try to do something while the system is unstable. As a
>>>>>>>>> side effect also, when you use extensively the command line, you start
>>>>>>>>> stacking startup contexts from old sessions:
>>>>>>>>>
>>>>>>>>> ...
>>>>>>>>> session 3 ctxt 4 <- This guy makes a save and a new session starts
>>>>>>>>> session 3 ctxt 3
>>>>>>>>> session 3 ctxt 2
>>>>>>>>> session 3 ctxt 1
>>>>>>>>> session 2 ctxt 4 <- This guy makes a save and a new session starts
>>>>>>>>> session 2 ctxt 3
>>>>>>>>> session 2 ctxt 2
>>>>>>>>> session 2 ctxt 1
>>>>>>>>> session 1 ctxt 4 <- This guy makes a save and a new session starts
>>>>>>>>> session 1 ctxt 3
>>>>>>>>> session 1 ctxt 2
>>>>>>>>> session 1 ctxt 1
>>>>>>>>>
>>>>>>>>> Old contexts are never collected, and the objects they referenced
>>>>>>>>> neither.
>>>>>>>>>
>>>>>>>>> To fix these two problems I propose to do every image save/session
>>>>>>>>> start in a new process in maximum priority. That way, other process should
>>>>>>>>> not be able to interrupt the startup process. Moreover, every session
>>>>>>>>> shutdown/startup should happen in a new clean process, to avoid the session
>>>>>>>>> stacking.
>>>>>>>>>
>>>>>>>>> For normal users, this should have no side effect at all. This
>>>>>>>>> change will have a good impact on people working on the debugger and the
>>>>>>>>> stack such as fueling-out the stack because they will have a cleaner stack.
>>>>>>>>>
>>>>>>>>> There is however a side-effect/design point to consider: startup
>>>>>>>>> actions should be quick to run. If a startup action requires to run a
>>>>>>>>> long-running action such as starting a server or managing a command line
>>>>>>>>> action, that should run in a separate process with lower priority (usually
>>>>>>>>> userPriority). In other words, the startup action should create a new
>>>>>>>>> process managing its action.
>>>>>>>>>
>>>>>>>>> If you want to review (and I'd be glad)
>>>>>>>>>
>>>>>>>>> Pull request: https://github.com/pharo-project/pharo/pull/198
>>>>>>>>> Fogbugz issue: https://pharo.fogbugz.com/f/cases/20309
>>>>>>>>> Current validation going on: https://ci.inria.fr/pharo-ci-j
>>>>>>>>> enkins2/job/Test%20pending%20pull%20request%20and%20branch%2
>>>>>>>>> 0Pipeline/view/change-requests/job/PR-198/
>>>>>>>>>
>>>>>>>>> Guille
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Guille Polito
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Research Engineer
>>>>>>>>>
>>>>>>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Guille Polito
>>>>>>>
>>>>>>>
>>>>>>> Research Engineer
>>>>>>>
>>>>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>>
>>>>>
>>>>> Guille Polito
>>>>>
>>>>>
>>>>> Research Engineer
>>>>>
>>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>>
>>>
>>> Guille Polito
>>>
>>>
>>> Research Engineer
>>>
>>> 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 <+33%206%2052%2070%2066%2013>
>>>
>>
>>
>
>
> --
>
>
>
> Guille Polito
>
>
> Research Engineer
>
> 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 <+33%206%2052%2070%2066%2013>
>
Aug. 16, 2017
Re: [Pharo-dev] @About posting here
by henry
- HH
> -------- Original Message --------
> Subject: Re: [Pharo-dev] @About posting here
> Local Time: August 16, 2017 7:40 AM
> UTC Time: August 16, 2017 11:40 AM
> From: norbert(a)hartl.name
> To: Pharo Dev <pharo-dev(a)lists.pharo.org>
>
>> Am 16.08.2017 um 13:21 schrieb Guillermo Polito <guillermopolito(a)gmail.com>:
>>
>> Hi Frank,
>>
>> I'll just repeat Stef's message: It's not about being straight or having unpopular opinions. It's about being rude and on the limit of the insult. I feel myself some harshness in your messages, it's like you're saying that everybody but you is stupid. I know that you did not say that "explicitly" but that's the way it feels. And I'm sure I'm not the only one feeling like it.
>>
>> Of course, that did not prevent me to answer you politely, but at the end what will happen is that people will not answer you anymore. Just take into account that if many people think already that your mails are aggressive, there may be some fault on your side too.
>>
>> That said, this does not mean that I want to "censor" you. Just choose better your words but keep the same content.
>
> +1 to all you said.
>
> And I would like to know why every smalltalk troll is german? That's so sad!
I think it is a subset of trolls. Not just smalltalk trolls are German, all trolls are German. Same mentat, from any other LandStuhl, is properly a ghoul, not a troll. I personally think it is because Germans' are taught to never hold their tongue, after WW 1 and 2. I would ask you, have you ever seen a German holding their tonguie? So, I ramble on in hopes you are not so sad.
> Norbert
>
>> On Wed, Aug 16, 2017 at 12:52 PM, Frank-B <frank.berger.software(a)web.de> wrote:
>>
>>> Phil,
>>>
>>> nice attempt to drill and silence me! My advise: They all failed!
>>>
>>> If somebody can't cope with straight critics or unpopular opinions that aint
>>> my fault.
>>>
>>> Frank
>>> who never worried about being labeled and
>>> from a country where free speech is still welcome
>>>
>>> --
>>> View this message in context: http://forum.world.st/Anybody-using-Orca-Smalltalk-to-JavaScript-tp4960519p…
>>> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
>>
>> --
>>
>> Guille Polito
>>
>> Research Engineer
>> 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
Aug. 16, 2017
Re: [Pharo-dev] Ugly smell: really long symbols/selectors
by Stephane Ducasse
I often use long selectors for tests :)
On Wed, Aug 16, 2017 at 9:49 AM, Guillermo Polito <guillermopolito(a)gmail.com
> wrote:
> (ByteSymbol allInstances select: [ :e | e size > 50 ]) size
> "638"
> (ByteSymbol allInstances select: [ :e | e size > 50 and: [ e beginsWith:
> 'test' ] ]) size
> "200"
>
> Still 438 non test selectors. Some of them are class creation methods
> (#subclass:instanceVariables:...)
>
> I'm just saying this is a smell, wanted to share some of my catarsis :).
>
> Guille
>
> On Wed, Aug 16, 2017 at 9:35 AM, Nicolas Cellier <
> nicolas.cellier.aka.nice(a)gmail.com> wrote:
>
>> Hi Guile,
>> have you inspect-ed the list?
>> I wouldn't be surprise that these are whole sentence acting as
>> specification in unit TestCase,
>> like whenBrowserReceiveOpenItShouldReturnTheWindowMorph...
>>
>> 2017-08-16 3:51 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>:
>>
>>> #'thisIsAVeryLongSelectorAndIfYoureHereWeHaveOnly49ImagineIH
>>> aveToWriteAllThisToArriveTo87ThenThisTo100'
>>>
>>> (ByteSymbol allInstances select: [ :e | e size > 100 ]) size
>>> => 36
>>>
>>> (ByteSymbol allInstances select: [ :e | e size between: 50 and: 100 ])
>>> size
>>> => 653
>>>
>>>
>>> --
>>>
>>>
>>>
>>> Guille Polito
>>>
>>>
>>> Research Engineer
>>>
>>> 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 <+33%206%2052%2070%2066%2013>
>>>
>>
>>
>
>
> --
>
>
>
> Guille Polito
>
>
> Research Engineer
>
> 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 <+33%206%2052%2070%2066%2013>
>
Aug. 16, 2017
Re: [Pharo-dev] @About posting here
by Norbert Hartl
> Am 16.08.2017 um 13:21 schrieb Guillermo Polito <guillermopolito(a)gmail.com>:
>
> Hi Frank,
>
> I'll just repeat Stef's message: It's not about being straight or having unpopular opinions. It's about being rude and on the limit of the insult. I feel myself some harshness in your messages, it's like you're saying that everybody but you is stupid. I know that you did not say that "explicitly" but that's the way it feels. And I'm sure I'm not the only one feeling like it.
>
> Of course, that did not prevent me to answer you politely, but at the end what will happen is that people will not answer you anymore. Just take into account that if many people think already that your mails are aggressive, there may be some fault on your side too.
>
> That said, this does not mean that I want to "censor" you. Just choose better your words but keep the same content.
>
>
+1 to all you said.
And I would like to know why every smalltalk troll is german? That's so sad!
Norbert
>
> On Wed, Aug 16, 2017 at 12:52 PM, Frank-B <frank.berger.software(a)web.de <mailto:frank.berger.software@web.de>> wrote:
> Phil,
>
> nice attempt to drill and silence me! My advise: They all failed!
>
> If somebody can't cope with straight critics or unpopular opinions that aint
> my fault.
>
> Frank
> who never worried about being labeled and
> from a country where free speech is still welcome
>
>
>
> --
> View this message in context: http://forum.world.st/Anybody-using-Orca-Smalltalk-to-JavaScript-tp4960519p… <http://forum.world.st/Anybody-using-Orca-Smalltalk-to-JavaScript-tp4960519p…>
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
>
>
>
>
> --
>
> Guille Polito
>
> Research Engineer
> 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
Aug. 16, 2017
Re: [Pharo-dev] [squeak-dev] File & Socket Handle Access
by Denis Kudriashov
Hi Eliot.
I asked David why he didn't add it to the SocketPlugin in the first place
> and he discussed Andreas Rabb's security concerns
It would be interesting to read about them because it looks strange that it
is secure to manage OS handle from VM but not secure to manage it from
image side. Both ways are requested by user directly or indirectly which
means that user has OS permissions. So what the difference?
2017-08-16 2:13 GMT+02:00 Eliot Miranda <eliot.miranda(a)gmail.com>:
> Hi All,
>
> recently Denis Kudriashov wanted to access the OS handle of a Socket
> from the image to pass through the FFI. David Lewis pointed out that the
> AioPlugin provides a primitive to do this. I asked David why he didn't add
> it to the SocketPlugin in the first place and he discussed Andreas Rabb's
> security concerns. It strikes me
> a) that accessing the OS handle of a file or a socket is extremely useful
> in some circumstances and invalid in others
> b) having handle access in a secondary plugin is inconvenient to say the
> least
> c) having access only to Socket handles and not to file handles is also
> inconvenient.
>
> So I propose adding a SecurityPlugin facility to control handle access,
> which would be granted by default, and to add primitives to both the
> SocketPlugin and FilePlugin to answer the native OS handle when the
> SecurityPlugin grants permission.
>
> I also propose adding a compilation flag to the Windows VM to allow
> compiling out Andreas' handle management, which consists merely of
> maintaining a table of the file handles (not the socket handles) that have
> been created by the VM. It strikes me that a much better solution is
> merely to encrypt the handle via xoring with a value created at random. I
> don't see how Andreas' solution adds value, especially since it is not
> implemented on other platforms, and merely adds overhead.
>
> Thoughts? Objections?
> _,,,^..^,,,_
> best, Eliot
>
>
>
>
Aug. 16, 2017
Re: [Pharo-dev] Issue 20309 - Startup should run always in a fresh process
by Guillermo Polito
On Wed, Aug 16, 2017 at 1:21 PM, Denis Kudriashov <dionisiydk(a)gmail.com>
wrote:
> 2017-08-16 12:28 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>:
>
>>
>>
>> On Wed, Aug 16, 2017 at 12:13 PM, Denis Kudriashov <dionisiydk(a)gmail.com>
>> wrote:
>>
>>>
>>>
>>> 2017-08-16 12:02 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>:
>>>
>>>>
>>>>
>>>> On Wed, Aug 16, 2017 at 10:50 AM, Denis Kudriashov <
>>>> dionisiydk(a)gmail.com> wrote:
>>>>
>>>>> There is possibility where delay can be used during startup/shutdown.
>>>>> Library can clean resources which are managed by kind of pool which
>>>>> organizes timeout logic to enter synchronization monitor.
>>>>>
>>>>> I checked Seamless which manages connections this way. But I not found
>>>>> any issue there.
>>>>>
>>>>
>>>> Can you explain this in more detail? I want to know exactly what "clean
>>>> resources", "kind of pool" and "timeout logic to enter synchronization
>>>> monitor" mean concretely.
>>>>
>>>> Also, how are you subscribing seamless to the startup list?
>>>>
>>>
>>> Seamless server cleans all opened connections on image save. It
>>> registers using:
>>>
>>> SessionManager default registerNetworkClassNamed: self name
>>>
>>> I copied this logic from ZnServer.
>>> But Seamless manages connections using ObjectPool. So when image save is
>>> performed "connectionPool clear" is evaluated. It closes connections and
>>> reset all caches. Problem that ObjectPool is protected by Monitor with
>>> timeout option. And #clear method enters this monitor. It is possible that
>>> at the time of image save monitor will be busy and #clear method will wait
>>> for delay to enter critical section.
>>>
>>>
>> Does this means that there may be a timeout while closing connections
>> during shutdown?
>> Because in that case the session manager will continue shutting down
>> things and seamless may be not fully cleaned up upon next startup.
>>
>
> Yes. It is possible. But it looks like very rare case. Interesting if
> there is real solution to this.
>
Well... maybe we need some actions that can "cancel" the shutdown? Like in
the operating system, when there is an app that cannot be closed, it asks
you to force close or not...
Otherwise, I'd advice that at shutdown seamless should be in any case safer
and avoid that case. Maybe you want to clear the pool without a timeout?
Maybe you want to force kill connections without waiting for them (because
they may never end)?
> From the other side I am not sure why connections should be closed when
> image is saved. In case of Seamless pool is constructed in the way that it
> checks if socket is valid before borrow it to user.
>
Well, that's a seamless issue, isn't it? Did you try not subscribing
seamless to the startup to see if it still behaves well?
>
>
>>
>>
>>>
>>>
>>>>
>>>>>
>>>>>
>>>>> 2017-08-16 1:46 GMT+02:00 Guillermo Polito <guillermopolito(a)gmail.com>
>>>>> :
>>>>>
>>>>>>
>>>>>> On Tue, Aug 15, 2017 at 3:25 PM, Ben Coman <btc(a)openinworld.com>
>>>>>> wrote:
>>>>>>
>>>>>>> In case any of the shutdown/startup scripts use a delay, now or in
>>>>>>> the future,
>>>>>>> I'd first try at highestPriority-1 to avoid influence on the
>>>>>>> DelayScheduler.
>>>>>>> but then Eliot's suggestion to valueUnpreemptively may avoid that
>>>>>>> anyway.
>>>>>>>
>>>>>>
>>>>>> Why should a shutdown/startup use a delay? startup and shutdown
>>>>>> should be fast and not be blocked... If there is a delay on client code, it
>>>>>> should block a client thread, not a system thread...
>>>>>>
>>>>>> Moreover, I see a series of issues in having the delay process
>>>>>> running in higher priority than the startup. If I'm wrong, please correct
>>>>>> me because otherwise that means there is something I'm not getting.
>>>>>>
>>>>>> First, today the Delay scheduling process is being terminated on
>>>>>> shutdown and being re-initialized on startup. This means that even if a
>>>>>> shutdown/startup action tries to use a delay that will fail/block
>>>>>> indefinitely?
>>>>>>
>>>>>> Second, what happens with race conditions between the startup and the
>>>>>> delay process? If the shutdown is in the middle of terminating the delay
>>>>>> process and the delay process gets suddenly activated?
>>>>>>
>>>>>> stopTimerEventLoop
>>>>>> "Stop the timer event loop"
>>>>>>
>>>>>> timerEventLoop ifNotNil: [ timerEventLoop terminate ].
>>>>>> timerEventLoop := nil.
>>>>>>
>>>>>> Maybe before terminating the timerEventLoop we need to suspend it?
>>>>>> That will at least atomically (primitive) remove the process from the ready
>>>>>> list and avoid it from being activated again, no?
>>>>>>
>>>>>> In any case, I see no good in letting a delay work on startup. That
>>>>>> is far too low level and the system would be in a far too unstable state to
>>>>>> run any code other than the startup itself.
>>>>>>
>>>>>>
>>>>>>> btw, what happens if an error occurs inside valueUnpreemptively?
>>>>>>> Does the normal priority debugger still get to run?
>>>>>>>
>>>>>>> cheers -ben
>>>>>>>
>>>>>>> On Mon, Aug 14, 2017 at 6:42 PM, Guillermo Polito <
>>>>>>> guillermopolito(a)gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I'm proposing a kind-of critical change that I believe is very good
>>>>>>>> for the health of the system: I want that the startup of the system runs in
>>>>>>>> maximum priority and becomes non-interruptable.
>>>>>>>>
>>>>>>>> Right now, when you save your image, the shutdown and startup are
>>>>>>>> run in the same priority than the process that triggered the save (usually
>>>>>>>> the ui or the command line, priority 40). This can cause lots of problems
>>>>>>>> and race conditions: processes with higher priorities can interrupt the
>>>>>>>> shutdown/startup and try to do something while the system is unstable. As a
>>>>>>>> side effect also, when you use extensively the command line, you start
>>>>>>>> stacking startup contexts from old sessions:
>>>>>>>>
>>>>>>>> ...
>>>>>>>> session 3 ctxt 4 <- This guy makes a save and a new session starts
>>>>>>>> session 3 ctxt 3
>>>>>>>> session 3 ctxt 2
>>>>>>>> session 3 ctxt 1
>>>>>>>> session 2 ctxt 4 <- This guy makes a save and a new session starts
>>>>>>>> session 2 ctxt 3
>>>>>>>> session 2 ctxt 2
>>>>>>>> session 2 ctxt 1
>>>>>>>> session 1 ctxt 4 <- This guy makes a save and a new session starts
>>>>>>>> session 1 ctxt 3
>>>>>>>> session 1 ctxt 2
>>>>>>>> session 1 ctxt 1
>>>>>>>>
>>>>>>>> Old contexts are never collected, and the objects they referenced
>>>>>>>> neither.
>>>>>>>>
>>>>>>>> To fix these two problems I propose to do every image save/session
>>>>>>>> start in a new process in maximum priority. That way, other process should
>>>>>>>> not be able to interrupt the startup process. Moreover, every session
>>>>>>>> shutdown/startup should happen in a new clean process, to avoid the session
>>>>>>>> stacking.
>>>>>>>>
>>>>>>>> For normal users, this should have no side effect at all. This
>>>>>>>> change will have a good impact on people working on the debugger and the
>>>>>>>> stack such as fueling-out the stack because they will have a cleaner stack.
>>>>>>>>
>>>>>>>> There is however a side-effect/design point to consider: startup
>>>>>>>> actions should be quick to run. If a startup action requires to run a
>>>>>>>> long-running action such as starting a server or managing a command line
>>>>>>>> action, that should run in a separate process with lower priority (usually
>>>>>>>> userPriority). In other words, the startup action should create a new
>>>>>>>> process managing its action.
>>>>>>>>
>>>>>>>> If you want to review (and I'd be glad)
>>>>>>>>
>>>>>>>> Pull request: https://github.com/pharo-project/pharo/pull/198
>>>>>>>> Fogbugz issue: https://pharo.fogbugz.com/f/cases/20309
>>>>>>>> Current validation going on: https://ci.inria.fr/pharo-ci-j
>>>>>>>> enkins2/job/Test%20pending%20pull%20request%20and%20branch%2
>>>>>>>> 0Pipeline/view/change-requests/job/PR-198/
>>>>>>>>
>>>>>>>> Guille
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Guille Polito
>>>>>>>>
>>>>>>>>
>>>>>>>> Research Engineer
>>>>>>>>
>>>>>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>>
>>>>>>
>>>>>> Guille Polito
>>>>>>
>>>>>>
>>>>>> Research Engineer
>>>>>>
>>>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>>
>>>> Guille Polito
>>>>
>>>>
>>>> Research Engineer
>>>>
>>>> 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 <+33%206%2052%2070%2066%2013>
>>>>
>>>
>>>
>>
>>
>> --
>>
>>
>>
>> Guille Polito
>>
>>
>> Research Engineer
>>
>> 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 <+33%206%2052%2070%2066%2013>
>>
>
>
--
Guille Polito
Research Engineer
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
Aug. 16, 2017
Re: [Pharo-dev] @About posting here
by Guillermo Polito
Hi Frank,
I'll just repeat Stef's message: It's not about being straight or having
unpopular opinions. It's about being rude and on the limit of the insult. I
feel myself some harshness in your messages, it's like you're saying that
everybody but you is stupid. I know that you did not say that "explicitly"
but that's the way it feels. And I'm sure I'm not the only one feeling like
it.
Of course, that did not prevent me to answer you politely, but at the end
what will happen is that people will not answer you anymore. Just take into
account that if many people think already that your mails are aggressive,
there may be some fault on your side too.
That said, this does not mean that I want to "censor" you. Just choose
better your words but keep the same content.
Thanks,
Guille
On Wed, Aug 16, 2017 at 12:52 PM, Frank-B <frank.berger.software(a)web.de>
wrote:
> Phil,
>
> nice attempt to drill and silence me! My advise: They all failed!
>
> If somebody can't cope with straight critics or unpopular opinions that
> aint
> my fault.
>
> Frank
> who never worried about being labeled and
> from a country where free speech is still welcome
>
>
>
> --
> View this message in context: http://forum.world.st/Anybody-
> using-Orca-Smalltalk-to-JavaScript-tp4960519p4961628.html
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>
--
Guille Polito
Research Engineer
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
Aug. 16, 2017