[vwnc] [Fwd: Re: Port of GOODS database client on public StORE]

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] [Fwd: Re: Port of GOODS database client on public StORE]

cdavidshaffer


Stefan Schmiedl wrote:

>
> Hi David,
>
> adventures! copy and paste! red bars galore!
>
> I loaded version 1.9 of your goods port into my image and let the test
> run. All failed, which was nice, as I had no goods server running, not
> even installed. :-)
>
>  
Yes, definitely need a server :-) all good so far
> [snip]
> Then I copied unidb.cfg and changed it to run goods only on port 2006,
> which you use in your tests. Time for "goodsrv unidb" and rerunning
> the test suite. All but one run, testTransactions raises an error.
>  
Bummer.  I've published 1.11 which fixes this bug.


David



_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [Fwd: Re: Port of GOODS database client on public StORE]

Stefan Schmiedl
Hi David,

I tried committing some data structure to your GOODS client (1.11) and
found two problems with the goodsWriteTaggedOn: methods of classes
Boolean and Float. There are methods referenced which are undefined in
VW.

Float>>asIEEE32BitWord
...Stream>>boolean:

Thanks,
s.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

[vwnc] Some GOODS client questions

Stefan Schmiedl
In reply to this post by cdavidshaffer
Hi David,

another question:

KKStringField>>writeField:onStream uses uint16: on the string's characters,
while the extension Character>>goodsWriteTaggedOn: uses nextInt32Put:.
Is this intentional?

Also: What is the idea behind

Object>>= anObject
        ^self == anObject yourself

vs. the original implementation of

        ^self == anObject

Thanks,
s.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Some GOODS client questions

cdavidshaffer
Stefan Schmiedl wrote:
> Hi David,
>
> another question:
>
> KKStringField>>writeField:onStream uses uint16: on the string's characters,
> while the extension Character>>goodsWriteTaggedOn: uses nextInt32Put:.
> Is this intentional?
>  
I don't think it is intentional.  Characters are stored as immediate
values using a "tagged pointer" requiring a 2 byte tag and 32 bits for
the pointer part even though it is just a single 16 bit character.  I
believe that the first two bytes of this 32 bits should be zero so maybe
a more explicit version would write the two zero bytes then the 16 bit
character.  GOODS has a special storage structure for strings and this
client tries to map Smalltalk strings onto that representation.  In that
structure each character is 16 bits....this part seems right.  I have
rewritten the character version as:

Character>>goodsWriteTaggedOn: aStream
    aStream nextPut: 5; nextPut: 0; nextPut: 0; uint16: self asInteger

and everything works as expected.  I will check with Konstantin to get
the final word on character and string representations.
> Also: What is the idea behind
>
> Object>>= anObject
> ^self == anObject yourself
>  
anObject might be a proxy so this ensures that #= properly answers true
in a comparison between an object and the proxy to that object.

David


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [Fwd: Re: Port of GOODS database client on public StORE]

cdavidshaffer
In reply to this post by Stefan Schmiedl
Stefan Schmiedl wrote:

> Hi David,
>
> I tried committing some data structure to your GOODS client (1.11) and
> found two problems with the goodsWriteTaggedOn: methods of classes
> Boolean and Float. There are methods referenced which are undefined in
> VW.
>
> Float>>asIEEE32BitWord
> ...Stream>>boolean:
>
> Thanks,
> s.
>  
1.12 fixes Booleans.

I've added test cases for Booleans, Floats (which fail) and Doubles
(which pass but they're not being stored as immediates so please don't
count on them yet).  The Float/Double solution will take me a bit of
time to sort out and some suggestions would be helpful.  I'm concerned
about the interaction of the conversion algorithm with the -ieeefp VM
option (and corresponding parcel) and I'd like to implement the
conversion in a way that will work correctly with or without this option.

David

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Some GOODS client questions

Stefan Schmiedl
In reply to this post by cdavidshaffer
On Wed, 25 Jun 2008 10:35:26 -0400
"C. David Shaffer" <[hidden email]> wrote:

> > Also: What is the idea behind
> >
> > Object>>= anObject
> > ^self == anObject yourself
> >  
> anObject might be a proxy so this ensures that #= properly answers true
> in a comparison between an object and the proxy to that object.

Ah, yes, that murky proxy stuff I never get my head around.

Thanks for explaining.

Just checking: Did you see the other message with the missing methods
for writing booleans and floats to the database?

s.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [Fwd: Re: Port of GOODS database client on public StORE]

Stefan Schmiedl
In reply to this post by cdavidshaffer
After giving my local fetchmail a swift kick, I now see that
on Wed, 25 Jun 2008 10:44:41 -0400
"C. David Shaffer" <[hidden email]> wrote:

> 1.12 fixes Booleans.

Great, thanks.

> I've added test cases for Booleans, Floats (which fail) and Doubles
> (which pass but they're not being stored as immediates so please don't
> count on them yet).  The Float/Double solution will take me a bit of
> time to sort out and some suggestions would be helpful.  I'm concerned
> about the interaction of the conversion algorithm with the -ieeefp VM
> option (and corresponding parcel) and I'd like to implement the
> conversion in a way that will work correctly with or without this option.

hmmm... I have no experience to offer in that area.

Is there a way to get something working for floats and doubles, even
if it might be slow? I'm not concerned about long-term storage here, I'd
just like to have a way to dump some application objects into the
database. Strictly for experimenting with a GOODS backend to a Seaside
frontend.

Thanks,
s.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [Fwd: Re: Port of GOODS database client on public StORE]

cdavidshaffer
Stefan Schmiedl wrote:

>
>
> hmmm... I have no experience to offer in that area.
>
> Is there a way to get something working for floats and doubles, even
> if it might be slow? I'm not concerned about long-term storage here, I'd
> just like to have a way to dump some application objects into the
> database. Strictly for experimenting with a GOODS backend to a Seaside
> frontend.
>
>  
Just for experimentation you can remove Float>>goodsIsImmediate and
Float>>goodsWriteTaggedOn: and floats will be written as normal object
references.  The (simple) test passes then.

David

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc