On 3/20/2012 12:29 PM, Frank Goenninger wrote:
Am 20.03.2012 um 15:10 schrieb Kenneth Tilton:
In the above get-sp is supposed to return a triple, the object of which is the datapulse. So the question is why get-sp returns nil?
Yep, true.
You are right, btw, I am so busy I forgot to look at the code when I got home.
hehe, hope that whatever is keeping you busy is kind of cool and worth the sweat ;-)
I just spent ten minutes just looking at the code and, wow, this will take some refreshing and I'll have to run it and trace a bit to see what is up. I'll see if I can get to it tonight.
Would be good ... ;-)
Have you ever run it on any AG4.x? I do know there have been enough changes that I am not surprised we have to get the hood up.
I only do AG4.5. Earlier versions don't work anymore - many API changes. You see a (require :agraph4) instead of just :agraph in my Triple-Cells variant (file defpackage.lisp). AG4.x is the currently distributed stuff, so no reason to do earlier versions.
One thought: did you add the bit that complains about not getting a pulse?
I ran into an error due to sp being nil: (object sp) barfs then, of course.
Since this is early in the life of the cell I can imagine that the intent was to treat a missing !pulse as "uninitialized". In which case I think the error you got was in the caller where upi= tries to compare UPIs and it gets upset over being passed nil. In which case it would just mean they tightened up something and we need to do our own more flexible upi-equal or something.
Ah - yes, that sounds like something worth exploring!
I will probably start by grabbing triple cells off github and start from there just to reduce the variables.
Yep, I see - only thing is to also download AG4.5 server and also AG4.5 clients from Franz and run against that AG4.5 server.
Ugh, and find a Linux machine. I forgot about all that.
Is AG3 still available? You could use it to figure out what should be happening, and confirm my guess that you can just take 3c-cell-pulse and make it look like 3c-pulse: test that the triple is found before returning the object. You may then blow up on testing upi= with nil, but just do my suggested upi-equal.
I took some time to look at the code and I do not see that tcells get their !pulse set when created, nor do I see ensure-current being called necessarily up front, so it might just work if you make this one change.
The danger is that some incompatibility somewhere else is changing the code path so that initialization or ensure-current is different, in which case the above fix would just mask the real problem -- but then it should break again soon enough.
If AG3 can be had for Windows I could give it a try, if not it might be a while before I can get to a Linux set-up.
Falback is a painful email debugging, with more diagnostics.
btw, are you dying on the test build or reopen?
-kt
cheers, ken
Thanks much!
Cheers Frank