jv_dragonfly.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 25 Jan 2016 14:59:48 +0000
changeset 13 b3d0f59702b7
parent 12 6e775bad5027
child 17 54798ae989cc
permissions -rw-r--r--
Added VMData and VMOffsets shared pools. VMData does not contain all the required things. More will be added as required.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:dragonfly' }"
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
LibraryDefinition subclass:#jv_dragonfly
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'* Projects & Packages *'
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!jv_dragonfly class methodsFor:'description'!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
10
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    15
excludedFromPreRequisites
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    16
    "list packages which are to be explicitely excluded from the automatic constructed
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    17
     prerequisites list. If empty, everything that is found along the inheritance of any of
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    18
     my classes is considered to be a prerequisite package."
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    19
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    20
    ^ #(
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    21
    )
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    22
!
588414eaacff Added CodeObjectSection>>size. Polished tests a bit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    23
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
mandatoryPreRequisites
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    "list packages which are mandatory as a prerequisite.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
     This are packages containing superclasses of my classes and classes which
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
     are extended by myself.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
     This method is generated automatically,
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
     by searching along the inheritance chain of all of my classes."
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    ^ #(
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
        #'stx:libbasic'    "ArrayedCollection - superclass of CompiledCodeObjectSection"
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    )
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
referencedPreRequisites
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "list packages which are a prerequisite, because they contain
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
     classes which are referenced by my classes.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
     We do not need these packages as a prerequisite for compiling or loading,
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
     however, a class from it may be referenced during execution and having it
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
     includes explicit checks for the package being present.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
     This method is generated automatically,
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
     by searching all classes (and their packages) which are referenced by my classes."
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    ^ #(
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
        #'jv:dragonfly/udis86sx'    "UDIS86 - referenced by CompiledCodeObjectSection>>inspector2TabAssembly"
13
b3d0f59702b7 Added VMData and VMOffsets shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    49
        #'stx:libcomp'    "ObjectFileLoader - referenced by VMData class>>initialize"
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    )
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
subProjects
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    "list packages which are known as subprojects.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
     The generated makefile will enter those and make there as well.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
     However: they are not forced to be loaded when a package is loaded;
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
     for those, redefine requiredPrerequisites."
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    ^ #(
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
        #'jv:dragonfly/udis86sx'
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    )
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
! !
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
!jv_dragonfly class methodsFor:'description - contents'!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
classNamesAndAttributes
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    "lists the classes which are to be included in the project.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
     Each entry in the list may be: a single class-name (symbol),
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
     or an array-literal consisting of class name and attributes.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    ^ #(
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
        "<className> or (<className> attributes...) in load order"
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
        CompiledCodeObject
9
40f9438e9de3 Updated after rename of section type to section format. Implemented section allocation routines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    75
        CompiledCodeObjectSectionFormat
13
b3d0f59702b7 Added VMData and VMOffsets shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    76
        VMOffsets
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
        #'jv_dragonfly'
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
        CompiledCodeObjectSection
13
b3d0f59702b7 Added VMData and VMOffsets shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    79
        VMData
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
        (CompiledCodeObjectTests autoload)
13
b3d0f59702b7 Added VMData and VMOffsets shared pools.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 12
diff changeset
    81
        (ObjectFileLoaderTests autoload)
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    )
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
extensionMethodNames
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    "list class/selector pairs of extensions.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
     A correponding method with real names must be present in my concrete subclasses"
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    ^ #(
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
        CompiledCode codeObject
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
        CompiledCode inspector2TabMachineCode
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    )
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
! !
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
!jv_dragonfly class methodsFor:'documentation'!
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
version_HG
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    ^ '$Changeset: <not expanded> $'
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
! !
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100