Added Bee source writer (both for inidividual classes and for project sources)
This makes exporting code to Bee a lot easier.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/BeeProjectSourceWriter.st Tue Apr 14 14:58:44 2015 +0100
@@ -0,0 +1,160 @@
+"
+ 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:libbasic3' }"
+
+"{ NameSpace: Smalltalk }"
+
+Object subclass:#BeeProjectSourceWriter
+ instanceVariableNames:'projectDefinitionClass classesToBeInitialized'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Kernel-Classes-Support'
+!
+
+!BeeProjectSourceWriter 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.
+"
+! !
+
+!BeeProjectSourceWriter class methodsFor:'simple API'!
+
+fileOut:aClass on:aStream
+ self new fileOut:aClass on:aStream
+
+ "Modified: / 14-04-2015 / 13:52:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeProjectSourceWriter methodsFor:'source writing'!
+
+fileOut:packageID on:aStream
+ |classesToFileout methodsToFileOut |
+
+ projectDefinitionClass := packageID asPackageId projectDefinitionClass.
+ classesToBeInitialized := OrderedCollection new.
+
+ aStream lineEndCRLF.
+
+ "/ make sure that everything is loaded.
+ projectDefinitionClass notNil ifTrue:[
+ projectDefinitionClass autoload.
+ projectDefinitionClass ensureFullyLoaded.
+ classesToFileout := Smalltalk allClassesInPackage:packageID.
+ ] ifFalse:[
+ classesToFileout := Smalltalk allClassesInPackage:packageID.
+ classesToFileout := classesToFileout collect:[:each | each autoload].
+ ].
+
+ classesToFileout := classesToFileout reject:[:cls | cls isSubclassOf: ProjectDefinition ].
+ classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
+
+ classesToFileout do:[:cls |
+ cls isPrivate ifTrue:[
+ self error:'Cannot file out private class: ',cls name.
+ ].
+ ].
+
+ methodsToFileOut := projectDefinitionClass extensions.
+
+ self activityNotification:'checking for unportable unicode...'.
+ classesToFileout do:[:eachClass |
+ self ensureNoUnicodeInClass:eachClass
+ ].
+ methodsToFileOut do:[:eachClass |
+ self ensureNoUnicodeInMethod:eachClass
+ ].
+
+ self fileOutHeaderOn:aStream.
+ self fileOutClasses: classesToFileout on: aStream.
+ self fileOutExtensions: methodsToFileOut on: aStream.
+
+ "Created: / 14-04-2015 / 13:42:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutClasses: classes on: stream
+ | writer |
+
+ writer := BeeSourceWriter new.
+ classes do:[:class |
+ self activityNotification:'exporting ', class name,'...'.
+ writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:true methodFilter:[:m | false]
+ ].
+ classes do:[:class |
+ self activityNotification:'exporting ', class name,'...'.
+ writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:false methodFilter:[:m | true]
+ ].
+
+ "Created: / 14-04-2015 / 13:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutExtensions: methods on:stream
+ | writer |
+
+ writer := BeeSourceWriter new.
+ self activityNotification:'exporting extensions...'.
+ methods do:[:eachMethod |
+ writer fileOutMethods:methods on:stream.
+ stream cr.
+ ]
+
+ "Modified: / 14-04-2015 / 13:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutHeaderOn: aStream
+
+ aStream nextPutLine:'"'.
+ aStream nextPutLine:''.
+ aStream nextPutLine:' __________________________________________________'.
+ aStream nextPutLine:' Author: ?'.
+ aStream nextPutLine:' Project name: ?'.
+ aStream nextPutLine:' Version: ?'.
+ aStream nextPutLine:' Timestamp: ?'.
+ aStream nextPutLine:' Description: ?'.
+ aStream nextPutLine:' __________________________________________________'.
+ aStream nextPutLine:'"'.
+
+ "Created: / 14-04-2015 / 13:42:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeProjectSourceWriter methodsFor:'utilities'!
+
+ensureNoUnicodeInClass:aClass
+ "/ check if we need UTF8 encoding
+ aClass withAllPrivateClasses do:[:cls |
+ cls instAndClassMethods contains:[:m |
+ self ensureNoUnicodeInMethod:m
+ ]
+ ].
+!
+
+ensureNoUnicodeInMethod:aMethod
+ |src|
+
+ src := aMethod source.
+ src isNil ifTrue:[
+ self error:'missing source in ',aMethod whoString
+ ].
+ src asSingleByteStringIfPossible isWideString ifTrue:[
+ self error:(aMethod whoString , ' contains unicode strings or character contants. Cannot be exported to VSE')
+ ].
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/BeeSourceWriter.st Tue Apr 14 14:58:44 2015 +0100
@@ -0,0 +1,230 @@
+"
+ 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:libbasic3' }"
+
+"{ NameSpace: Smalltalk }"
+
+SmalltalkChunkFileSourceWriter subclass:#BeeSourceWriter
+ instanceVariableNames:'timestamp'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Kernel-Classes-Support'
+!
+
+!BeeSourceWriter 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.
+"
+! !
+
+!BeeSourceWriter class methodsFor:'simple API'!
+
+fileOut:aClass on:aStream
+ self fileOut:aClass on:aStream withTimeStamp:false
+ withInitialize:true withDefinition:true
+ methodFilter:nil encoder:nil
+
+ "Created: / 14-04-2015 / 13:12:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSourceWriter methodsFor:'source writing'!
+
+fileOut:aClass on:outStreamArg withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter encoder:encoderOrNil
+ timestamp := Timestamp now printStringFormat:'%d/%m/%y %H:%M:%S'.
+ super fileOut:aClass on:outStreamArg withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter encoder:encoderOrNil
+
+ "Created: / 14-04-2015 / 12:26:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutAllDefinitionsOf:aNonMetaClass on:aStream withNameSpace: withNameSpacePragma
+ "append expressions on aStream, which defines myself and all of my private classes."
+
+
+ self fileOutDefinitionOf:aNonMetaClass on:aStream withNameSpace: withNameSpacePragma.
+
+ "/ self fileOutDefinitionOf:aNonMetaClass on:aStream.
+ "/ aStream nextPutChunkSeparator.
+ aStream cr.
+
+ "/
+ "/ optional classInstanceVariables
+ "/
+ aNonMetaClass class instanceVariableString isBlank ifFalse:[
+ self fileOutClassInstVarDefinitionOf:aNonMetaClass on:aStream
+ ].
+
+ "/ here, the full nameSpace prefixes are output,
+ "/ to avoid confusing stc
+ "/ (which otherwise could not find the correct superclass)
+ "/
+ Class fileOutNameSpaceQuerySignal answer:false do:[
+ Class forceNoNameSpaceQuerySignal answer:true do:[
+ aNonMetaClass privateClassesSorted do:[:aClass |
+ self fileOutAllDefinitionsOf:aClass on:aStream withNameSpace: false
+ ]
+ ]
+ ].
+
+ "Created: / 14-04-2015 / 13:02:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutCategory:aCategory of:aClass except:skippedMethods only:savedMethods methodFilter:methodFilter on:aStream
+ "file out all methods belonging to aCategory, aString onto aStream.
+ If skippedMethods is nonNil, those are not saved.
+ If savedMethods is nonNil, only those are saved.
+ If both are nil, all are saved. See version-method handling in
+ fileOut for what this is needed."
+
+ |sortedSelectors interestingMethods prjDef|
+
+ interestingMethods := OrderedCollection new.
+ aClass methodsDo:[:each |
+ | wanted method shadowed |
+
+ method := each.
+ (methodsAlreadySaved includes:method) ifFalse:[
+ (aCategory = method category) ifTrue:[
+ wanted := methodFilter isNil or:[methodFilter value:method].
+ wanted ifFalse:[
+ "/ care for methods which have been shadowed by an extension from another package!!
+ "/ The problem is that we cannot easily introspect the filter, so we cannot know
+ "/ if the filter is for package or not. In most (all?) cases it is as this method
+ "/ is mostly used by source code management, so if the filter filters method out,
+ "/ try afain for possibly shadowed method.
+ methodFilter notNil ifTrue:[
+ shadowed := method shadowedMethod.
+ shadowed notNil ifTrue:[
+ wanted := methodFilter value: shadowed.
+ ].
+ ].
+ ].
+ wanted ifTrue:[
+ skippedMethods notNil ifTrue:[
+ wanted := (skippedMethods includesIdentical:method) not
+ ] ifFalse:[
+ wanted := savedMethods isNil or:[ savedMethods includesIdentical:method ].
+ ].
+ wanted ifTrue:[
+ (method selector isSymbol) ifTrue:[
+ interestingMethods add:method
+ ] ifFalse:[
+ Transcript showCR:'skipping non-symbol method ', method selector printString.
+ ].
+ ].
+ ]
+ ]
+ ]
+ ].
+
+ interestingMethods notEmpty ifTrue:[
+ "/
+ "/ sort by selector
+ "/
+ sortedSelectors := interestingMethods collect:[:m | aClass selectorAtMethod:m].
+ sortedSelectors sortWith:interestingMethods.
+
+ generatingSourceForOriginal == true ifTrue:[
+ "/ care for methods which have been shadowed by an extension from another package!!
+ (prjDef := aClass theNonMetaclass projectDefinitionClass) notNil ifTrue:[
+ prjDef hasSavedOverwrittenMethods ifTrue:[
+ interestingMethods := interestingMethods collect:[:m |
+ |originalOrNil|
+
+ (m package ~~ aClass package) ifTrue:[
+ originalOrNil := prjDef savedOverwrittenMethodForClass:aClass selector:m selector.
+ originalOrNil notNil ifTrue:[
+ 1.
+ self breakPoint:#cg
+ ].
+ ].
+ originalOrNil ? m
+ ].
+ ]
+ ].
+ ].
+
+ interestingMethods do:[:eachMethod |
+ self fileOutMethod:eachMethod on:aStream.
+ methodsAlreadySaved add:eachMethod.
+ ].
+ ].
+
+ "Created: / 14-04-2015 / 13:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-04-2015 / 14:31:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutDefinitionOf:aNonMetaClass on:aStream withNameSpace: withNameSpacePragma
+ aStream nextPutAll: '!!ClassDefinition timeStamp:'; nextPutAll: timestamp storeString; nextPutAll: ' author: nil className: '; nextPutAll: aNonMetaClass name storeString; nextPutAll: '!!'.
+ aStream cr; cr.
+ aNonMetaClass basicFileOutDefinitionOn:aStream withNameSpace: false withPackage: false.
+ aStream nextPut: $!!; cr.
+
+ "Created: / 14-04-2015 / 12:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutMethod:aMethod on:aStream
+ "file a single method onto aStream."
+
+ |source possiblyRewrittenSource rewriteQuery|
+
+ source := aMethod source asSingleByteStringIfPossible.
+ source isNil ifTrue:[
+ Class fileOutErrorSignal
+ raiseRequestWith:aMethod mclass
+ errorString:' - no source for method: ', (aMethod displayString)
+ ] ifFalse:[
+ "/ hook to allow for just-in-time rewriting of a method's sourceCode while filing out
+ "/ used when saving version_XXX methods in a non-XXX sourceCodeManager
+ "/ (i.e. to rewrite all non-CVS version methods while saving into a CVS repository)
+ "/ this is required because we cannot save an SVN version method (dollar-ID-...-dollar) into a
+ "/ CVS repository without loosing the original string with the next checkout, because it also gets
+ "/ expanded by CVS. The same is true vice-versa for CVS-Ids, which get clobbered by SVN.
+ "/ also used, when generating sourcecode for another Smalltalk system (VSE fileout)
+
+ rewriteQuery := AbstractSourceFileWriter methodSourceRewriteQuery new.
+ rewriteQuery method:aMethod source:source.
+ possiblyRewrittenSource := (rewriteQuery query) ? source.
+
+ aStream nextPutAll: '!!MethodDefinition timeStamp:'; nextPutAll: timestamp storeString;
+ nextPutAll: ' author: '; nextPutAll: 'Unknown' storeString;
+ nextPutAll: ' className: '; nextPutAll: aMethod mclass name storeString;
+ nextPutAll: ' selector: '; nextPutAll: aMethod selector storeString;
+ nextPutAll: ' category: '; nextPutAll: aMethod category storeString;
+ nextPutAll: '!!'.
+ aStream cr.
+ aStream nextChunkPut:possiblyRewrittenSource.
+ aStream cr.
+ ].
+
+ "Created: / 14-04-2015 / 12:41:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-04-2015 / 14:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutMethods: methods on: stream
+
+ methods do:[:method|
+ self fileOutMethod: method on: stream.
+ ]
+
+ "Created: / 14-04-2015 / 12:41:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/ClassInitializeChange.st Mon Apr 13 21:45:14 2015 +0100
+++ b/ClassInitializeChange.st Tue Apr 14 14:58:44 2015 +0100
@@ -1,5 +1,18 @@
+"
+ 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:libbasic3' }"
+"{ NameSpace: Smalltalk }"
+
ClassChange subclass:#ClassInitializeChange
instanceVariableNames:''
classVariableNames:''
@@ -9,6 +22,20 @@
!ClassInitializeChange 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
"
Change for class initialization chunk. Unlike DoItChange,
--- a/DataBaseSourceCodeManagerUtilities.st Mon Apr 13 21:45:14 2015 +0100
+++ b/DataBaseSourceCodeManagerUtilities.st Tue Apr 14 14:58:44 2015 +0100
@@ -1,5 +1,18 @@
+"
+ 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:libbasic3' }"
+"{ NameSpace: Smalltalk }"
+
SourceCodeManagerUtilities subclass:#DataBaseSourceCodeManagerUtilities
instanceVariableNames:''
classVariableNames:''
@@ -7,6 +20,21 @@
category:'System-SourceCodeManagement'
!
+!DataBaseSourceCodeManagerUtilities 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.
+"
+! !
!DataBaseSourceCodeManagerUtilities class methodsFor:'documentation'!
--- a/Make.proto Mon Apr 13 21:45:14 2015 +0100
+++ b/Make.proto Tue Apr 14 14:58:44 2015 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic3/Make.proto,v 1.146 2015-01-27 20:35:44 cg Exp $
+# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_libbasic3.
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libjavascript
# if you need any additional defines for embedded C code,
@@ -92,6 +92,13 @@
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+stx_libbasic3.$(O): $(shell hg root)/.hg/dirstate
+endif
+
@@ -137,6 +144,8 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)AbstractSourceCodeManager.$(O) AbstractSourceCodeManager.$(H): AbstractSourceCodeManager.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectSourceWriter.$(O) BeeProjectSourceWriter.$(H): BeeProjectSourceWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSourceWriter.$(O) BeeSourceWriter.$(H): BeeSourceWriter.st $(INCLUDE_TOP)/stx/libbasic/AbstractSourceFileWriter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SmalltalkChunkFileSourceWriter.$(H) $(STCHDR)
$(OUTDIR)CallChain.$(O) CallChain.$(H): CallChain.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)Change.$(O) Change.$(H): Change.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ChangeDeltaInformation.$(O) ChangeDeltaInformation.$(H): ChangeDeltaInformation.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec Mon Apr 13 21:45:14 2015 +0100
+++ b/Make.spec Tue Apr 14 14:58:44 2015 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic3/Make.spec,v 1.97 2015-01-27 20:35:39 cg Exp $
+# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_libbasic3.
@@ -52,6 +52,8 @@
COMMON_CLASSES= \
AbstractSourceCodeManager \
+ BeeProjectSourceWriter \
+ BeeSourceWriter \
CallChain \
Change \
ChangeDeltaInformation \
@@ -130,6 +132,8 @@
COMMON_OBJS= \
$(OUTDIR_SLASH)AbstractSourceCodeManager.$(O) \
+ $(OUTDIR_SLASH)BeeProjectSourceWriter.$(O) \
+ $(OUTDIR_SLASH)BeeSourceWriter.$(O) \
$(OUTDIR_SLASH)CallChain.$(O) \
$(OUTDIR_SLASH)Change.$(O) \
$(OUTDIR_SLASH)ChangeDeltaInformation.$(O) \
--- a/MethodRemoveChangeNotificationParameter.st Mon Apr 13 21:45:14 2015 +0100
+++ b/MethodRemoveChangeNotificationParameter.st Tue Apr 14 14:58:44 2015 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
@@ -61,5 +59,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/libbasic3/MethodRemoveChangeNotificationParameter.st,v 1.3 2015-03-20 13:17:02 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/TraitClassTraitDefinitionChange.st Mon Apr 13 21:45:14 2015 +0100
+++ b/TraitClassTraitDefinitionChange.st Tue Apr 14 14:58:44 2015 +0100
@@ -11,6 +11,8 @@
"
"{ Package: 'stx:libbasic3' }"
+"{ NameSpace: Smalltalk }"
+
ClassChange subclass:#TraitClassTraitDefinitionChange
instanceVariableNames:'baseTrait traitComposition'
classVariableNames:''
--- a/TraitDefinitionChange.st Mon Apr 13 21:45:14 2015 +0100
+++ b/TraitDefinitionChange.st Tue Apr 14 14:58:44 2015 +0100
@@ -11,6 +11,8 @@
"
"{ Package: 'stx:libbasic3' }"
+"{ NameSpace: Smalltalk }"
+
ClassChange subclass:#TraitDefinitionChange
instanceVariableNames:'baseTrait traitComposition category'
classVariableNames:''
--- a/VSEFileSourceWriter.st Mon Apr 13 21:45:14 2015 +0100
+++ b/VSEFileSourceWriter.st Tue Apr 14 14:58:44 2015 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 2015 by eXept Software AG
All Rights Reserved
--- a/VisualAgeChunkFileSourceWriter.st Mon Apr 13 21:45:14 2015 +0100
+++ b/VisualAgeChunkFileSourceWriter.st Tue Apr 14 14:58:44 2015 +0100
@@ -11,6 +11,8 @@
"
"{ Package: 'stx:libbasic3' }"
+"{ NameSpace: Smalltalk }"
+
SmalltalkChunkFileSourceWriter subclass:#VisualAgeChunkFileSourceWriter
instanceVariableNames:''
classVariableNames:''
--- a/abbrev.stc Mon Apr 13 21:45:14 2015 +0100
+++ b/abbrev.stc Tue Apr 14 14:58:44 2015 +0100
@@ -2,6 +2,8 @@
# this file is needed for stc to be able to compile modules independently.
# it provides information about a classes filename, category and especially namespace.
AbstractSourceCodeManager AbstractSourceCodeManager stx:libbasic3 'System-SourceCodeManagement' 0
+BeeProjectSourceWriter BeeProjectSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
+BeeSourceWriter BeeSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
CallChain CallChain stx:libbasic3 'System-Debugging-Support' 0
Change Change stx:libbasic3 'System-Changes' 0
ChangeDeltaInformation ChangeDeltaInformation stx:libbasic3 'System-Changes' 0
@@ -50,7 +52,6 @@
SourceCodeManagerUtilitiesForContainerBasedManagers SourceCodeManagerUtilitiesForContainerBasedManagers stx:libbasic3 'System-SourceCodeManagement' 0
SourceCodeManagerUtilitiesForWorkspaceBasedManagers SourceCodeManagerUtilitiesForWorkspaceBasedManagers stx:libbasic3 'System-SourceCodeManagement' 0
StoreSourceCodeManager StoreSourceCodeManager stx:libbasic3 'System-SourceCodeManagement' 0
-VSEChunkFileSourceWriter VSEChunkFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
VSEPackageFileSourceWriter VSEPackageFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
ClassCategoryChange ClassCategoryChange stx:libbasic3 'System-Changes' 0
ClassClassVariableChange ClassClassVariableChange stx:libbasic3 'System-Changes' 0
@@ -77,6 +78,7 @@
MethodPackageChange MethodPackageChange stx:libbasic3 'System-Changes' 0
MethodPrivacyChange MethodPrivacyChange stx:libbasic3 'System-Changes' 0
MethodRemoveChange MethodRemoveChange stx:libbasic3 'System-Changes' 0
-VisualAgeChunkFileSourceWriter VisualAgeChunkFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
+TraitClassTraitDefinitionChange TraitClassTraitDefinitionChange stx:libbasic3 'System-Changes' 0
TraitDefinitionChange TraitDefinitionChange stx:libbasic3 'System-Changes' 0
-TraitClassTraitDefinitionChange TraitClassTraitDefinitionChange stx:libbasic3 'System-Changes' 0
+VSEChunkFileSourceWriter VSEChunkFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
+VisualAgeChunkFileSourceWriter VisualAgeChunkFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
--- a/bc.mak Mon Apr 13 21:45:14 2015 +0100
+++ b/bc.mak Tue Apr 14 14:58:44 2015 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libbasic3/bc.mak,v 1.126 2015-01-27 20:35:52 cg Exp $
+# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_libbasic3.
@@ -38,7 +38,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libjavascript
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) $(COMMONSYMBOLS) -varPrefix=$(LIBNAME)
@@ -72,6 +72,8 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)AbstractSourceCodeManager.$(O) AbstractSourceCodeManager.$(H): AbstractSourceCodeManager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectSourceWriter.$(O) BeeProjectSourceWriter.$(H): BeeProjectSourceWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSourceWriter.$(O) BeeSourceWriter.$(H): BeeSourceWriter.st $(INCLUDE_TOP)\stx\libbasic\AbstractSourceFileWriter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SmalltalkChunkFileSourceWriter.$(H) $(STCHDR)
$(OUTDIR)CallChain.$(O) CallChain.$(H): CallChain.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)Change.$(O) Change.$(H): Change.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ChangeDeltaInformation.$(O) ChangeDeltaInformation.$(H): ChangeDeltaInformation.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -147,3 +149,12 @@
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
+
+# **Must be at end**
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+!IFDEF HGROOT
+$(OUTDIR)stx_libbasic3.$(O): $(HGROOT)\.hg\dirstate
+!ENDIF
--- a/extensions.st Mon Apr 13 21:45:14 2015 +0100
+++ b/extensions.st Tue Apr 14 14:58:44 2015 +0100
@@ -162,7 +162,7 @@
!stx_libbasic3 class methodsFor:'documentation'!
-extensionsVersion_CVS
- ^ '$Header: /cvs/stx/stx/libbasic3/extensions.st,v 1.17 2014-07-29 09:15:10 vrany Exp $'
+extensionsVersion_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
-
--- a/libInit.cc Mon Apr 13 21:45:14 2015 +0100
+++ b/libInit.cc Tue Apr 14 14:58:44 2015 +0100
@@ -1,5 +1,5 @@
/*
- * $Header: /cvs/stx/stx/libbasic3/libInit.cc,v 1.112 2015-01-27 20:36:23 cg Exp $
+ * $Header$
*
* DO NOT EDIT
* automagically generated from the projectDefinition: stx_libbasic3.
@@ -28,6 +28,8 @@
OBJ snd; struct __vmData__ *__pRT__; {
__BEGIN_PACKAGE2__("libstx_libbasic3", _libstx_libbasic3_Init, "stx:libbasic3");
_AbstractSourceCodeManager_Init(pass,__pRT__,snd);
+_BeeProjectSourceWriter_Init(pass,__pRT__,snd);
+_BeeSourceWriter_Init(pass,__pRT__,snd);
_CallChain_Init(pass,__pRT__,snd);
_Change_Init(pass,__pRT__,snd);
_ChangeDeltaInformation_Init(pass,__pRT__,snd);
--- a/stx_libbasic3.st Mon Apr 13 21:45:14 2015 +0100
+++ b/stx_libbasic3.st Tue Apr 14 14:58:44 2015 +0100
@@ -73,24 +73,28 @@
"list packages which are mandatory as a prerequisite.
This are packages containing superclasses of my classes and classes which
are extended by myself.
- They are mandatory, beacuse we need these packages as a prerequisite for loading and compiling.
+ They are mandatory, because we need these packages as a prerequisite for loading and compiling.
This method is generated automatically,
by searching along the inheritance chain of all of my classes."
^ #(
- #'stx:libbasic' "AbstractSourceFileWriter - superclass of ChangeSet::ClassSourceWriter "
+ #'stx:libbasic' "AbstractSourceFileWriter - superclass of BeeSourceWriter"
)
!
referencedPreRequisites
"list packages which are a prerequisite, because they contain
classes which are referenced by my classes.
- We do not need these packages as a prerequisite for loading or compiling.
+ We do not need these packages as a prerequisite for compiling or loading,
+ however, a class from it may be referenced during execution and having it
+ unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+ includes explicit checks for the package being present.
This method is generated automatically,
by searching all classes (and their packages) which are referenced by my classes."
^ #(
- #'stx:libbasic2' "HTMLUtilities - referenced by HTMLDocGenerator>>generateClassDocReferenceFor:text:autoloading: "
+ #'stx:libbasic2' "HTMLUtilities - referenced by HTMLDocGenerator>>generateClassDocReferenceFor:text:autoloading:"
+ #'stx:libjavascript' "HTMLDocGeneratorForJavaScript - referenced by HTMLDocGenerator>>printOutHTMLMethodProtocol:on:showClassName:classRef:picturePath:"
)
!
@@ -131,6 +135,8 @@
^ #(
"<className> or (<className> attributes...) in load order"
AbstractSourceCodeManager
+ BeeProjectSourceWriter
+ BeeSourceWriter
CallChain
Change
ChangeDeltaInformation
@@ -179,7 +185,6 @@
SourceCodeManagerUtilitiesForContainerBasedManagers
SourceCodeManagerUtilitiesForWorkspaceBasedManagers
StoreSourceCodeManager
- (VSEChunkFileSourceWriter autoload)
(VSEPackageFileSourceWriter autoload)
ClassCategoryChange
ClassClassVariableChange
@@ -206,15 +211,16 @@
MethodPackageChange
MethodPrivacyChange
MethodRemoveChange
- (VisualAgeChunkFileSourceWriter autoload)
+ (TraitClassTraitDefinitionChange autoload)
(TraitDefinitionChange autoload)
- (TraitClassTraitDefinitionChange autoload)
+ (VSEChunkFileSourceWriter autoload)
+ (VisualAgeChunkFileSourceWriter autoload)
)
!
extensionMethodNames
- "lists the extension methods which are to be included in the project.
- Entries are pairwise elements, consisting of class-name and selector."
+ "list class/selector pairs of extensions.
+ A correponding method with real names must be present in my concrete subclasses"
^ #(
UserPreferences historyManagerModificationLimit
@@ -299,6 +305,10 @@
^ '$Header: /cvs/stx/stx/libbasic3/stx_libbasic3.st,v 1.92 2015-02-21 11:15:56 cg Exp $'
!
+version_HG
+ ^ '$Changeset: <not expanded> $'
+!
+
version_SVN
^ '$Id: stx_libbasic3.st,v 1.92 2015-02-21 11:15:56 cg Exp $'
! !