[BUG][FIX] Re: Running your tests for Arrows

Brian Rice water@tunes.org
Fri Mar 30 08:32:02 2001


--============_-1226152645==_============
Content-Type: multipart/alternative; boundary="============_-1226152645==_ma============"

--============_-1226152645==_ma============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

Hey Piedro,

>  >FrameGraph was WorldGraph, and they are both classes. When you file
>>in a changeset, all classes get initialized, so that was a very old
>>debugging statement that is not necessary. Just run "ArrowWorld
>>explore".
>
>OK, thanks. Please, report this to
>the mailing list, or - better - update
>the test file so that the ingenuous
>user will not make my error.

Everyone note that Arrow Tests.text has been updated to fix the bug 
mentioned above.
Okay, I've done both.

>I obtained a basic Squeak tutorial, I
>loaded the changeset file and I run the
>tests. An exception raised, so here you
>are.
>
>a _ Arrow new name: 'a'.
>b _ a clone name: 'b'.
>c _ a->b name: 'c'.
>d _ b->c name: 'd'.
>Result: returned 4 arrows
>
>d ++ c == nil.
>c head == d tail.
>c ++ d = (a->c).
>(d head: a) ~~ d.
>c boxMeUp == c boxMeUp.
>c inv = c inv.
>Result: all true
>
>e _ InductionGraph new.
>Result: raised an exception: MessageNotUnderstood @
>
>Seems that when executing
>
>kernel _ monoid anyOne name: '0'.
>
>in InductionGraph:initialize, the instruction
>
>  ^ kernel @ kernel
>
>of MonoidGraph:anyOne raises the exception.

Which means that kernel is still nil (un-initialized, that is). Yes, 
I see that in that method I forgot to set the monoid's kernel before 
asking for an example arrow. Okay, I have a changeset which fixes 
that and which I've merged into my own code. Until then, use the 
attached file as a fix. It winds up changing the protocol of 
InductionGraph class in a very minor way.

>Now that I am gaining some knowledge of the
>platform I would like to be more useful, and
>also to verify the usefulness of Arrow. But the
>only available paper on Arrow is the general
>introduction, which is too much high level for
>the user. Since a working system is now available,
>even if it is just a beta implementation,
>a more practical paper would be necessary to
>show people how they can do things with Arrow, and
>why it should be preferred to, e.g., a relational
>database: maybe a tutorial with a sample
>application would work. I must confess that
>I did not understand so much of your Arrow
>paper, it is too complex and multidisciplinary
>and would need some clarification.

Yes, and that's exactly where I'm going with this, but Arrow is 
missing a major aspect which I insist on completing before giving it 
a version number. Basically, there needs to be equational constraint 
and rewrite semantics workable within it, which means things like 
arrows whose state is only specified algebraically (and so may not 
even have a consistent or singular notion of state!), as well as a 
few other things. If you want something like Arrows but more 
database-like, look up the Pointrel data repository in the Squeak 
archives.

>Pietro.
>
>P.S:
>By the way, I tried to download the project file
>from another wintel box, but it seems that the
>most used browser in the world, on the most
>used PC operating system in the world, is unable
>to correctly download arrows.pr. I will try to
>get it from linux+netscape, but I would like to
>suggest you to put the files also on the ftp
>site.

Okay, I'll talk with Tril about this. Maybe we'll set up an 
arrow.tunes.org or something, or just some easily accessible 
directory in the existing structure.
~
--============_-1226152645==_ma============
Content-Type: text/html; charset="us-ascii"

