Hi,
I have just entered this list because I want to find out how I can use
Spoon for my next BabyUML experiment.
README:
/Double-click the "spoon.bat" file. This will start the Spoon
processor, which starts a local web server.
/OK/
In the "naiad" folder are components for remote browsing and inspecting
of the Spoon memory from a Squeak 3.9 system (they probably work with
earlier systems as well). To use them, first start the Spoon system as
described above.
/OK
/Then start the "naiad" application with the object memory of your choice.
/Squeak3.9/naiad OK/
Then, file in "naiad.st", and load the "naiad.pr" project.
/OK. Poject with violet playfield (nice :-) ) and a workspace.
/"Hi; here are a few expressions to get you started with remote browsing."
"Make sure you've filed in 'naiad.st' first."
Smalltalk
at: #ExampleWormholeServer
put: (WormholeServer atPort: 9999).
/Looks OK/
//
/ "/Make sure you've started the minimal memory first."
ExampleWormholeServer connectToPort: 7777 atHostNamed: 'localhost'./
Fails. Executing the expression hangs with Wormhole>>peer being nil.
The Spoon image is open in a window, but that window is empty and I
cannot find any menus or command lines.
*Perhaps I should start the /minimal memory/ first, but how?? *
I'm not good at reading instructions, so I may have missed something.
Any pointer will be welcome.
Thanks
--Trygve
This is exciting!
--Trygve
--
Trygve Reenskaug mailto: trygver(a)ifi.uio.no
Morgedalsvn. 5A http://folk.uio.no/trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
Norway
Hi Craig,
I followed the instructions from the Spoon book to download it
and try it. I’m on Mac OS X.
Safari can’t open the page at <http://localhost:8090/3>...
May be something’s missing in the automator script?
Or the server is not started ?
Any idea?
Raymond
Hi all--
I'm working on the system archive for Spoon (see [1]). I'll be
storing "records" in it which have suitable information for
reconstructing past versions of classes and methods (e.g., the format of
a class, or a method's instructions, amongst several other things).
A common operation is looking up the record for a
currently-installed class or method. I'd like for each class and method
to be able to provide a key for looking up the corresponding record,
effectively a hash (what I call a "storage hash"). I think it would be
fine to use the identity hash of a method (along with the normal hash,
for additional range, in 28-bit space via hashMultiply), since methods
change identity completely from version to version. When you recompile
the source for an existing method, the system makes a completely new
compiled method, it doesn't modify the old one.
However, a behavior's state can change in ways that result in a new
version of the behavior as far as the archive is concerned, without
changing the identity of the class object itself (e.g., changing class
name). There are several such state changes, and some of the pieces of
state can refer back to the class itself. Rather than have to perform an
expensive and possibly circular storage hash calculation, I wonder if it
would be reasonable to use the identity hashes of the class and its
superclass, and just have the class change its own identity hash
whenever one of those state changes occurs. It's easy enough to add a
primitive to change the hash bits of an object to the next pseudo-random
hash value.
This brings me to the gazillionth recitation of the classic
Smalltalk hacker's question: Will something bad happen if I do this? :)
(The corollary is that I have indeed already done it and nothing bad
seems to have happened *yet* :). Is there some part of the system I've
overlooked that depends critically on the identity hashes of classes
remaining consistent over some period of time, or can I feel free to
swizzle the hash bits and then just rehash whatever hashed collections
might be using them?
thanks!
-C
[1] http://tinyurl.com/2zvv8o (lists.squeakfoundation.org)
--
Craig Latta
improvisational musical informaticist
www.netjam.org
Smalltalkers do: [:it | All with: Class, (And love: it)]
Craig,
Your book looks great and I look forward to reading more of it. I also
applaud your choice of target audience; the lay reader/user/programmer.
Data processing is essentially simple, the complexity of current SW
products are the results of poor development and probably also
successful marketing strategies.
I strongly applaud your aim at making a Smalltalk as Smalltalk should
have been and hope to be able to add my two bits worth to your effort.
Targeting the lay reader poses makes it hard to discuss the hard parts.
I strongly believe that a new departure such as Spoon /must /be created
on a solid foundation. For example in /chapter twenty-two: imprinting
and modules./ Every object has a unique identity. A copy of the object
can exist in a remote image. But then there are two distinct objects
with the same identity, thus violating the fundamental rule. This rises
a number of fundamental problems that need to be studied in depth,
otherwise we may be building our edifice on shifting sand.
Another concept that needs to be carefully studied is the notion of a
/module/. I take it it is here a module of objects. There is the
/Islands /in /Tweak/, but I find this unsatisfactory because it is not
well defined IMO.
Another comment. /chapter twenty-three: collaboration: /Documentation
is a two-edged sword. It is hard to keep it synchronized with a rapidly
changing program; it is hard to read and often hard to understand
because it is terse and often uses an unfamiliar terminology. I aim at
making the code itself more expressive so that it becomes more readable.
Details:
* The document should be dated.
* estimated completion date: 1 June 2007 is somewhat unlikely
* A few figures would have helped me. As it is its target audience
are pure left-brainers.
* PDF permits a live TOC, e.g., see
http://folk.uio.no/trygver/2007/2007.07.30-RolesAndClasses.pdf
I find this very helpful for navigating in large documents.
-------------------
I hope to get a stable Spoon system up and running so that I can get on
with my own work. I may have Spoon running now as an empty window, but I
cannot communicate with it in any way.
Cheers
--Trygve
--
Trygve Reenskaug mailto: trygver(a)ifi.uio.no
Morgedalsvn. 5A http://folk.uio.no/trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
Norway