For those who got to wondering about that strange quietness in module land -
About a week ago I tried to compile a shopping list of stuff we still need to make modules. I mailed some people that had shown some sort of interest. Anyway, this became a fast and furious discussion, that became a mailing list at sqmodules@lists.advantive.com, courtesy of Stephen Pair.
I thought this was a good time to announce it here, because some people were asking questions. So anyone seriously interested in module, and not minding the smoke, sparks and rough edges of really raw code is invited to join.
A bit about what's going on - Andreas Raab has convinced us that it'd be better to move to strong modules now, mostly in order to simplify the code and the mental model of how things should work. This requires some major changes to the tool set, and he's just released a first version of a module aware browser. This includes nice support for automatically keeping track of dependencies.
Stephen Pair and I thought up a nice and simple way of passing around the names of modules for people to load - just make it a Url. Select something like loadmodule:/People/dvf/GraphAlgorithms in any text pane, bring up the menu, url-it, and that's it, you have a module. I'll post that here soon.
Stephen Pair's selectors spaces are also a hot topic of discussion, and he's been refining the ideas and working out an implementation, to help round out modules later.
If you want more detail, and especially if you're already working on modules (CraigL, Torge,you there?) you're welcome to read the archives and join us there. Note that traffic's been somewhat heavy lately.
Of course whenever something's ready for prime time, things will be presented here.
The original reason for the separate discussion was that modules were not popular and not easily popularized. When modules become a little more mainstream, the discussion should probably return to squeak-dev.
Daniel
Daniel,
you're welcome to read the archives and join us there.
Where is 'there' :-)
So anyone seriously interested in module, and not minding the smoke, sparks and rough edges of really raw code is invited to join.
I sent a request to subscribe to sqmodules@lists.advantive.com and am waiting for approval.
Thanks for your efforts.
Cheers,
PhiHo.
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of danielv@netvision.net.il Sent: Saturday, June 15, 2002 6:31 PM To: squeakfoundation@lists.squeakfoundation.org; squeak-dev@lists.squeakfoundation.org Subject: [Modules] mailing list and activities
For those who got to wondering about that strange quietness in module land -
About a week ago I tried to compile a shopping list of stuff we still need to make modules. I mailed some people that had shown some sort of interest. Anyway, this became a fast and furious discussion, that became a mailing list at sqmodules@lists.advantive.com, courtesy of Stephen Pair.
I thought this was a good time to announce it here, because some people were asking questions. So anyone seriously interested in module, and not minding the smoke, sparks and rough edges of really raw code is invited to join.
A bit about what's going on - Andreas Raab has convinced us that it'd be better to move to strong modules now, mostly in order to simplify the code and the mental model of how things should work. This requires some major changes to the tool set, and he's just released a first version of a module aware browser. This includes nice support for automatically keeping track of dependencies.
Stephen Pair and I thought up a nice and simple way of passing around the names of modules for people to load - just make it a Url. Select something like loadmodule:/People/dvf/GraphAlgorithms in any text pane, bring up the menu, url-it, and that's it, you have a module. I'll post that here soon.
Stephen Pair's selectors spaces are also a hot topic of discussion, and he's been refining the ideas and working out an implementation, to help round out modules later.
If you want more detail, and especially if you're already working on modules (CraigL, Torge,you there?) you're welcome to read the archives and join us there. Note that traffic's been somewhat heavy lately.
Of course whenever something's ready for prime time, things will be presented here.
The original reason for the separate discussion was that modules were not popular and not easily popularized. When modules become a little more mainstream, the discussion should probably return to squeak-dev.
Daniel
I wrote:
you're welcome to read the archives and join us there.
Where is 'there' :-)
http://lists.advantive.com/listinfo/sqmodules
I sent a request to subscribe to sqmodules@lists.advantive.com and am
waiting for approval.
Wrong, that's for posting to the list (and it's moderated).
it's good to know that 'modules' is still alive.
Cheers,
PhiHo.
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of PhiHo Hoang Sent: Sunday, June 16, 2002 10:48 AM To: squeak-dev@lists.squeakfoundation.org; squeakfoundation@lists.squeakfoundation.org Subject: RE: [Modules] mailing list and activities
Daniel,
you're welcome to read the archives and join us there.
Where is 'there' :-)
So anyone seriously interested in module, and not minding the smoke, sparks and rough edges of really raw code is invited to join.
I sent a request to subscribe to sqmodules@lists.advantive.com and am waiting for approval.
Thanks for your efforts.
Cheers,
PhiHo.
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of danielv@netvision.net.il Sent: Saturday, June 15, 2002 6:31 PM To: squeakfoundation@lists.squeakfoundation.org; squeak-dev@lists.squeakfoundation.org Subject: [Modules] mailing list and activities
For those who got to wondering about that strange quietness in module land -
About a week ago I tried to compile a shopping list of stuff we still need to make modules. I mailed some people that had shown some sort of interest. Anyway, this became a fast and furious discussion, that became a mailing list at sqmodules@lists.advantive.com, courtesy of Stephen Pair.
I thought this was a good time to announce it here, because some people were asking questions. So anyone seriously interested in module, and not minding the smoke, sparks and rough edges of really raw code is invited to join.
A bit about what's going on - Andreas Raab has convinced us that it'd be better to move to strong modules now, mostly in order to simplify the code and the mental model of how things should work. This requires some major changes to the tool set, and he's just released a first version of a module aware browser. This includes nice support for automatically keeping track of dependencies.
Stephen Pair and I thought up a nice and simple way of passing around the names of modules for people to load - just make it a Url. Select something like loadmodule:/People/dvf/GraphAlgorithms in any text pane, bring up the menu, url-it, and that's it, you have a module. I'll post that here soon.
Stephen Pair's selectors spaces are also a hot topic of discussion, and he's been refining the ideas and working out an implementation, to help round out modules later.
If you want more detail, and especially if you're already working on modules (CraigL, Torge,you there?) you're welcome to read the archives and join us there. Note that traffic's been somewhat heavy lately.
Of course whenever something's ready for prime time, things will be presented here.
The original reason for the separate discussion was that modules were not popular and not easily popularized. When modules become a little more mainstream, the discussion should probably return to squeak-dev.
Daniel
Hi Stephen,
Wrong, that's for posting to the list (and it's moderated).
Just a point of clarification...the modules list is not moderated. But, it does have an administrivia filter that will catch messages that look like administrative requests.
Thanks for the clarification. The daemon did scare me though ;-)
Cheers,
PhiHo
danielv@netvision.net.il wrote:
Stephen Pair and I thought up a nice and simple way of passing around the names of modules for people to load - just make it a Url. Select something like loadmodule:/People/dvf/GraphAlgorithms in any text pane, bring up the menu, url-it, and that's it, you have a module. I'll post that here soon.
Cool!
Perhaps "squeakmodule:" would be a better name, before we go too far with it? You can do other things with modules than load them, and it also seems nice to mention "squeak" in the name in case such a URL escapes into a non-Squeak context.
-Lex
Hi Squeakers,
I'm attempting to build a headless vm for installation on a Linux web server. This machine is command-line only - no X Windows installed - so the standard precompiled distribution doesn't work. Therefore I've tried to build from scratch using this procedure:
1. Download the 3.2-3 release from Ian Piumarta's site.
2. Fire up a 3.2gamma-4881 image on my Mac OS X box and use VMMakerTool to generate unix vm sources.
3. Copy the resulting source tree to the Linux server.
4. Create a bld directory as suggested in the README
5. run ../platforms/unix/config/configure --without-x
6. Hack the resulting Makefiles to add the -DHEADLESS flag to DEFS.
7. make
Compilation of sqXWindows.c fails because of numerous syntax errors, which seem to be related to certain declarations being skipped because HEADLESS was defined.
I also tried the sources from the SourceForge CVS repository, but that didn't work either. Compilation went OK aside from some minor glitches, but linking failed because hundreds of symbols were undefined. It looks like they might by named primitives, but I lack the Squeak-Fu to be able to tell.
Some questions for the VM gurus out there:
1. Is this a reasonable thing to be attempting to do? The presence of --without-x in the configure script and #ifdef HEADLESS in the sources suggest that it is, but I suspect that in practice very few people actually use these options, so they might not be properly maintained.
2. Is there some magic ingredient that I'm missing somewhere? Some switch, flag or button that needs to be pushed?
3. The SF sources seemed to be a bit happier with -HEADLESS than Ian's release. Is there some stable tag that I can check out of the CVS repository? The downloads page only seem to have Windows releases and HEAD seems to be 3.3alpha, which is a little too bleeding edge for deployment.
If there's a HOWTO on this somewhere, I'll be happy to RTFM.
Thanks,
Colin
Colin Putney Whistler.com
I strongly suspect this is simply bit-rot. I made some headless unix VMs last year by doing pretty much exactly what you have described. If you're in a position to handle the errors yourself, go ahead and do it and then submit the changes to Ian (or me, or Lex, I suppose) for inspection. Most of them are likely to be pretty simple I think.
Personally I'd prefer to see the VMs able to work headless without having to have a separate version. The image should simply not call #beDisplay and thereby never start up all the display/keyboard/etc stuff. Of course, the image would need to be able to deal with loading a script file without having already installed a World....
tim
On Mon, Jun 17, 2002 at 01:34:53PM -0700, Colin Putney wrote:
Hi Squeakers,
I'm attempting to build a headless vm for installation on a Linux web server. This machine is command-line only - no X Windows installed - so the standard precompiled distribution doesn't work.
As Tim pointed out, this is probably bit rot. But for your purposes, you can probably get by just fine by using the "-headless" option when you run the VM. In other words, you can use a normal Unix Squeak VM with all the X window libraries linked into it. As long as you run it with the "-headless" option, none of the libraries get used, and everything should be fine. Happily, I do not have a Linux box with no X windows installed to actually confirm this, but it really should be OK.
If that proves not to be the case, you may be stuck with fixing the bit rot, or figuring out how to build a static linked VM which will not care if the X run time libraries are installed on the target machine.
Dave
On Monday, June 17, 2002, at 07:35 PM, David T. Lewis wrote:
As Tim pointed out, this is probably bit rot. But for your purposes, you can probably get by just fine by using the "-headless" option when you run the VM. In other words, you can use a normal Unix Squeak VM with all the X window libraries linked into it. As long as you run it with the "-headless" option, none of the libraries get used, and everything should be fine. Happily, I do not have a Linux box with no X windows installed to actually confirm this, but it really should be OK.
If that proves not to be the case, you may be stuck with fixing the bit rot, or figuring out how to build a static linked VM which will not care if the X run time libraries are installed on the target machine.
Bolstered by the knowledge that what I was attempting *should* work, I went ahead and fixed the bit rot. Or at least, I made progress toward that end. I now have a squeak binary that throws a "primitive failed" error when initializing the network. I want to track that down before submitting a patch...
Building squeak statically would be a good idea if I had another Linux box with the X libraries on it. Alas I do not. It's probably just as well - fixing the problem is the better solution anyway.
Thanks for the help.
Colin
As long as you run it with the "-headless" option, none of the libraries get used, and everything should be fine.
They do get loaded, though.
Happily, I do not have a Linux box with no X windows installed to actually confirm this, but it really should be OK.
Well, unset DISPLAY; squeak -headless *.image worked for me, but it doesn't do anything (of course).
Incidently, is there a simple way to some kind of command-line workspace from squeak a-la Self?
/Tommy
__________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com
Sorry for the absence: I had to go on vacation for two weeks.
On Mon, 17 Jun 2002, Colin Putney wrote:
I'm attempting to build a headless vm for installation on a Linux web server. This machine is command-line only - no X Windows installed - so the standard precompiled distribution doesn't work. Therefore I've tried to build from scratch using this procedure:
- Download the 3.2-3 release from Ian Piumarta's site.
I've put "fix -DHEADLESS" at the top of my to-do list.
Cheers,
Ian
Folks,
This weekend, in spite of the significant risk of dragging Squeak kicking and screaming back into the mid-1970s, I thought I'd have some fun with terminal emulation and network protocols (telnet in particular).
If you have a set of Unix 3.2-2 (or devel) sources and are willing to suck in a new sqUnixSocket.c and recompile then you might like to play with this:
http://www-sor.inria.fr/~piumarta/squeak/goodies.html
Kilometrage may vary on Mac/Win depending on precisely what, if anything, they do with out-of-band (aka "urgent-mode") data arriving at a socket. (Nothing should break horribly but you might see occasional garbage bytes due to data mark commands being misinterpreted as client data and/or connections might get closed prematurely when the remote end sends OOB data -- kind of annoying in Emacs, since ^G causes precisely this to happen. ;)
Cheers,
Ian
PS: There's a screenshot at: http://www-sor.inria.fr/~piumarta/squeak/devel/telnet.gif
PPS: If anyone knows how to get a SystemWindow to resize according to its contents (rather than trying to force its contents to resize according to its bounds) then send me some email. It's driving me crazy.
Hello Ian,
On your page, you say: "(I already know about TelnetMachine, thanks. But what I'm talking about is a real telnet client with real VT102 and xterm emulation that I can use to run Emacs with ANSI terminal colours in font-lock-mode and all that jazz.)"
Had you seen this before you set out on your project?
http://lists.squeakfoundation.org/pipermail/squeak-dev/2002-March/011592.htm...
Felix's Vt100 implementation is interesting because it does not rely on any changes to the VM.
For anyone who has tried both- does Ian's or Felix's feel faster? (not to pit them against eachother or anything)
Can't wait to try it! :)
Aaron
Aaron,
Had you seen this before you set out on your project?
http://lists.squeakfoundation.org/pipermail/squeak-dev/2002-March/011592.htm...
Err, nope. Oops. Nevermind... ;-)
(I only did it for fun anyway.)
Felix's Vt100 implementation is interesting because it does not rely on any changes to the VM.
It's not the terminal emulation that needs changes, it's the socket handling. When telnetd decides something "urgent" has happened (e.g., when the remote process receives INTR) it sends back an out-of-band data byte which is not picked up by the regular read()/recv() machinery. The VM changes are needed to recover this information without which telnet protocol cannot be implemented properly.
For anyone who has tried both- does Ian's or Felix's feel faster? (not to pit them against eachother or anything)
Mine is HOPELESSLY SLOW. I've not spent any time at all trying to make the display go fast. (E.g., it redraws the entire line whenever a character is written.)
Has anybody tried running a VT100/102 test suite with Felix's?
Can't wait to try it! :)
Can't wait to look at what Felix has done. :)
Cheers,
Ian
Felix's Vt100 implementation is interesting because it does not rely on any changes to the VM.
Has anybody tried running a VT100/102 test suite with Felix's?
I checked it (in 3.3alpha (#4798)) with:
back in March but don't seem to have a record of the results anywhere....
-Andy-
For anyone who has tried both- does Ian's or Felix's feel faster? (not to pit them against eachother or anything)
Mine is HOPELESSLY SLOW. I've not spent any time at all trying to make the display go fast. (E.g., it redraws the entire line whenever a character is written.)
I just tried it and the display is noticably faster than mine.
Has anybody tried running a VT100/102 test suite with Felix's?
I just tried this too. Not to pit them against each other or anything, but it fails about half of the cursor movement and screen feature tests, and all of the VT52 compatibility mode and VT100 "scroll bug" tests. I guess it's apples and oranges.
Anyone know if Felix is still maintaining his emulator?
Regards,
Ian
How do I programmatically make the selected item in a listmorph appear?
On Tuesday 02 July 2002 03:26 pm, Jerome Chan wrote:
How do I programmatically make the selected item in a listmorph appear?
selectionIndex: will scroll an item into view. If you can figure the index you need, this will work.
Jerome,
Try this:
PluggableListMorph>>scrollToSelection | range index | index := scroller submorphs indexOf: selectedMorph ifAbsent:[^self]. ((selectedMorph bounds top - scroller offset y) >= 0 and:[ (selectedMorph bounds bottom - scroller offset y) < bounds height]) ifTrue:[^self]. range _ self leftoverScrollRange. scrollBar value: (range > 0 ifTrue: [((index-1 * selectedMorph height) / self leftoverScrollRange) truncateTo: scrollBar scrollDelta] ifFalse: [0]). scroller offset: -3 @ (range * scrollBar value)
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Jerome Chan Sent: Wednesday, July 03, 2002 12:26 AM To: squeak-dev@lists.squeakfoundation.org Subject: Scrolling selected item in listmorph to view?
How do I programmatically make the selected item in a listmorph appear?
Ian Piumarta wrote:
Has anybody tried running a VT100/102 test suite with Felix's?
I just tried this too. Not to pit them against each other or anything, but it fails about half of the cursor movement and screen feature tests, and all of the VT52 compatibility mode and VT100 "scroll bug" tests. I guess it's apples and oranges.
you are right. I was happy when I had some simple terminal stuff working. I tried your 'telnet.cs': wow! Works like a charm (only the cursor keys are not recognized, don't know why).
Very nice!
Anyone know if Felix is still maintaining his emulator?
no, I don't. Ned Konz used it for a Serial Terminal Emulator and made some fixes. I would need much more than a weekend ...
Cheers,
felix
On Mon, 8 Jul 2002, Felix Franz wrote:
working. I tried your 'telnet.cs': wow! Works like a charm
You're making me blush. ;)
Anyone know if Felix is still maintaining his emulator?
no, I don't.
In which case I hope you don't mind too much that I spent another weekend hacking on telnet and terminals...
For anyone who might find it useful, there's a new version here:
http://www-sor.inria.fr/~piumarta/squeak/goodies.html
and a new screenshot to go with it:
http://www-sor.inria.fr/~piumarta/squeak/devel/telnet2.gif
The telnet stuff should now work on Mac and Windows too (assuming they implement Socket>>setOption:value: correctly) but please let me know if you try it on these platforms, since I haven't.
I tweaked performance in TtyMorph a little: it now runs at 20% the speed of the real xterm. It also comes with its own font now, infinitely nicer than Atlanta.
Oh yes, I also added support for "connecting" to a pseudo tty. IOW, it now supports talking to a local interactive shell (that thinks it's connected to a real terminal [which it is, although the terminal is being emulated entirely in Squeak ;-] and so will work just like any login shell should: job control, window tcset/getattr work properly [so Emacs, less and friends will happily run], etc, etc...).
For the shell to work you need AsynchFilePlugin support and the (brand new) PseudoTTYPlugin. (It just so happens they're bundled in the new 3.2-3 Unix VMs. ;)
Hope you like it. Enjoy!
Ian
PS: The PTYPlugin should work with any OS that provides Unix98-compliant ptys (I've tested it on GNU and Solaris). Cygwin has them, but plain Windows almost certainly doesn't. (MacOS [version 9 and earlier] hasn't a rat's chance. ;)
PPS: If there's a real interest in this stuff then I could be persuaded to add some pages to a swiki explaining it all.
On Tue, Jul 09, 2002 at 10:23:32AM +0200, Ian Piumarta wrote:
For anyone who might find it useful, there's a new version here:
PPS: If there's a real interest in this stuff then I could be persuaded to add some pages to a swiki explaining it all.
Yes please!
Ian, this is great stuff!
I vote that this be put into the main image. We have a web browser, email client, and IRC client in the main image now...I'd argue that a telnet client (and terminal emulation) is quite a bit more useful to more people than an IRC client (not suggesting that IRC be removed).
- Stephen
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Ian Piumarta Sent: Tuesday, July 09, 2002 4:24 AM To: squeak-dev@lists.squeakfoundation.org Subject: Weekend Project Update [was: log me in!]
On Mon, 8 Jul 2002, Felix Franz wrote:
working. I tried your 'telnet.cs': wow! Works like a charm
You're making me blush. ;)
Anyone know if Felix is still maintaining his emulator?
no, I don't.
In which case I hope you don't mind too much that I spent another weekend hacking on telnet and terminals...
For anyone who might find it useful, there's a new version here:
http://www-sor.inria.fr/~piumarta/squeak/goodies.html
and a new screenshot to go with it:
http://www-sor.inria.fr/~piumarta/squeak/devel/telnet2.gif
The telnet stuff should now work on Mac and Windows too (assuming they implement Socket>>setOption:value: correctly) but please let me know if you try it on these platforms, since I haven't.
I tweaked performance in TtyMorph a little: it now runs at 20% the speed of the real xterm. It also comes with its own font now, infinitely nicer than Atlanta.
Oh yes, I also added support for "connecting" to a pseudo tty. IOW, it now supports talking to a local interactive shell (that thinks it's connected to a real terminal [which it is, although the terminal is being emulated entirely in Squeak ;-] and so will work just like any login shell should: job control, window tcset/getattr work properly [so Emacs, less and friends will happily run], etc, etc...).
For the shell to work you need AsynchFilePlugin support and the (brand new) PseudoTTYPlugin. (It just so happens they're bundled in the new 3.2-3 Unix VMs. ;)
Hope you like it. Enjoy!
Ian
PS: The PTYPlugin should work with any OS that provides Unix98-compliant ptys (I've tested it on GNU and Solaris). Cygwin has them, but plain Windows almost certainly doesn't. (MacOS [version 9 and earlier] hasn't a rat's chance. ;)
PPS: If there's a real interest in this stuff then I could be persuaded to add some pages to a swiki explaining it all.
Whoops! Zurgle users beware...the TeletypeWindow class isn't happy with something after Zurgle is loaded into the image!
I get a rollback: MessageNotUnderstood: contents: in TeletypeWindow>>initialize
It appears to be the line: label contents: 'teletype'
in the initialize: method.
It works fine on an image without Zurgle...after I apply Zurgle, it stops working.
On Wed, 10 Jul 2002, Kevin Fisher wrote:
It appears to be the line: label contents: 'teletype'
in the initialize: method.
Try replacing that with:
super setLabel: 'Teletype'
which *might* work a little better (and please let me know if that is ideed the case).
Thanks!
Ian
On Thu, Jul 11, 2002 at 12:57:15AM +0200, Ian Piumarta wrote:
On Wed, 10 Jul 2002, Kevin Fisher wrote:
It appears to be the line: label contents: 'teletype'
in the initialize: method.
Try replacing that with:
super setLabel: 'Teletype'
which *might* work a little better (and please let me know if that is ideed the case).
Thanks!
Ian
Well, it gets me past the original rollback, but I get hit again with the same rollback in TeletypeWindow>>openOn:labelled:
label contents: aString.
I can "fix" this by doing the same as above, but then I get bitten by this line, a few lines below it:
h _ labelArea extent y + tty extent y + 26.
...it claims labelArea doesn't exist.
On Wed, 10 Jul 2002, Kevin Fisher wrote:
I can "fix" this by doing the same as above, but then I get bitten by this line, a few lines below it:
h _ labelArea extent y + tty extent y + 26.
...it claims labelArea doesn't exist.
I fixed some geometry problems last night and there are no more references to labelArea in my current code. If you can hang on for an hour or so I'll make the new code available...
Ian
On Thu, Jul 11, 2002 at 01:23:58AM +0200, Ian Piumarta wrote:
On Wed, 10 Jul 2002, Kevin Fisher wrote:
I can "fix" this by doing the same as above, but then I get bitten by this line, a few lines below it:
h _ labelArea extent y + tty extent y + 26.
...it claims labelArea doesn't exist.
I fixed some geometry problems last night and there are no more references to labelArea in my current code. If you can hang on for an hour or so I'll make the new code available...
Ian
Sure thing, that would be great! Happy to test it out...
Folks,
3.2-4 is in the usual place.
This one is mainly for the BSD folks. It fixes some portability issues in the PTY plugin (I've built and tested it on GNU/Linux, NetBSD and Solaris, and I'm hopeful that it will compile out of the box and work on almost any Unix now), ties up the last of the loose ends in BSD build and fixes occasional core dumps when AsyncFiles are left open across snapshot.
Since 3.2-3:
* PtyPlugin rewritten to use either /dev/ptmx or openpty(), as availablility permits. (It turns out that ptmx isn't available in BSD.)
* Minor tweaks to build process (thanks to Steve Elkins for spotting the problem).
* A couple of buglets fixed in AsynchFilePlugin (the *class*, not the support code) to prevent core dumps when AsyncFiles are left open across snapshot. (I'll send the changes to John Mc who was, I believe, the original author. [Please correct me if this isn't so. In any case, a fileout is in my devel/fixes dir.] The modifications are already in the new 3.2-4 Unix VM source/binaries [because I've had several core dumps from these bugs recently].)
* Pre-compiled binary for NetBSD.
That's it. Enjoy! (BSD fanatics in particular. ;)
Ian
On Thu, 11 Jul 2002, Ian Piumarta wrote:
On Wed, 10 Jul 2002, Kevin Fisher wrote:
...it claims labelArea doesn't exist.
I fixed some geometry problems last night and there are no more references to labelArea in my current code. If you can hang on for an hour or so I'll make the new code available...
I've filed it out in the usual place. This is mainly for two reasons: (i) It might let Kevin zurgle further with it and (ii) the 3.2-4 VM comes with a new (*much* more portable) PTY plugin requiring a couple of small (but significant) changes in the class PseudoTTY.
I've pulled PseudoTTY out of the "telnet" changeset to keep the two independent. (The protocol of the former hasn't [and isn't likely to] change, but the primitives are now slightly *different* so you have to have the one that corresponds to your version of the VM... or else! ;)
The full story is at:
http://www-sor.inria.fr/~piumarta/squeak/goodies.html
Sorry for any confusion.
FWIW, the current code fixes the drift-by-1-pixel resize bug in the top-level window when changing the label (turns out to be a bug in ProportionalLayout when hResizing is set to #shrinkWrap [so I just avoid having any layoutProperties at all and the bug shuts up ;]) and has put the VT options menu on the yellow button, as somebody recently requested. Reverse video might behave a little more logically too. Also the TelnetProtocol now understands a weirdo command that the BSD server was sending (and which did cause some problems).
Have fun!
Ian
Thanks Ian!
I gave things a quick test and the TeletypeWindow works jus fine with Zurgle now. The only gotcha is that Zurgle hides the SystemWindow menu so there's no obvious way to get at it! Still, it's easy to open shell by evaluating: TeletypeWindow open owner newShell
Thanks very much!!
On Thu, Jul 11, 2002 at 05:50:45AM +0200, Ian Piumarta wrote:
On Thu, 11 Jul 2002, Ian Piumarta wrote:
On Wed, 10 Jul 2002, Kevin Fisher wrote:
...it claims labelArea doesn't exist.
I fixed some geometry problems last night and there are no more references to labelArea in my current code. If you can hang on for an hour or so I'll make the new code available...
I've filed it out in the usual place. This is mainly for two reasons: (i) It might let Kevin zurgle further with it and (ii) the 3.2-4 VM comes with a new (*much* more portable) PTY plugin requiring a couple of small (but significant) changes in the class PseudoTTY.
I've pulled PseudoTTY out of the "telnet" changeset to keep the two independent. (The protocol of the former hasn't [and isn't likely to] change, but the primitives are now slightly *different* so you have to have the one that corresponds to your version of the VM... or else! ;)
The full story is at:
http://www-sor.inria.fr/~piumarta/squeak/goodies.html
Sorry for any confusion.
FWIW, the current code fixes the drift-by-1-pixel resize bug in the top-level window when changing the label (turns out to be a bug in ProportionalLayout when hResizing is set to #shrinkWrap [so I just avoid having any layoutProperties at all and the bug shuts up ;]) and has put the VT options menu on the yellow button, as somebody recently requested. Reverse video might behave a little more logically too. Also the TelnetProtocol now understands a weirdo command that the BSD server was sending (and which did cause some problems).
Have fun!
Ian
Whoops, one more small bug!
I notice that if you fire off a shell from the TeletypeWindow, and then minimize the window, the connection to the shell gets broken (this is using the 3.2.3 VM).
On Thu, 11 Jul 2002, Kevin Fisher wrote:
Whoops, one more small bug!
I notice that if you fire off a shell from the TeletypeWindow, and then minimize the window, the connection to the shell gets broken (this is using the 3.2.3 VM).
This is because the window gets sent #delete in both situations and doesn't try to distinguish between the two (yet -- it's been on the to-do list for a while). It just needs to notice #passivate/#activate and keep a flag somewhere saying whether to close the connection on #delete. I haven't looked to see if there are complications w.r.t. collapsing then closing the collapsed titlebar.
Ian
On Thu, 11 Jul 2002, Kevin Fisher wrote:
The only gotcha is that Zurgle hides the SystemWindow menu so there's no obvious way to get at it!
TeletypeMorph>>mouseDown: evt
evt hand newKeyboardFocus: self. (evt yellowButtonPressed) ifTrue: [(owner isKindOf: TeletypeWindow) ifTrue: [owner offerWindowMenu] ifFalse: [self offerVTMenu]]
Ian
Perfect, that does the trick!
On Thu, Jul 11, 2002 at 02:33:46PM +0200, Ian Piumarta wrote:
On Thu, 11 Jul 2002, Kevin Fisher wrote:
The only gotcha is that Zurgle hides the SystemWindow menu so there's no obvious way to get at it!
TeletypeMorph>>mouseDown: evt
evt hand newKeyboardFocus: self. (evt yellowButtonPressed) ifTrue: [(owner isKindOf: TeletypeWindow) ifTrue: [owner offerWindowMenu] ifFalse: [self offerVTMenu]]
Ian
Folks,
It's in the usual place [1]. Lots and lots of changes. I've tried to make sure I addressed all the issues that arose in 3.2-4; if I missed some then I apologise (and please prod me gently via email, thanks!).
The release notes are appended.
Enjoy!
Ian
[1] http://www-sor.inria.fr/~piumarta/squeak/ Note that the 3.2-4952 image is also available as .tgz and .rpm from there.
Major changes since 3.2-4:
VM:
Option `-fullscreen' should work better.
New option: `-iconic' which does the obvious thing.
New option: `-notimer' disables use of itimers and reverts to gettimeofday() for low-res clock.
Selection handling support for compatibility with latest Qt (based on code from Ned Konz -- thanks!).
Delicious new browser support code from Bert Freudenberg. (Tested under Mozilla on GNU/Linux PPC, but YKMV.)
Minor tweaks to closing the X connection via OSProcPlug. (Thanks to Dave Lewis for spotting the problem.)
Minor tweak in sound output to cope with incomplete writes (which shouldn't happen, but some ALSA drivers just don't want to respect the rules). (Thanks to Lex for this one.)
Broken versions of Solaris that lack snprintf() should no longer cause compile/link errors.
As a failsafe, sqGnu.h now defines (empty) all xx_REG symbols on platforms it doesn't recognise. (Thanks to Tommy Thorn for spotting the problem.)
aio can now manage fd 0 (stdin).
Plugins:
RePlugin is now bundled with the VM.
Minor tweaks to PseudoTTYPlugin to avoid potential SEGV from stale AsyncFile handles.
PTYPlugin is now external by default, to ease the task of compiling on systems that have broken (or no) pty support. (There might still be problems on old [pre-2.8] Solaris, Irix and HP/UX. Not having accounts on such machines I cannot really test it all.)
SqueakFFIPrims is now enabled and bundled with the VM as an external plugin (and various patches for PPC have been submitted to the libffi folks as a result ;). Hopefully this will allow Unix Squeakers to drink tea on the croquet lawn along with everyone else.
Build:
Build process now uses a configure script generated from the VERY LATEST autoconf (2.53) and libtool (1.4.2) that I downloaded _direct_ from gnu.org and lovingly installed by hand (rather than using the broken ones that were in pkgsrc and which created practically unusable configure scripts in 3.2-4). Many associated diverse changes in the *.{ac,in} files due to incompatibilities in the new autoconf. (Obviously this only applies to `configure' as shipped from our factory. If you regenerate `configure' for yourself then everything depends on your autoconf [not mine] and your [fictitious] warranty is immediately void. ;) configure now recognises `--with-gnu-awk[=gawk]' to force gawk even on systems where mawk is the default. PLEASE use this flag if you have problems rather than complaining to me about gnuify not working.
configure now recognises `--with-browser' to include browser support (npsqueak) in the build. (Experimental, not properly integrated with the install targets, and not [yet] quite the final thing that Bert and I are aiming for. Use at your own risk.)
SqueakFFIPrims is enabled conditionally on ffi.h and libffi.so (the latter becomes a library dependency of the plugin). The header and library must be in your compiler's default search paths.
Support:
inisqueak now looks first for `squeak.{image,changes}' in the libdir, to let sysadmins link to the preferred VM. If more than one VM is in libdir then inisqueak presents a list and lets you choose. It also has some options: -b avoid all interaction (exit status => success) -l list available VM versions -n install but don't start up
Manual page updated to include the new options, etc.
Prebuilt distributions:
I can't be bothered rebooting my powerbook to make a NetBSD/macppc distribution. (In the whole time that I have been making BSD binaries available, only two people ever downloaded them.) If I'm wrong (maybe hundreds of BSD fans are secretly downloading them from uiuc?) then tell me and I'll get off my rear end and build one.
Hi Ian--
Great!
I can't be bothered rebooting my powerbook to make a NetBSD/macppc distribution. (In the whole time that I have been making BSD binaries available, only two people ever downloaded them.) If I'm wrong (maybe hundreds of BSD fans are secretly downloading them from uiuc?) then tell me and I'll get off my rear end and build one.
Well, not running NetBSD I don't know if this matters, but many people continue to download the OpenBSD distribution I made way back when for 2.9...
-C
-- Craig Latta improvisational musical informaticist craig@netjam.org www.netjam.org/resume Smalltalkers do: [:it | All with: Class, (And love: it)]
Hi Craig,
Well, not running NetBSD I don't know if this matters, but many people continue to download the OpenBSD distribution I made way back when for 2.9...
If santa leaves several GB of disk in my xmas stocking then maybe I'll get round to installing it (one day). ;)
FWIW, FreeBSD would be a more likely possibility for me in the short term. (The SF compile farm has one which I could use.)
Cheers, Ian
Ian Piumarta ian.piumarta@inria.fr wrote:
Folks,
It's in the usual place [1]. Lots and lots of changes. I've tried to make sure I addressed all the issues that arose in 3.2-4; if I missed some then I apologise (and please prod me gently via email, thanks!).
The release notes are appended.
Enjoy!
Wow, and thanks Ian! It is sooo nice that the Un*x VM is up to par with the rest of the bunch. Btw, I just can't help asking - what is the current status on the Jitter project? I have been discussing Squeak and performance on the SWESUG list lately and someone asked about it.
See you at OOPSLA.
regards, Göran
Folks,
This message concerns only people who want to use the browser plugin.
Due to utter stupidity on my part I managed to include Bert's old browser code in the 3.2-5 release. I've cured the problem, but if you wanted to build a browser plugin and you've already downloaded the sources then please obtain a fresh copy.
In atonement for my sins I have also updated the binary releases (tgz and rpms) to include prebuilt browser plugin VMs for GNU/Linux-{PPC,386} and Solaris.
Bert has also written a script to help inform the various browsers of the existence of the Squeak plugin. After installing the tgz or rpm, run
/usr[/local]/libsqueak/npsqueakregister
as root. (This should be part of the RPM postinstall. Maybe in 3.2-6...)
Note also that the browser plugin is enabled by default when building from source. To turn it off, use
.../configure --without-npsqueak
Many thanks to Bert for spotting my idiotic mistake so fast.
Sorry for any confusion.
Ian
Hi Goran,
Btw, I just can't help asking - what is the current status on the Jitter project? I have been discussing Squeak and performance on the SWESUG list lately and someone asked about it.
J4 kind of ran out of steam about a year ago. I recently picked up the pieces and ripped out and resedigned vast tracts of it to make "j5" with the two fundamental goals being:
- a framework desgined from the ground up to do adaptive compilation based on run-time type feedback (previous incarnations simply tried to apply more aggressive versions of the interpreter's "heuristic" optimisations, kind of like how VW does things now); and
- zero runtime overhead due to GC complications. (These were a significant source of performance loss in earlier versions due to lots of ridiculous indirections through "gc-safe" structures to keep raw oops out of native code. Now I just remap the code cache: much simpler [and essentially zero-overhead ;-].)
The new framework was finished about a month ago with the non-inlining compiler producing correct code for PPC and 386 on Unix (it comes to about 26,000 lines of C++ in total). Since then I've been tidying up the code (why have four different kinds of list when one will do? ;), making it work with the Win32 VM (with valuable initial help from Andreas) and fixing the last of the obscure problems in dependency/cache management and their interaction with the GC. (A very smart move was giving a rough copy to Andreas who immediately started hammering on it hard: the first thing he tried was adding inst vars to Morph. ;) Right now it feels pretty solid, much more so than any of the previous incarnations. (I trust it implicitly with my working image.)
I was hoping to have the simple inlining compiler working in time for OOPSLA (since that would be the point at which sigificant performance gains would become evident) but I'm not sure if other responsibilities are going to allow the time for that to happen. (Amonst other things, it's probably time I started thinking about writing my OOPSLA workshop presentation. ;)
Performance of the non-inlining compiler is currently around the same, or a few 10s of % better than, the regular interpreter. The primary goal of the NIC is to minimise the compilation time of "instrumented" native code, rather than reduce the execution time of that code. (Pauses due to dynamic compilation are currently undetectable.)
But one has to understand the context of this "parity" performance. The NIC is performing _no_ optimisation whatsoever, and is _ignoring_ all of the tricks that the bytecode interpreter does (and that earlier jitters did). E.g., the NIC has no notion whatsoever of "special" or "arithmetic" sends. Absolutely every message really is sent (even for arthmetic, Point accessors, #value, etc.) and every send goes through a profiling cache (which records destinations and receiver types, and characterises the amount of polymorphism at each send site). There are no global method or `at' caches either. (The at-cache is subsumed into the inline caches by the optimising compilers.) What's important is the combination of type information that this code gathers in the poymorphic caches, and the characteristics (primitive index, etc.) of the corresponding destinations. The inlining compilers then use this information to do way better optimisation than any heuristically-driven optimiser (based on special selector indices, common sequences of bytecodes, or whatever) could ever do. (A secondary benefit is that selectors are completely insignificant. Renaming #+ or #at: or #value incurs no performance penalty at all.)
I'm going to wallow in the current "contraction" phase for a while longer, tidying things up here and there, before extending the IR with the information required to do simple inlining. (By "simple" I mean where there are no collapsed scopes -- i.e., inlining completely only those things [like primitives, quick responses, and trivial methods] that we know will never need to activate and which contain no interior synchronisation points [where an interrupt check might try to swap process, for example].) Once that's been bled dry I'll start thinking about inlining nontrivial methods, along with with all the "dynamic deoptimisation" headaches that come with it.
See you at OOPSLA.
Indeed! (I even got in at the "Priceline Hyatt" for $50. :^)
Regards,
Ian
You are a gem. Thanks *so much*.
Best,
Mike
On Wednesday 16 October 2002 01:17 am, Ian Piumarta wrote:
Folks,
It's in the usual place [1]. Lots and lots of changes. I've tried to make sure I addressed all the issues that arose in 3.2-4; if I missed some then I apologise (and please prod me gently via email, thanks!).
On Wednesday 16 October 2002 04:22 am, Ian Piumarta wrote:
In atonement for my sins I have also updated the binary releases (tgz and rpms) to include prebuilt browser plugin VMs for GNU/Linux-{PPC,386} and Solaris.
Thanks for making this, Ian! I really appreciate your hard work.
The RPM for Linux-386 requires libffi.so . But I'm having a hard time finding a libffi RPM.
The libffi page at cygnus points to sources at sourceware.cygnus.com, which seems not to exist.
I was able to find a mirror of Cygnus and get the 1.20 sources.
But I suspect the CVS may be more recent; however, I can't connect to the Cygnus CVS server.
Any suggestions? Path to real libffi CVS server? Just use 1.20?
Thanks,
Hi Ned,
The RPM for Linux-386 requires libffi.so . But I'm having a hard time finding a libffi RPM.
So did/do most Linux distributors. ;)
The libffi page at cygnus points to sources at sourceware.cygnus.com, which seems not to exist.
It ceased to exist shortly after Red Hat bought cygnus.
I was able to find a mirror of Cygnus and get the 1.20 sources.
This will probably work for you on 386, but is a non-starter for PPC (and maybe other architectures too).
But I suspect the CVS may be more recent; however, I can't connect to the Cygnus CVS server.
That's because Red Hat, having bought Cygnus and moved all the sourceware over to redhat.com, omitted (rather annoyingly) to update the URLs in many of the sourceware project home pages.
The trick is to convert all occurrences of "sourceware.cygnus.com" to "sources.redhat.com". (Why oh why they didn't just alias the old name in the DNS I have no idea.)
Any suggestions? Path to real libffi CVS server? Just use 1.20?
The libffi home page suggests
cvs -d :pserver:anoncvs@sourceware.cygnus.com:/cvs/libffi login (password is ``anoncvs'') cvs -d :pserver:anoncvs@sourceware.cygnus.com:/cvs/libffi co libffi
so try this instead:
cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/libffi login (password is ``anoncvs'') cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/libffi co libffi
This version is ostensibly `2.00 beta'. (Note that the library and header it generates will not work with any Unix Squeak release prior to 3.2-5.)
Note also that the sources on the CVS server won't compile on PowerPC (modulo the maintainer applying the patches I sent). I am happy to send my CVS diffs (or the patched tree in its entirety) to anyone who wants to compile libffi on a SYSV-based PowerPC machine (e.g., GNU/Linux).
Regards,
Ian
Folks,
A while back Ned Konz sent me some useful stuff related to the TeletypeMorph:
- dynamic search for monospaced fonts for the prefs menu
- compatibility code to make TtyMorph work with his keyboard prefs (for moving control/alt/etc. keys around)
I've sucked the first into my tty project and also taken this opportunity to fix (once and for all I hope) a very nasty synchronisation bug that would cause drawing errors at random times under heavy load (think: `top -d 0.1' ;-). Smooth scrolling should be, err, smoother and all-round performance a little better as a result too.
(No changes to the PTYPlugin.)
A new telnet.cs along with Ned's changesets for keyboard prefs are available here:
http://www-sor.inria.fr/~piumarta/squeak/goodies.html
Enjoy!
Ian
Ian Piumarta ian.piumarta@inria.fr writes:
It's in the usual place [1].
Thanks, Ian. It (sources downloaded after you said to download them again) built (following the instructions for the impatient in the README) pretty well on OpenBSD 3.1 and started an image. Just a few things I think I should mention...
First the build failure...
/bin/sh -ec 'cd nps; make VM_VERSION=3.2-5 SQ_DIR=/usr/local/lib/squeak' gcc -c -I./include -O2 -fPIC -Wall -DVM_LIBDIR="/usr/local/lib/squeak/3.2-5" npsqueak.c In file included from npsqueak.c:20: include/npapi.h:129: X11/Xlib.h: No such file or directory npsqueak.c:30: X11/Xlib.h: No such file or directory npsqueak.c:31: X11/Intrinsic.h: No such file or directory npsqueak.c:32: X11/StringDefs.h: No such file or directory *** Error code 1
sge:/usr/local/src/Squeak-3.2-5/build:31$ diff -u nps/Makefile.ORIG nps/Makefile --- nps/Makefile.ORIG Thu Oct 17 00:09:58 2002 +++ nps/Makefile Thu Oct 17 00:09:18 2002 @@ -3,7 +3,7 @@
############ Customize flags here #######################
-INC = -I./include +INC = -I./include -I/usr/X11R6/include CC = gcc CFLAGS = $(INC) -O2 -fPIC -Wall LD = gcc sge:/usr/local/src/Squeak-3.2-5/build:32$
And a couple of other items:
* Saw "******** AUDIO DISABLED (no support found for: auto)" go by in the configure step. I've hacked sound in before, I'll see if I can repeat it and report back.
* Saw "******** disabling SqueakFFIPrims" go by in the configure step, don't remember if it worked before.
Cheers, Steve
Hi Steve,
On 17 Oct 2002, Steve Elkins wrote:
First the build failure...
gcc -c -I./include -O2 -fPIC -Wall -DVM_LIBDIR="/usr/local/lib/squeak/3.2-5" npsqueak.c include/npapi.h:129: X11/Xlib.h: No such file or directory
Like I mentioned in the release notes (this is your payback for using the impatient persons' README ;) the npsqueak stuff still isn't properly integrated: it assumes gcc and gld, it assumes X11 includes in your default search path, etc... Bert and I have to work a little more at making it a responsible citizen w.r.t. configure etc.
- Saw "******** AUDIO DISABLED (no support found for: auto)" go by in the configure step. I've hacked sound in before, I'll see if I can repeat it and report back.
I'm not sure what OpenBSD has in the way of sound. On Linux this would default to OSS (if /dev/dsp exists and is writable), otherwise it checks for NAS and finally for Sun Audio. If you can determine that one of the above applies also to OpenBSD then you can configure using
.../configure --with-audio={oss,nas,sun}
as appropriate.
- Saw "******** disabling SqueakFFIPrims" go by in the configure step, don't remember if it worked before.
This is because you don't have libffi. (And no, it didn't work before, because 3.2-5 is the first release in which it's enabled at all. ;)
The configure warnings are perfectly normal and harmless -- they mean simply that your VM will have neither sound nor FFI callouts. (The latter you could cure by installing libffi from source -- see about 4 or 5 messages back in this thread.)
Regards, Ian
On Wed, 16 Oct 2002 14:14:17 +0200 (MET DST), Ian Piumarta ian.piumarta@inria.fr wrote:
Indeed! (I even got in at the "Priceline Hyatt" for $50. :^)
Ian (and others interested),
Looks like I'm going to be doing OOPSLA this year as well. I'm in the process of trying to get the Squeak VM ported to my Axis board (http://developer.axis.com).
Unfortunately, VM stuff and GCC are not even close to my specialties, so I would really appreciate it if some VM guys can help me at OOPSLA to get it working.
Its a fully headless platform, but its a custom processor, so it requires a custom version of GCC (which I have). It is running the standard 2.4.9 kernel, though, so hopefully that will help.
I'll be hanging out at Camp Smalltalk for most of the week... Any volunteers from the VM experts?
Later, Jon
-------------------------------------------------------------- Jon Hylands Jon@huv.com http://www.huv.com/jon
Project: Micro Seeker (Micro Autonomous Underwater Vehicle) http://www.huv.com
I'll be there monday night till thursday mid-morning and will be happy to offer any help I can provide.
tim
Jon Hylands jon@huv.com wrote:
On Wed, 16 Oct 2002 14:14:17 +0200 (MET DST), Ian Piumarta ian.piumarta@inria.fr wrote:
Indeed! (I even got in at the "Priceline Hyatt" for $50. :^)
Ian (and others interested),
Looks like I'm going to be doing OOPSLA this year as well. I'm in the process of trying to get the Squeak VM ported to my Axis board (http://developer.axis.com).
Hey!
That is a swedish company! :-)
regards, Göran
On Fri, 18 Oct 2002 11:07:38 +0100, goran.hultgren@bluefish.se wrote:
That is a swedish company! :-)
Yeah, I know... It cost me $70 to have the board shipped to Canada when I bought it from them...
Later, Jon
-------------------------------------------------------------- Jon Hylands Jon@huv.com http://www.huv.com/jon
Project: Micro Seeker (Micro Autonomous Underwater Vehicle) http://www.huv.com
On Thu, 17 Oct 2002 19:39:57 -0400, Jon Hylands jon@huv.com wrote:
Looks like I'm going to be doing OOPSLA this year as well. I'm in the process of trying to get the Squeak VM ported to my Axis board (http://developer.axis.com).
Well, scratch that idea... :-(
On the plus side, I got a job, so I don't need to find one at OOPSLA. Of course, now I need the little money I have right now to live until the job starts, so no OOPSLA...
With any luck, I'll be at Smalltalk Solutions next spring, and I might even have it ported by then :-)
Later, Jon
-------------------------------------------------------------- Jon Hylands Jon@huv.com http://www.huv.com/jon
Project: Micro Seeker (Micro Autonomous Underwater Vehicle) http://www.huv.com
Jon Hylands jon@huv.com is claimed by the authorities to have written:
Well, scratch that idea... :-(
Err, good luck and bad luck respectively. Or conversely. Or something. If all else fails, sell one of the kids :-)
tim
Hi Jon,
With any luck, I'll be at Smalltalk Solutions next spring and I might even have it ported by then :-)
What about the shrinking script and headless image ;-)
On the plus side, I got a job.
Congratulation, all the best.
Cheers,
PhiHo.
On Sat, 2 Nov 2002 03:18:42 -0500, "PhiHo Hoang" phiho.hoang@rogers.com wrote:
What about the shrinking script and headless image ;-)
I'll be doing some more work on those in a while. I'll be packing up my machine shop until probably after New Years in a few weeks, so I need to do some machining of some stuff while I still have it out.
Later, Jon
-------------------------------------------------------------- Jon Hylands Jon@huv.com http://www.huv.com/jon
Project: Micro Seeker (Micro Autonomous Underwater Vehicle) http://www.huv.com
squeak-dev@lists.squeakfoundation.org