[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

BigBang

An image is created with a very small contrains on contents and structure.
The contents of an image is the most conditionant to apply shape changes.
Creating image by gestation let you change base classes (in shape and behavior) without any risk on your running image.

The very first "crystal" of an image is built with a very small number of inter-related objects; defining the basical rules of the image.

The minimum image contents is defined in FenixImage class
initializeDuringGenesis
    " Initialize the receiver's default contents during the genesis.
    This message can be send during the bigBang to initialize default classes and basic environment globals. "

    self
        newClass: #ProtoObject subclassOf: self rootClass category: 'Kernel-Objects';
        newClass: #Object subclassOf: #ProtoObject category: 'Kernel-Objects';
        newClass: #UndefinedObject subclassOf: #Object category: 'Kernel-Objects';
        newClass: #PseudoContext
            subclassOf: self rootClass
            instanceVariableNames: 'fixed fields never accessed from smalltalk '
            category: 'Kernel-Methods';
            yourself.

    (self globalAt: #Object) ensureClassPool.
    (self globalAt: #Object) classPool
        addAll: { #DependentsFields->nil. #EventsFields->nil }.