Questions or comments

Brian Rice water@tunes.org
Tue Mar 27 12:51:02 2001


<x-html><!x-stuff-for-pete id="0">
<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { margin-top: 0 ; margin-bottom: 0 }
 --></style><title>Re: Questions or comments</title></head><body>
<blockquote type="cite" cite>You asked for it, so I have some comments
from quickly browsing through <br>
your sources. I have also taken a quick look at Armin Rigo's Bazar
code <br>
in Python. I have been discussing some stuff with a friend and I am
<br>
thinking if I should also post something to the Tunes list.<br>
<br>
Anyway:<br>
<br>
While using '-&gt;' as a selector might be a problem, you could have
'=&gt;' <br>
(though I see you used '&gt;=' and '&lt;=' and that might cause some
<br>
confusion).</blockquote>
<div><br></div>
<div>My current working set now uses '-&gt;' and I think that I can
live with that. Other external sugarings like @ and =&gt; I have kept
for the use of the programmer. This release will make it out in
another week or less.</div>
<div><br></div>
<blockquote type="cite" cite>-----------------<br>
You mention:<br>
<br>
&nbsp; Notice that ArrowGraph extends Arrow, so it has a head and
tail.<br>
<br>
But the code says it is a subclass of ArrowStub. Later you talk about
<br>
the apexArrow in a way that made me think this comment was about some
<br>
previous implementation.</blockquote>
<div><br></div>
<div>Indeed it does. I changed inheritance from Arrow (which made
identity problems difficult by making the relationship between Arrows
and ArrowGraphs less flexible) to delegation to apexArrow. FrameGraph
is going to handle the relation between the two. I will fix this
comment. Thanks.</div>
<div><br></div>
<blockquote type="cite" cite>-----------------<br>
In Arrow&gt;&gt;head:tail: is didn't get this<br>
....<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self become: newArrow.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; head _ Reference to:
headArrow.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tail _ Reference to:
tailArrow.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self become:
newArrow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
....<br>
<br>
Given that newArrow has nil in its instance variables, wouldn't this
<br>
work? :<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newArrow head: headArrow tail:
tailArrow<br>
<br>
The &quot;recursive&quot; call to head:tail: would take care of the
&quot;Reference <br>
to:&quot; stuff, right?</blockquote>
<div><br></div>
<div>I was having a lot of problems with initialization of Arrows, and
this snapshot shows some of the conceptual confusion that resulted.
The next release should be less confusing. I already have a different
set-up for initialization which is nicely robust and a little
clearer.</div>
<div>But now that you mention it, I really should put a better comment
in there to explain what's going on and why.</div>
<div><br></div>
<blockquote type="cite" cite>-----------------<br>
Comments like in here<br>
<br>
!Arrow methodsFor: 'testing' stamp: 'btr 3/18/2001 01:42'!<br>
isCompositionOf: anArrow1 with: anArrow2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Answers whether the
receiver is a valid composition result of <br>
the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arguments in either
order.&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;^ anArrow1
coincidesWith: anArrow2 coords: 1@2&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^ self == (anArrow1 ++
anArrow2) | self == (anArrow2 ++ <br>
anArrow1)! ! <br>
<br>
don't seem to agree with the definition of Arrow&gt;&gt;at: (since it
seems <br>
to imply a 1 based indexing scheme while at: implements a 0 based
one), <br>
but it is likely that I misunderstood something.</blockquote>
<div><br></div>
<div>Nope, you found a mistake of mine. #coincidesWith:At: was added
after much of everything else, and I was using the arrow logic texts
as a guide, without checking for consistency. I fixed this just now.
Thanks.</div>
<div><br></div>
<blockquote type="cite" cite>-----------------<br>
There is a SmartRefStream method (around line 1940) that probably <br>
shouldn't be there.</blockquote>
<div><br></div>
<div>That's a changeset problem (I think). I'll make sure to condense
my changes for the next posts.</div>
<div><br></div>
<blockquote type="cite" cite>-----------------</blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite>Sorry that I am unable to make higher
level comments than these...</blockquote>
<blockquote type="cite" cite>-- Jecel</blockquote>
<div><br></div>
<div>That's fine, most of the methods right now are basic utilities. I
am cooking up some factories with lots of large-scale patterns right
now, and they should indicate the desired characteristics of the
system at large. Also the more useful routines will make it explicit
when we are using a categorial nature or a strictly informatic nature.
Also the SmalltalkMOP routines are unusable as is.</div>
<div><br></div>
<div>Thanks,</div>
<div>~</div>
</body>
</html>
</x-html>