Hello all,

After a few days of getting mostly nothing from an evolving
Seaside+Apache setup, I got it running.  A lot suddenly happened on two
machines, and there is no telling what I might have done to cause
trouble on my own.  Anyway, two things deserve mention.  Sorry to throw
these at you, but I think I can explain one of them.

The first problem might have been continuations in action.  I use
streams often and will somewhat frequently read files as I process them,
using #ensure: to close them.  It ends up looking like

  in := FileStream read:fileName text:true.
  [
    "code that might raise an error"

  ] ensure:[
    in close.
  ].

Despite this construction, I ended up with errors trying to open a file,
and ended up closing and reopening Pharo to regain access to it.  In
Dolphin, that was an almost certain sign that I had not properly ensured
the closing of a stream.  Based on recent discussions of #terminate, I
began to suspect that closing the debugger thwarted the ensure block. 
However, I note that

  [ nil halt. ] ensure:[  Transcript show:'Did it'. ].

has been doing pretty much what I expect it to do: close the debugger
and the block executes.  So, I suspect what in fact happened is that a
continuation caused me to re-open the file before it was closed.  I am
starting to like Seaside, but I wish it were based on threads and
synchronization objects, but that's another topic.  Whether or #ensure:
behaves correctly in response to #terminate is something I need to
check.  For now, I will probably read the file into memory and close it
before Seaside gets involved.

The second thing that happened was I ended up with an image in which the
system browser was out of synch.  Clicking on the name of one method
would show source for another.  When I saw that, I assumed the change
log had been clobbered, but not knowing what else to do, I exited w/o
saving and recreated what I had lost in the process.  The recovery was
probably not what you would think.  I had been coding on "the other
machine" (win2k3 image on a blade via remote desktop), and was trying to
integrate a few things into my "real" image (on my local machine) that I
did to get the Seaside app working.  Somewhere in that process, the
browser mess started.  I did something along the lines of firing off a
new browser (probably from a method I was editing) to add a new method. 
I have noted that Pharo gets a little upset, (correctly) warning about
possible changes elsewhere.  The simple explanation is that this time,
it "mis-filed" what I did in that new browser.  Specifically, I (most
likely) overwrote everything and accepted the source of the method.

Sorry for the lengthy and un-confirmed guesswork masquerading as a bug
report.  I'm not sure I _want_ to reproduce it :(

Bill



Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254

Email: [EMAIL PROTECTED]
Tel: (352) 273-6785
FAX: (352) 392-7029


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to