<!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>[BUG][FIX] Re: Running your tests for
Arrows</title></head><body>
<div>Hey Piedro,</div>
<div><br></div>
<blockquote type="cite" cite><font
face="Times New Roman">&gt;FrameGraph was WorldGraph, and they are
both classes. When you file<br>
&gt;in a changeset, all classes get initialized, so that was a very
old<br>
&gt;debugging statement that is not necessary. Just run
&quot;ArrowWorld<br>
&gt;explore&quot;.</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">OK, thanks. Please,
report this to</font></blockquote>
<blockquote type="cite" cite><font size="-1">the mailing list, or -
better - update</font></blockquote>
<blockquote type="cite" cite><font size="-1">the test file so that the
ingenuous</font></blockquote>
<blockquote type="cite" cite><font size="-1">user will not make my
error.</font></blockquote>
<div><br></div>
<div>Everyone note that Arrow Tests.text has been updated to fix the
bug mentioned above.</div>
<div>Okay, I've done both.</div>
<div><br></div>
<blockquote type="cite" cite><font size="-1">I&nbsp;obtained a basic
Squeak tutorial, I</font></blockquote>
<blockquote type="cite" cite><font size="-1">loaded the changeset file
and I run the</font></blockquote>
<blockquote type="cite" cite><font size="-1">tests.&nbsp;An exception
raised, so here you</font></blockquote>
<blockquote type="cite" cite><font size="-1">are.</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">a _ Arrow new name:
'a'.<br>
b _ a clone name: 'b'.<br>
c _ a-&gt;b name: 'c'.<br>
d _ b-&gt;c name: 'd'.<br>
Result: returned 4 arrows</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">d ++ c == nil.<br>
c head == d tail.<br>
c ++ d = (a-&gt;c).<br>
(d head: a) ~~ d.<br>
c boxMeUp == c boxMeUp.<br>
c inv = c inv.<br>
Result: all true</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">e _ InductionGraph
new.<br>
Result: raised an exception: MessageNotUnderstood
@</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">Seems that
when&nbsp;executing</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">kernel _ monoid anyOne
name: '0'.</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">in
InductionGraph:initialize, the instruction</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">&nbsp;^ kernel @
kernel</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font
size="-1">of&nbsp;MonoidGraph:anyOne raises the
exception.</font></blockquote>
<div><br></div>
<div>Which means that kernel is still nil (un-initialized, that is).
Yes, I see that in that method I forgot to set the monoid's kernel
before asking for an example arrow. Okay, I have a changeset which
fixes that and which I've merged into my own code. Until then, use the
attached file as a fix. It winds up changing the protocol of
InductionGraph class in a very minor way.</div>
<div><br></div>
<blockquote type="cite" cite><font size="-1">Now that I am gaining
some knowledge of the</font></blockquote>
<blockquote type="cite" cite><font size="-1">platform I would like to
be more useful, and</font></blockquote>
<blockquote type="cite" cite><font size="-1">also to verify the
usefulness of Arrow. But the</font></blockquote>
<blockquote type="cite" cite><font size="-1">only available paper on
Arrow is the general</font></blockquote>
<blockquote type="cite" cite><font size="-1">introduction, which is
too much high level for</font></blockquote>
<blockquote type="cite" cite><font size="-1">the user.&nbsp;Since a
working system is now available,</font></blockquote>
<blockquote type="cite" cite><font size="-1">even if it is just a beta
implementation,</font></blockquote>
<blockquote type="cite" cite><font size="-1">a more practical paper
would&nbsp;be necessary to</font></blockquote>
<blockquote type="cite" cite><font size="-1">show&nbsp;people how they
can do things with Arrow, and</font></blockquote>
<blockquote type="cite" cite><font size="-1">why it should be
preferred to, e.g., a relational</font></blockquote>
<blockquote type="cite" cite><font size="-1">database: maybe a
tutorial with a sample</font></blockquote>
<blockquote type="cite" cite><font size="-1">application would work. I
must confess that</font></blockquote>
<blockquote type="cite" cite><font size="-1">I did not understand so
much of your Arrow</font></blockquote>
<blockquote type="cite" cite><font size="-1">paper, it is too complex
and multidisciplinary</font></blockquote>
<blockquote type="cite" cite><font size="-1">and would need some
clarification.</font></blockquote>
<div><br></div>
<div>Yes, and that's exactly where I'm going with this, but Arrow is
missing a major aspect which I insist on completing before giving it a
version number. Basically, there needs to be equational constraint and
rewrite semantics workable within it, which means things like arrows
whose state is only specified algebraically (and so may not even have
a consistent or singular notion of state!), as well as a few other
things. If you want something like Arrows but more database-like, look
up the Pointrel data repository in the Squeak archives.</div>
<div><br></div>
<blockquote type="cite" cite><font
size="-1">Pietro.</font></blockquote>
<blockquote type="cite" cite>&nbsp;</blockquote>
<blockquote type="cite" cite><font size="-1">P.S:</font></blockquote>
<blockquote type="cite" cite><font size="-1">By the way,&nbsp;I tried
to download the project file</font></blockquote>
<blockquote type="cite" cite><font size="-1">from another wintel box,
but it seems that the</font></blockquote>
<blockquote type="cite" cite><font size="-1">most used browser in the
world, on the most</font></blockquote>
<blockquote type="cite" cite><font size="-1">used PC operating system
in the world, is unable</font></blockquote>
<blockquote type="cite" cite><font size="-1">to correctly download
arrows.pr. I will try to</font></blockquote>
<blockquote type="cite" cite><font size="-1">get it from
linux+netscape, but I would like to</font></blockquote>
<blockquote type="cite" cite><font size="-1">suggest you to put the
files also on the ftp</font></blockquote>
<blockquote type="cite" cite><font size="-1">site.</font></blockquote>
<div><br></div>
<div>Okay, I'll talk with Tril about this. Maybe we'll set up an
arrow.tunes.org or something, or just some easily accessible directory
in the existing structure.</div>
<div>~</div>
</body>
</html>
--============_-1226152645==_ma============--
--============_-1226152645==_============
Content-Id: <p05010402b6ea5d4348db@[207.202.221.160].0.0>
Content-Type: multipart/appledouble; boundary="============_-1226152645==_D============"

