Derek Brans | 1 Jul 2003 01:12

Omnibase forgetAllGrabcommandsFrom: problem

CommandHistory class>>forgetAllGrabCommandsFrom:
This method gets executed when saving and quitting the image.  The method seems to enumerate a whole bunch of objects in the image, starting at nil.  It eventually gets to an ODBObjectID and then locks up, waiting for some semaphore.  This is where I find the thread when I interrupt:
 
June 30, 2003 15:45
 
VM: Win32 - Squeak3.4 of 1 March 2003 [latest update: #5170]
Image: Squeak3.5 [latest update: #5180]
 
Semaphore>>critical:
 Receiver: a Semaphore()
 Arguments and temporary variables:
  mutuallyExcludedBlock:  [] in ODBFileStream>>atPosition:getBytesFor:len:
  blockValue:  nil
 Receiver's instance variables:
  firstLink:  nil
  lastLink:  nil
  excessSignals:  0
 
ODBFileStream>>atPosition:getBytesFor:len:
 Receiver: ODBFileStream on: 'C:\Documents and Settings\brans\My Documents\Document Directory\Project...etc...
 Arguments and temporary variables:
  anInteger:  288
  aByteCollection:  a ByteArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
  len:  16
 Receiver's instance variables:
  position:  160
  fileHandle:  StandardFileStream: 'C:\Documents and Settings\brans\My Documents\D...etc...
  pathName:  'C:\Documents and Settings\brans\My Documents\Document Directory\Proj...etc...
  seekingMutex:  a Semaphore()
 
ODBObjectIndexFile>>at:
 Receiver: an ODBObjectIndexFile
 Arguments and temporary variables:
  anInteger:  10
  bytes:  a ByteArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
 Receiver's instance variables:
  stream:  ODBFileStream on: 'C:\Documents and Settings\brans\My Documents\Documen...etc...
  valueLength:  16
  pageSize:  nil
  start:  144
  gcPosition:  nil
  gcBuffer:  nil
  gcCount:  nil
  var1:  nil
 
ODBContainer>>at:
 Receiver: an ODBContainer
 Arguments and temporary variables:
  index:  10
  bytes:  nil
 Receiver's instance variables:
  objectManager:  an ODBObjectManager
  id:  1
  name:  'Default'
  path:  'C:\Documents and Settings\brans\My Documents\Document Directory\Projects...etc...
  indexFile:  an ODBObjectIndexFile
  dbFiles:  an ODBWeakValueIdentityDictionary
  dataFileA:  an ODBObjectStorage
  dataFileB:  nil
  activeDataFile:  an ODBObjectStorage
  byteStorageQueue:  an OrderedCollection()
  queueSize:  0
 

--- The full stack ---
Semaphore>>critical:
ODBFileStream>>atPosition:getBytesFor:len:
ODBObjectIndexFile>>at:
ODBContainer>>at:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ODBObjectManager>>holderAt:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockContext>>ensure:
BlockContext>>valueUnpreemptively
ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
ODBDemandLoader>>getObject
ODBDemandLoader>>perform:withArguments:
ODBReference>>doesNotUnderstand:
[] in CommandHistory class>>forgetAllGrabCommandsFrom:
BlockContext>>on:do:
BlockContext>>ifError:
CommandHistory class>>forgetAllGrabCommandsFrom:
[] in CommandHistory class>>forgetAllGrabCommandsFrom:
[] in BlockContext>>ifError:
Error(Exception)>>handlerAction
Error(Exception)>>signal
Error(Exception)>>signal:
StandardFileStream(Object)>>error:
StandardFileStream(Object)>>primitiveFailed
StandardFileStream>>primSetPosition:to:
StandardFileStream>>position:
[] in ODBFileStream>>atPosition:getBytesFor:len:
[] in Semaphore>>critical:
BlockContext>>ensure:
Semaphore>>critical:
ODBFileStream>>atPosition:getBytesFor:len:
ODBObjectIndexFile>>at:
ODBContainer>>at:
ODBObjectManager>>holderAt:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockContext>>ensure:
BlockContext>>valueUnpreemptively
ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
ODBDemandLoader>>getObject
ODBDemandLoader>>perform:withArguments:
ODBReference>>doesNotUnderstand:
[] in CommandHistory class>>forgetAllGrabCommandsFrom:
BlockContext>>on:do:
BlockContext>>ifError:
CommandHistory class>>forgetAllGrabCommandsFrom:
CommandHistory class>>resetAllHistory
CommandHistory class>>shutDown:
[] in SystemDictionary>>send:toClassesNamedIn:with:
OrderedCollection>>do:
SystemDictionary>>send:toClassesNamedIn:with:
SystemDictionary>>processShutDownList:
SystemDictionary>>snapshot:andQuit:embedded:
SystemDictionary>>snapshot:andQuit:
TheWorldMenu>>saveAndQuit
TheWorldMenu>>doMenuItem:with:
[] in MenuItemMorph>>invokeWithEvent:
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
-- and more not shown --
 
Derek Brans
Nerd on a Wire
Web design that's anything but square
http://www.nerdonawire.com
mailto: brans <at> nerdonawire.com
phone: 604.874.6463
toll-free: 1-877-NERD-ON-A-WIRE

Ned Konz | 1 Jul 2003 01:53

Re: Omnibase forgetAllGrabcommandsFrom: problem

On Monday 30 June 2003 04:12 pm, Derek Brans wrote:
> CommandHistory class>>forgetAllGrabCommandsFrom:
>
> This method gets executed when saving and quitting the image.  The
> method seems to enumerate a whole bunch of objects in the image,
> starting at nil. 

> ODBReference>>doesNotUnderstand:
> [] in CommandHistory class>>forgetAllGrabCommandsFrom:

Three possible fixes come to mind:

1. Define ODBReference>>isMorph to return false (don't know if this is 
appropriate).

2. rewrite forgetAllGrabCommandsFrom: to look something like the 
rather ugly:

(((Smalltalk systemNavigation allImplementorsOf: #isMorph)
	asSet collect: [ :ea | ea actualClass ]) remove: Object; yourself)
		do: [ :cls | cls allSubInstancesDo: [ :ea |
			ea isMorph ifTrue: [ ea removeProperty: #undoGrabCommand ] ].

This assumes, of course, that you don't have objects that dynamically 
decide they're Morph-like.

3. Make sure that there are no ODBReference objects around when 
CommandHistory class does its shutdown (probably by sticking 
something before CommandHistory on the shutdown list that can get rid 
of all the ODBReference objects).

--

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE

Doug Way | 1 Jul 2003 01:57

[FIX] newMethodNoCatSel-asm (one of the fixes is not needed?)


Both the annotationPanes fix and the June 27 fix look good, but I'm not 
seeing any bug with the June 25 fix.

 > 25 June 2003:
 > -update 5262 caused that if you don't have a method category selected and
 > try to enter a new method, you get an error.

Without your fix, if I have the '-- all --' category selected and I 
enter a new method, that works fine.  If I really don't have any method 
category selected, then I'm editing the class template and I should not 
be able to enter a new method.  This was true before update 5262 as 
well.  So there doesn't appear to be a bug here.  (After I file-in your 
fix, the behavior appears unchanged, so perhaps I'm missing something here.)

- Doug Way

Magistrello Alejandro (SFA) wrote:

>this is modified preamble:
>
>"Change Set:		newMethodNoCatSel-asm
>Date:			27 June 2003
>Author:			Alejandro Magistrello
>
>27 June 2003:
>-open a browser, select a class, select a method without selecting a method
>category, now enter a new method with some sintactic error in the code, your
>code is cleared and no way to return to it.
>
>25 June 2003:
>-update 5262 caused that if you don't have a method category selected and
>try to enter a new method, you get an error.
>this tries to fix that
>
>-set the preference #annotationPanes to true, open a browser and select a
>method on the instance side of a class, now change to the class side, note
>that the annotationPane is not updated.
>added self changed: #annotation to Browser.metaclassIndicated:
>"!
>
>  
>
>>regards,
>>   Alejandro
>>    
>>
> <<newMethodNoCatSel-asm.6.cs.gz>> 
>
>  
>
>------------------------------------------------------------------------
>
>
>  
>

bvukmer | 1 Jul 2003 02:32
Favicon

[FIX] BFAVFix ( [closed] rolled into latest release )

See release 1.23 of the BFAV ( coming soon on a SqueakMap near you... )

< I'm a bug-fixing machine! >

This post brought to you by the BugFixArchiveViewer, a handy tool that
makes it easy to comment on proposed fixes and enhancements for Squeak. 
For more information, check out the Web page for the BugFixArchiveViewer
project: http://minnow.cc.gatech.edu/squeak/3214 

< I'm a bug-fixing machine! >

bvukmer | 1 Jul 2003 02:34
Favicon

[ENH] BFAVAsyncAndOther-nk ( [closed] rolled into latest release )

See release 1.23 ( coming soon to a SqueakMap near you... )

< I'm a bug-fixing machine! >

This post brought to you by the BugFixArchiveViewer, a handy tool that
makes it easy to comment on proposed fixes and enhancements for Squeak. 
For more information, check out the Web page for the BugFixArchiveViewer
project: http://minnow.cc.gatech.edu/squeak/3214 

< I'm a bug-fixing machine! >

Joshua 'Schwa' Gargus | 1 Jul 2003 02:48
Picon
Favicon

Re: Squeak 3.6 distributions names (was Re: Should SUnit be part of Basic?)

On Mon, Jun 30, 2003 at 09:34:44PM +0200, nbo <at> ensm-douai.fr wrote:
> Hi,
> 
> This thread makes me remember a discussion I had with somebody about Squeak
> distribution names. If I rember well, the plan is to have two distributions a
> big one with all/most of packages/modules/projects and a small one.

Actually, three (eventually): Minimal, Basic, and Full.

> That's fine for me. My point here is about naming. I think that the full image
> should be the one to be downloaded by newbies or people that just want to
> discover what is Squeak. This is why I think it should be named "default".

I actually like the other names better, as they are more descriptive than "default".

Joshua

> 
> Noury
> 
> 
> -------------------------------------------------
> This mail sent through IMP: http://horde.org/imp/
> 
> 

Ned Konz | 1 Jul 2003 03:10

Re: Trouble getting updates w/o Squeak

On Monday 30 June 2003 11:05 am, Jazzmynn wrote:
> I having problems "batch downloading" Squeak updates.
>
> On the Swiki page "Updating with no net access"
> (http://minnow.cc.gatech.edu/squeak/24), a reference is made to an
> "updates.list" file
> (http://squeak.cs.uiuc.edu/Squeak2.0/updates/updates.list).

There's also
http://update.squeakfoundation.org/external/updates/updates.list

> When I try to access this file in a web browser, I never get
> connected.

I believe you're running into browser sniffing.

Assuming you're running a browser that lets you change the User-Agent 
string (or have wget or curl or something like that), just set your 
User-Agent to something that starts with "Squeak".

wget -U Squeak3.6alpha-5294 
http://update.squeakfoundation.org/external/updates/updates.list

wget -U Squeak3.6alpha-5294 
http://update.squeakfoundation.org/external/updates/5294SMCardUndeclared-nk.cs

> Does anyone have a suggestion to accomplish what I did "in the Good
> Olde Days" short of running Squeak?

From within Squeak, you'd just do this, of course, to save the files 
on your hard drive:

Utilities readServerUpdatesThrough: 10000 saveLocally: true 
updateImage: false

--

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE

bvukmer | 1 Jul 2003 03:36
Favicon

[ANN] BugFixArchiveViewer 1.23 on SqueakMap

Check it out!

Ned provided these great fixes and enhancements:
- enabled load-updates as a background process 
- enabled keeping the various local archives around in memory until all
BFAV windows are closed
- enabled keeping an archive around indefinitely by opening a Keeper
morph from the tiny-menu
- added toggle for groups/individual-posts list view
- improved appearance and resizing of text fields pane
- added support for sorting the archive in different ways (not in menu
yet)
- removed Undeclared refs

And I put in a few fixes and enhancements:
- The BFAV now automatically does a sanity check for gaps in the lists
of posts in the local archive, and attempts to load the missing posts,
every time that it loads updates.  
- There is also a new tiny-menu option called "validate local archive"
that kicks off the same process.
- The "reload post" bug should be fixed with this release.  
- There were a number of minor enhancements for the KCP archive viewer 
unfortunately the sanity check for gaps is still a little buggy.
- There are new Harvester-friendly mouse menu options for viewing:
     * unreviewed contributions
     * reviewed contributions that are not yet approved
     * approved contributions that are not yet in the update stream

There is some cool new functionality in this release, thanks to Ned,
Daniel , Tim, Alejandro and Doug for code, testing, bug reports and
helpful feedback.

< I'm a bug-fixing machine! >

This post brought to you by the BugFixArchiveViewer, a handy tool that
makes it easy to comment on proposed fixes and enhancements for Squeak. 
For more information, check out the Web page for the BugFixArchiveViewer
project: http://minnow.cc.gatech.edu/squeak/3214 

< I'm a bug-fixing machine! >

John M McIntosh | 1 Jul 2003 03:42
Picon

new mpeg3Plugin.bundle pending

I've a new os-x mpeg3Plugin.bundle pending that has a few tuning  
changes and it should run a
bit faster. However I need a few testers to confirm it's better than  
the one out there now.

So if you want to do some benchmarking, then drop me an email and I'll  
send you a new mpeg3Plugin.bundle.

--
======================================================================== 
===
John M. McIntosh <johnmci <at> smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===

Peter Gadzinski | 1 Jul 2003 05:38

Jon's Web Browser code?

Hello,

         I'm interested in playing around with the web browsers built in
Squeak. I know about scamper. I ran across one developed by John Hylands
listed in the "All Projects" page (http://minnow.cc.gatech.edu/squeak/1406)
on the squeak swiki. The code links are broken though. Is there another
place I could get the code? I've tried contacted Mr. Hylands himself
(Jon <at> huv.com) with no luck.

Peter Gadzinski


Gmane