<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
With the recent changes Color was lacking #= and #hash, so all
comparisons answered false. I guess that was the slowdown. Downside
of using a very fast machine: I haven't noticed it immediately.<br>
<br>
Hopefully the code I just pushed fixes this. Please pull, update
& retry.<br>
<br>
Thanks,<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
<br>
On 10/2/2019 8:46 PM, Phil B wrote:
<blockquote
cite="mid:CAMJMOejxGCWsHdJ0ciYa5h9A-23FMNpEfZcvEPJUihOF=_iLgA@mail.gmail.com"
type="cite">
<div dir="ltr">Hmm... things are *much* more sluggish in 3899 on
my system. When I open up a vanilla 3866 image ProcessBrowser
shows the Morphic process idling ~5-10% but with 3899 Morphic is
at 35-40%. (if it turns out that this is due purely due to Color
no longer being a collection subclass then we have our answer
why it was one but I find the delta too large to believe that's
the issue at first glance)</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Oct 2, 2019 at 11:15
AM Juan Vuletich <<a moz-do-not-send="true"
href="mailto:juan@jvuletich.org">juan@jvuletich.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div bgcolor="#ffffff"> Hi Folks,<br>
<br>
(below)<br>
<br>
On 10/1/2019 1:25 AM, Phil B wrote:
<blockquote type="cite">
<div dir="ltr">Juan,
<div><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Sep 30,
2019 at 11:43 PM Juan Vuletich via Cuis-dev <<a
moz-do-not-send="true"
href="mailto:cuis-dev@lists.cuis.st"
target="_blank">cuis-dev@lists.cuis.st</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin: 0px
0px 0px 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
<div bgcolor="#ffffff"> Hi Nicolas,<br>
<br>
On 9/30/2019 8:36 PM, Nicolas Cellier via
Cuis-dev wrote:
<blockquote type="cite">
<div dir="auto">
<div>Hi Juan,</div>
<div dir="auto">Something strikes me.</div>
<div dir="auto">Isn't this example a
pathological case of inheritance? Is Color
really kind of Collection? Wouldn't any
object potentially be a collection of its
instances variables in this case?<br>
</div>
</div>
</blockquote>
</div>
</blockquote>
<div><br>
</div>
<div>Well that kind of gets to a core issue (in an
abstract way... I know, your favorite ;-) in that
there is nothing inherent about being a Color that
one should reasonably expect it to behave as a
collection. Sending #collect: etc. on a Color
from an outside object doesn't actually make a lot
of sense other than to abuse a leaked
implementation detail (i.e. that it's actually
implemented as a collection.)</div>
<blockquote class="gmail_quote" style="margin: 0px
0px 0px 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
<div bgcolor="#ffffff">
<blockquote type="cite">
<div dir="auto">
<div dir="auto"> </div>
</div>
</blockquote>
<br>
It can be considered a space optimization. Just
like Squeak's encoding of RGB in a SmallInteger.
Other examples in Cuis packages include
Float32Matrix3x3, Float32Vector3,
Float64Matrix?x?, Float64Quaternion,
Float64Vector?, GPSPosition, All these could use
ivars, but dont, and inherit from FloatArray or
Float64Array.<br>
</div>
</blockquote>
<div><br>
</div>
<div>There are FFI reasons as well. (but that's an
implementation detail)</div>
<div> </div>
<blockquote class="gmail_quote" style="margin: 0px
0px 0px 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
<div bgcolor="#ffffff">This makes sense especially
on 64 bit images for objects whose parts can be
32bit or shorter immediates, and if we build
many instances. In this cases, I think the space
saving overwheights the inconvenience of not
having real ivars.<br>
</div>
</blockquote>
<div><br>
</div>
<div>One could argue (and I am) that whether it was
implemented it that way for space savings or other
reasons that we shouldn't depend on it being a
collection because you could just as easily
re-implement it as a direct subclass of Object and
it would still make sense. The fact that it is
currently a collection seems irrelevant to being a
Color. The fact that it would no longer responded
to #collect: and friends wouldn't make it any less
a Color... so why encourage/support using these
(essentially) leaked methods externally?</div>
<blockquote class="gmail_quote" style="margin: 0px
0px 0px 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
<div bgcolor="#ffffff">
<pre cols="72">--
Juan Vuletich
<a moz-do-not-send="true" href="http://www.cuis-smalltalk.org" target="_blank">www.cuis-smalltalk.org</a>
<a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a moz-do-not-send="true" href="https://github.com/jvuletich" target="_blank">https://github.com/jvuletich</a>
<a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
</div>
</blockquote>
<div><br>
</div>
<div>Thanks,</div>
<div>Phil </div>
</div>
</div>
</div>
</blockquote>
<br>
You are both right. Thanks for raising this issue.<br>
<br>
I just pushed to GitHub a new Float32SlotsObject, and made
Color subclass of it. Color is no longer a Collection, and I
hope I didn't break too many things... Please take a look,
and report any problems.<br>
<br>
Cheers,<br>
<pre cols="72">--
Juan Vuletich
<a moz-do-not-send="true" href="http://www.cuis-smalltalk.org" target="_blank">www.cuis-smalltalk.org</a>
<a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a moz-do-not-send="true" href="https://github.com/jvuletich" target="_blank">https://github.com/jvuletich</a>
<a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>