stx_libcomp.st
author Claus Gittinger <cg@exept.de>
Wed, 27 Apr 2016 14:16:58 +0200
changeset 3789 13eb679d2e21
parent 3779 cda866352727
child 3823 016b214c9d35
permissions -rw-r--r--
#OTHER by cg x

"
 COPYRIGHT (c) 2006 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libcomp' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_libcomp
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_libcomp class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2006 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    Package documentation:

    This library contains the Smalltalk parser and bytecode compiler,
    and related support classes (AST representation).

    This compiler is used when code is changed within the running IDE or application.
    It generates bytecode methods, which are further translated to machine code by the VM,
    when first executed. 
    This is not to be confused with the stc-compiler, which generates plain machine code, which
    is packaged in compiled class libraries. Usually, end user applications are deployed as 
    stc-compiled binary code. And only patches or dynamically generated code uses bytecode methods.
"
! !

!stx_libcomp class methodsFor:'description'!

excludedFromPreRequisites
    ^ #(
        #'exept:ctypes'
        #'stx:libbasic2'    "Text - referenced by Parser>>selectorCheck:for:positions: "
        #'stx:libtool'    "Tools::ToDoListBrowser - referenced by Parser>>selectorCheck:for:positions: "
        #'stx:libview'    "Color - referenced by SyntaxHighlighter>>markParenthesisAt: "
        #'stx:libview2'    "ValueHolder - referenced by Parser>>addDoItTemporary: "
        #'stx:libwidg'    "Workspace - referenced by Parser>>primary_identifier "
        #'stx:libwidg2'    "TextBox - referenced by WarningCompilationErrorHandler>>error:position:to:from: "
        #'stx:goodies/sunit'
    )

    "Modified: / 16-06-2011 / 15:33:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

mandatoryPreRequisites
    "list all required mandatory packages.
     Packages are mandatory, if they contain superclasses of the package's classes
     or classes which are extended by this package.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies
     (the browser has a menu function for that)
     However, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPreRequisites method."

    ^ #(
        #'stx:libbasic'    "Query - superclass of Parser::AskForVariableTypeOfUndeclaredQuery "
    )
!

referencedPreRequisites
    "list all packages containing classes referenced by the packages's members.
     This list can be maintained manually or (better) generated and
     updated by looking for global variable accesses
     (the browser has a menu function for that)
     However, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPreRequisites method."

    ^ #(
    )
! !

!stx_libcomp class methodsFor:'description - compilation'!

additionalBaseAddressDefinition_bc_dot_mak
    "this is an optional definition, which (if present) may speed up the dll-loading a little
     on win32 systems."

    ^ '
# see stdHeader_bc for LIBCOMP_BASE
LIB_BASE=$(LIBCOMP_BASE)
'
!

stcOptimizationOptions
    ^ '+optinline +optinline2 +inlinenew'

    "Created: / 23-08-2006 / 11:27:31 / cg"
!

stcWarningOptions
    ^ '-warnNonStandard -warnUnused'
! !

!stx_libcomp class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        Breakpoint
        BreakpointDescription
        BreakpointQuery
        CompilationErrorHandler
        CompilationErrorHandlerQuery
        DoNotShowCompilerWarningAgainActionQuery
        DoNotShowCompilerWarningAgainForThisMethodActionQuery
        DoNotShowCompilerWarningAgainForThisReceiverSelectorActionQuery
        InstrumentationContext
        InstrumentationInfo
        InstrumentedMethod
        LazyMethod
        ObjectFileHandle
        ObjectFileLoader
        ParseError
        ParseNode
        (ParseNodeVisitor autoload)
        ParseWarning
        ParserFlags
        ProgramNodeBuilder
        ProgramNodeEnumerator
        STCCompilerInterface
        Scanner
        SourceFileLoader
        Structure
        (Switch autoload)
        UndefinedVariable
        UndefinedVariableNotification
        Variable
        #'stx_libcomp'
        AssignmentNode
        BlockNode
        BreakpointNode
        CompilationError
        EvalScriptingErrorHandler
        MessageNode
        MethodNode
        ParseErrorNode
        (ParseNodeValidator autoload)
        Parser
        (PluggableParseNodeVisitor autoload)
        PrimaryNode
        ProgramNode
        SelectorNode
        StatementNode
        TextCollectingCompilationErrorHandler
        UndefinedSuperclassError
        UndefinedVariableError
        WarningCompilationErrorHandler
        AbstractSyntaxHighlighter
        BinaryNode
        BreakpointAnalyzer
        ByteCodeCompiler
        CascadeNode
        ConstantNode
        Explainer
        PrimitiveNode
        ReturnNode
        SelfNode
        UnaryNode
        VariableNode
        ByteCodeCompilerWithBreakpointSupport
        CodeCoverageHighlighter
        Decompiler
        ECompletionConstantNode
        InstrumentingCompiler
        SuperNode
        SyntaxHighlighter
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector."

    ^ #(
        Object notifyTodo:position:className:selector:severity:priority:equalityParameter:checkAction:
    )
!

xclassNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        Breakpoint
        CompilationErrorHandler
        DoNotShowCompilerWarningAgainActionQuery
        InstrumentedMethod
        LazyMethod
        ObjectFileHandle
        ObjectFileLoader
        ParseNode
        ParserFlags
        ProgramNodeBuilder
        ProgramNodeEnumerator
        STCCompilerInterface
        Scanner
        SourceFileLoader
        Structure
        Switch
        UndefinedVariable
        Variable
        #'stx_libcomp'
        AssignmentNode
        BlockNode
        BreakpointNode
        MessageNode
        Parser
        PrimaryNode
        ProgramNode
        StatementNode
        TextCollectingCompilationErrorHandler
        WarningCompilationErrorHandler
        AbstractSyntaxHighlighter
        BinaryNode
        ByteCodeCompiler
        CascadeNode
        ConstantNode
        Explainer
        ParseErrorNode
        PrimitiveNode
        ReturnNode
        SelfNode
        UnaryNode
        VariableNode
        ByteCodeCompilerWithBreakpointSupport
        CodeCoverageHighlighter
        Decompiler
        ECompletionConstantNode
        InstrumentationInfo
        InstrumentationContext
        InstrumentingCompiler
        SuperNode
        SyntaxHighlighter
        BreakpointDescription
        (ParseNodeValidator autoload)
        (ParseNodeVisitor autoload)
        (MethodNode autoload)
    )

    "Created: / 06-12-2011 / 21:14:23 / cg"
! !

!stx_libcomp class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'eXept Software AG'
!

description
    "Return a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Bytecode Compiler'
!

legalCopyright
    "Return copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 2012'

    "Modified: / 18-07-2012 / 19:11:33 / cg"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libcomp class methodsFor:'description - svn'!

svnRepositoryUrlString
    "Return a SVN repository URL of myself.
     (Generated since 2011-04-08)
    "        

    ^ '$URL$'
!

svnRevisionNr
    "Return a SVN revision number of myself.
     This number is updated after a commit"

    ^ "$SVN-Revision:"'exportiert'"$"
! !

!stx_libcomp class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
!

version_SVN
    ^ '$ Id $'
! !