ctu_ircompiler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Oct 2014 21:43:54 +0000
changeset 41 f3898a3b378d
parent 40 cvut_stx_goodies_newcompiler.st@c99f058e2276
child 42 acdc3ec6d152
permissions -rw-r--r--
Package renamed from cvut:stx/goodies/newcompiler to ctu:ircompiler

"{ Package: 'ctu:ircompiler' }"

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


!ctu_ircompiler class methodsFor:'description'!

preRequisites
    "list all required packages.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies and looking for
     global variable accesses. (the browser has a menu function for that)
     Howevery, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPrerequisites method."

    ^ #(
        #'stx:goodies/refactoryBrowser/parser'    "RBReturnNode - referenced by IRDecompiler>>addReturn:from: "
        #'stx:goodies/sunit'    "TestAsserter - superclass of IRTransformTest "
        #'stx:libbasic'    "Link - superclass of IRSend "
        #'stx:libbasic2'    "OrderedDictionary - referenced by IRBytecodeGenerator>>initialize "
        #'stx:libcomp'    "Parser - superclass of extended ByteCodeCompiler "
        #'stx:libcompat'    "Preferences - referenced by IRDecompiler>>removeClosureCreation: "
        #'stx:libtool'    "Tools::Inspector2Tab - referenced by IRFunction>>inspector2TabIRCode "
        #'stx:libwidg'    "TextView - referenced by IRFunction>>inspector2TabIRCode "
    )
! !

!ctu_ircompiler 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"
        IRBuilder
        (IRBuilderTest autoload)
        IRBytecodeGenerator
        IRFunction
        IRInstruction
        IRInterpreter
        IRSequence
        IRStackCount
        (IRTransformTest autoload)
        #'ctu_ircompiler'
        IRAccess
        IRClosure
        IRConstant
        IRDecompiler
        IRDup
        IRJump
        IRLine
        IRMethod
        IRPop
        IRPrinter
        IRReturn
        IRSend
        IRTranslator
        IRBlockReturnTop
        IRInstVarAccess
        IRJumpIf
        IRJumpOverBlock
        IRLiteralVariableAccess
        IRTempAccess
        IRInstVarRead
        IRInstVarStore
        IRLiteralVariableRead
        IRLiteralVariableStore
        IRTempRead
        IRTempStore
    )
!

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."

    ^ #(
        ByteCodeCompiler literalArray:
        Class binding
        Class bindingOf:
    )
! !

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

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

    ^ 'CVUT FEI & Mathieu Suen'

    "Created: / 11-06-2008 / 16:50:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

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

    ^ 'Smalltalk/X Bytecode generation library based on Squeak''s NewCompiler'

    "Created: / 11-06-2008 / 16:50:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

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

    ^ 'Copyright Jan Vrany & Mathieu Suen 2008'

    "Created: / 11-06-2008 / 16:50:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

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

    ^ 'NewCompiler'

    "Created: / 11-06-2008 / 16:50:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!ctu_ircompiler class methodsFor:'description - svn'!

svnRepositoryUrlString
    "Return a SVN repository URL of myself.
     (Generated since 2011-04-08)
     Do not make the string shorter!!!!!! We have to use fixed-length keyword!!!!!!
    "        

    ^ '$URL::                                                                                                                        $'
!

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

    ^ "$SVN-Revision:"'nil'"$"

    "Modified: / 29-10-2012 / 10:42:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!ctu_ircompiler class methodsFor:'documentation'!

version
    ^ '$Id$'
!

version_CVS
    ^ 'Header: /cvs/stx/cvut/stx/goodies/newcompiler/ctu_ircompiler.st,v 1.4 2009/10/08 12:00:46 fm Exp '
!

version_SVN
    ^ '$Id::                                                                                                                        $'
! !