--============_-1226152645==_D============
Content-Transfer-Encoding: base64
Content-Type: application/applefile; name="%InductionMonoidFix.1.cs"
Content-Disposition: attachment; filename="%InductionMonoidFix.1.cs"
 ; modification-date="Fri, 30 Mar 2001 08:29:28 -0800"

AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAPgAAABcAAAAJAAAAVQAAACAA
AAAIAAAAdQAAABBJbmR1Y3Rpb25Nb25vaWRGaXguMS5jc1RFWFRSKmNoAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAlcAaAJXAGhLbQwAAlcAvA==
--============_-1226152645==_D============
Content-Type: application/octet-stream; name="InductionMonoidFix.1.cs"
Content-Disposition: attachment; filename="InductionMonoidFix.1.cs"
Content-Transfer-Encoding: base64

J0Zyb20gU3F1ZWFrMy4xYWxwaGEgb2YgNyBNYXJjaCAyMDAxIFtsYXRlc3QgdXBkYXRl
OiAjMzg0OF0gb24gMzAgTWFyY2ggMjAwMSBhdCA4OjI5OjI4IGFtJyENDSFJbmR1Y3Rp
b25HcmFwaCBtZXRob2RzRm9yOiAnaW5pdGlhbGl6ZScgc3RhbXA6ICdidHIgMy8zMC8y
MDAxIDA4OjE2JyENaW5pdGlhbGl6ZQ0Jc3VwZXIgaW5pdGlhbGl6ZS4NCXNlbGYgYmVF
eHRlbnNpb25hbC4NCW1vbm9pZCBfIE1vbm9pZEdyYXBoIG5ldyBpbml0aWFsaXplIGtl
cm5lbDogQXJyb3cgbmV3Lg0Ja2VybmVsIF8gbW9ub2lkIGFueU9uZSBuYW1lOiAnMCcu
DQljYWNoZSBfIFNldCBuZXdGcm9tOiB7a2VybmVsIEAgbW9ub2lkIGFueU9uZX0hDV1z
dHlsZVsoMTAgMiA1IDE0IDQgMTcgNiAzIDExIDI0IDUgNyA2IDMgNiAxNCAzIDMgNSAz
IDMgMzQpZjFiLGYxLGYxY2JsYWNrOyxmMSxmMWNibGFjazssZjEsZjFjYmxhY2s7LGYx
LGYxY2JsYWNrOyxmMSxmMWNibGFjazssZjEsZjFjYmxhY2s7LGYxLGYxY2JsYWNrOyxm
MSxmMWNibHVlOyxmMSxmMWNibGFjazssZjEsZjFjYmxhY2s7LGYxISAhDQ0=
--============_-1226152645==_D============--
--============_-1226152645==_============--