<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        > <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">preferably before anything else happens in the startUp list.</span><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Well, you may have to set up some state in the VM (or the OS) first, which might have to be communicated from within the image. Like the display depth. Since we cannot know in general, we have to rely on the modules we have in Squeak, which are classes in the start up list. "as early as possible" should therefore translate to "are early as meaningful" :-) We can surely not recover from *all* kinds of errors with a DoItFirst mechanism. But maybe from quite a lot.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 14.06.2020 23:19:57 schrieb David T. Lewis <lewis@mail.msen.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">Hi Marcel,<br><br>I added you and Tim and Eliot as developers in the SS repository, and anyone<br>else is welcome too, though I did not want to make it global writable since<br>this class is dangerous if you make an error in the wrong place ... ask me how<br>I know ;-)<br><br>The class is lightweight, but I think we should play with it for a while<br>before considering it for trunk. For now, it's easy enough to load it from<br>SqueakSource. Here's the shortcut:<br><br>   Installer ss<br>      project: 'DoItFirst';<br>      install: 'DoItFirst-System-Support'.<br><br>It seems quite possible that a more general argument processing approach<br>may be needed. For example, if I am trying to rescue a broken image, then<br>I want to be able to process a -doit at the earliest possible opportunity,<br>preferably before anything else happens in the startUp list. On the other<br>hand, if I am handling the -filein option, then I might want this to be done<br>much later in the startUp processing.<br><br>So let's just play around with this for a while and see what works :-)<br><br>Dave<br><br>On Sun, Jun 14, 2020 at 07:30:05PM +0200, Marcel Taeumel wrote:<br>> Hi Dave.<br>> <br>> Thank you! Looks good.<br>> <br>> Here are some thoughts:<br>> <br>> - The small footprint of this is awesome!<br>> - Since you assume that "FileDirectory startUp" can work in the case of emergency, we should move it further up in the StartUpList.<br>> - You are likely to need full support of SmallInteger, Delay, Time, and DateAndTime -- so I suggest moving it after those classes in the StartUpList. I am writing this without looking at the current implementation of their #startUp: methods because it should not matter ... conceptionally.<br>> - So, what about putting this into Trunk and having the following elements first in the startup list:<br>> <br>> 1. SmallInteger<br>> 2. Delay<br>> 3. Time<br>> 4. DateAndTime<br>> 5. FileDirectory<br>> 6. DoItFirst<br>> ...<br>> <br>> Best,<br>> Marcel<br>> Am 14.06.2020 19:15:28 schrieb David T. Lewis <lewis@mail.msen.com>:<br>> A few cups of coffee this morning led to some enhancements to my DoItFirst<br>> utility, so I decided to put in on SqueakSource.<br>> <br>> http://www.squeaksource.com/DoItFirst<br>> <br>> It works more or less like this:<br>> <br>> $ squeak squeak.image -- -help<br>> DoItFirst image arguments:<br>> -doit argumentlist "evaluate each argument as a doIt expression"<br>> -evaluate arg "evaluate arg, print result then exit"<br>> -filein filelist "file in each file named in fileList"<br>> -cwd path "set FileDirectory defaultDirectory to path prior to evaluating other options"<br>> -help "print this message"<br>> <br>> <br>> Dave<br>> <br>> <br><br>> <br><br></lewis@mail.msen.com></div></blockquote>
                                        </div></body>