[squeak-dev] Services, Universes, SqueakMap browser all seem broken in 4.5

tim Rowledge tim at rowledge.org
Wed Apr 9 18:01:59 UTC 2014

On 09-04-2014, at 9:12 AM, Chris Muller <asqueaker at gmail.com> wrote:
> I'm not sure why Services Browser seems to open Preferences Browser,
> maybe THAT's a bug, but Services are definitely used and useful.
> They're so that external frameworks can extend the IDE.  For example,
> that MC History function which you wanted and got delivered to you
> uses the Services framework.  :)
> Check out "Create new service..." on the Methods menu.

OK, good to know it is used. Some class comments etc might have helped to make it more obvious what it is for, some easily findable doc on the swiki would be nice… oh, wait, buried in WorldMenuProvider is #servicesHelpText - which is supposed to appear in some response to #preferencesMenuhelpOnServices. Except that I can’t find any reference to that anywhere, even doing a sources scan, so it looks like there isn’t any way one would see that.

The browser class ‘ServiceBrowserMorph’ seems like it must have been eviscerated since there is only one method, which over-rides the PreferenceBrowserMorph so as to not have the row of buttons in the top pane. That really can’t be what was intended, surely.

There’s an old saying of Adele’s - “if it isn’t documented, it doesn’t exist. If it doesn’t exist, what did we pay you for?” Now, while there may not be much in the way of payment going on, the spirit of the aphorism is really important. No doc means nobody is likely to understand WTF is going on. Which means it won’t get used properly, won’t be debugged and improved properly and before you know it you’ve got Ruby. Or Java. We collectively should hold ourselves to a higher standard on not adding code to the system that isn’t adequately described, and preferably provided with examples and tests.

>> I noticed that Apps->SqueakMap Catalog & Categories sort-of open but after supposedly updating the contents hardly any of the packages you can see via a plain web browser appear in the lists. For example, in the development tools section I see only LispKit & Prolog and not the perhaps 100 other packages.
> That's because they weren't tagged as working in 4.5 and you didn't
> unselect "safely available" packages.

OK, that’s sensible BUT another case where we are failing to provide the user with important documentation in a sensible place. Perhaps nothing more is needed than a pane clearly showing which filtering is in use? Yes, I see the checkboxes in the menu and even a brief mention in the help pop-up (which is a big improvement over the typical app, by the way).

>> And since one of the things I was originally intending to check on was space usage, I’m amazed to see 3Mb of strings (that’s about War and Peace), 9000 MCVersionInfo instances (and similar numbers of MCVersionName + DateAndTime, and Date, and Time). Wow. We’re holding on to too much stuff somewhere...
> Yes, and as you know I already addressed MCVersionInfo bloat (just
> select "flush cached versions and ancestry") but nobody liked it, so
> maybe you can improve it so they will.

Vaguely remembered, mostly forgotten, quickly checked and claims to have cut 2Mb .. and it does indeed reduce the image size on disk. That’s also cut 7000 MCinfo-wotsits so we’re down to just 2500 (why are any left?) and a similar number of DateAndTime/Date/Time, so clearly they are tightly related.
 (Fun aside; inspecting MCVersionInfo allInstances, select one at random, ‘chase pointers’ - and a large list of updates start loading…. adding 13Mb to the image size. Yippee.)

> I also introduced String #empty, but we still have thousands of empty
> ByteStrings in the image, which is kinda useless.
Damn straight. Wonder if I can find them all….

tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Don't be sexist; broads hate that!

More information about the Squeak-dev mailing list