[Cuis-dev] (no subject)

Alexandre Rousseau yalexr at gmail.com
Mon Mar 6 16:19:34 PST 2023


This makes perfect sense. Great explanation. Thanks!

On Mon, Mar 6, 2023 at 5:58 PM <ken.dickey at whidbey.com> wrote:

> On 2023-03-06 14:19, Alexandre Rousseau via Cuis-dev wrote:
>
> > Hi. I'm reading the CUIS book. This has been a good, pleasant
> > experience thus far.
>
> Happy to hear that this is the case.
>
>
> > Appending G lists the (package) source for SpaceWar. For various
> > reasons, I decided to enter the contents of that package manually, via
> > the browser, rather than install it by package loading.
> >
> > And this when I stumbled on the last 2 lines of that package:
> >
> > SpaceShip initialize!
> > Torpedo initialize!
> >
> > These 2 lines don't seem to belong to a method.
>
> Smalltalk tries hard to keep source code and the live data and compiled
> runtime in synch so that you can go back and forth between source and
> compiled code and data.  Another way of saying this is that many
> programming languages "compile away" the "metadata".  Smalltalk keeps
> the metadata, so that you get great "source level" inspection and
> debugging.
>
> While the Chunk File Format must be formally "strict" so that it can be
> read in by the VM, it is sometimes helpful to be able to easily read
> Package and Change files ourselves.
>
> In the Code Browser, when you create an #initialize method for a Class,
> the method is invoked when it is compiled.
>
> For packaged code, the method is compiled but is _not_ invoked until all
> the code in the package has been loaded.  This is to be sure that the
> things an #initialize method needs to do have their code installed
> first.
>
> So each Class #initialize method included in a Package is invoked at the
> end of that Package.
>
> So like other Package business (comment, provides, requires) Class
> Initialization is just a bit of mechanics which is "spelled out" in
> text.
>
> HTH,
> -KenD
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230306/7f3ffe5d/attachment.htm>


More information about the Cuis-dev mailing list