ctu_ircompiler.st
changeset 41 f3898a3b378d
parent 40 c99f058e2276
child 42 acdc3ec6d152
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ctu_ircompiler.st	Thu Oct 30 21:43:54 2014 +0000
@@ -0,0 +1,158 @@
+"{ 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::                                                                                                                        $'
+! !