[squeak-dev] Why not just get rid of the sources file entirely (was: The Inbox: System-dtl.1277.mcz)
tim at rowledge.org
Wed Jan 19 01:05:30 UTC 2022
I remember this idea when Dave Leibs & I were messing around with early VW packages stuff a *very* long time go. The downside that has bitten me is that you get screwed when you move an image; not so much on the same machine so long as the paths are fully qualified but if you copy to a different machine... blech. You're actually worse off then because there is no guarantee the new target machine has anything like the same directory layout.
I'd prefer to see source strings directly attached to each method, with changes backed up to the changes log or something akin to Chris' revision history server, with an easy way to drop those source strings for any deployment use. Given that a working image will grow to over 100Mb very quickly if you install anything like Seaside, RB, Postgres, SIXX and so on - an extra 10Mb for the sources to be local is nothing.
> On 2022-01-18, at 4:44 PM, David T. Lewis <lewis at mail.msen.com> wrote:
> On Tue, Jan 18, 2022 at 12:26:03PM -0800, Eliot Miranda wrote:
>> ASs a post-script I like what we did in VisualWorks for parcels. We
>> changes the format of a file pointer so that it could include an arbitrary
>> file index and offset, so one could encode index 27, offset 1000000, etc.
>> Then when a parcel was loaded its source file was added to the source files
>> array, an extensible OrderedCollection of files, and the methods in that
>> parcel had their source pointers swizzled to index the relevant source
>> file. Hence loading packages didn't pollute the changes file. I'm not
>> suggesting we go this route for Saueak but if we did I would preserve
>> Squeak's version support and save to a new package all previous versions of
>> methods. Again, because the source is external there's no space overhead
>> in the image for supporting conveniently browsable versions. And with both
>> binary loading and compilation the swizzling of source pointers can be done
>> as each compiled method is being instantiated; it does not imply a second
>> pass over the loaded methods to adjust their pointers.
> I like this idea. There's no particular need for SourcesFiles to be of size two.
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Klingon Code Warrior:- 5) "Specs are for the weak and timid!"
More information about the Squeak-dev