`BeeProjectSourceWriter`: add support for automagic source code porting jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 11 Oct 2018 20:14:15 +0200
branchjv
changeset 4367 7ca6042ee443
parent 4366 5a3597de6ece
child 4368 ae1d97e98f56
`BeeProjectSourceWriter`: add support for automagic source code porting
BeeProjectSourceWriter.st
BeeSourcePorter.st
Make.proto
Make.spec
abbrev.stc
bc.mak
bmake.bat
libInit.cc
mingwmake.bat
stx_libbasic3.st
vcmake.bat
--- a/BeeProjectSourceWriter.st	Thu Oct 11 19:44:14 2018 +0200
+++ b/BeeProjectSourceWriter.st	Thu Oct 11 20:14:15 2018 +0200
@@ -57,7 +57,10 @@
 !BeeProjectSourceWriter methodsFor:'source writing'!
 
 fileOutClasses: classes on: stream
-    | classesToFileout writer |
+    | classesToFileout writer porter |
+
+    writer := BeeSourceWriter new.
+    porter := BeeSourcePorter new.
 
     stream nextPutAll: '"**** Class definitions ****"!!'; cr.
 
@@ -70,37 +73,56 @@
         ].
     ].  
 
-    writer := BeeSourceWriter new.
-    classesToFileout do:[:class |
-        self activityNotification:'exporting ', class name,'...'.
-        writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:true methodFilter:[:m | false]
-    ].
-    classesToFileout do:[:class |
-        self activityNotification:'exporting ', class name,'...'.
-        writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:false methodFilter:[:m | 
-            | who |
+    AbstractSourceFileWriter methodSourceRewriteQuery handle:[:request |
+        | method source |
 
-            who := m who.
-            (who methodClass isMetaclass and:[ who methodSelector == #copyright ]) not
-                and:[ (AbstractSourceCodeManager isVersionMethodSelector: who methodSelector) not ]
-        ]
+        method := request method.
+        source := request source.
+        source := porter port: method.
+        request proceedWith: source.         
+    ] do:[
+        classesToFileout do:[:class |
+            self activityNotification:'exporting ', class name,'...'.
+            writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:true methodFilter:[:m | false]
+        ].
+        classesToFileout do:[:class |
+            self activityNotification:'exporting ', class name,'...'.
+            writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:false methodFilter:[:m | 
+                | who |
+
+                who := m who.
+                (who methodClass isMetaclass and:[ who methodSelector == #copyright ]) not
+                    and:[ (AbstractSourceCodeManager isVersionMethodSelector: who methodSelector) not ]
+            ]
+        ].
     ].
 
     "Created: / 14-04-2015 / 13:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 07-09-2016 / 15:50:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 11-10-2018 / 20:02:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileOutExtensions: methods on:stream
-    | writer |
+    | writer porter |
 
     writer := BeeSourceWriter new.
+    porter := BeeSourcePorter new.
+
     self activityNotification:'exporting extensions...'.
-    methods do:[:eachMethod |
-        writer fileOutMethods:methods on:stream.
-        stream cr.
+    AbstractSourceFileWriter methodSourceRewriteQuery handle:[:request |
+        | method source |
+
+        method := request method.
+        source := request source.
+        source := porter port: method.
+        request proceedWith: source.         
+    ] do:[
+        methods do:[:eachMethod |
+            writer fileOutMethods:methods on:stream.
+            stream cr.
+        ]
     ]
 
-    "Modified: / 14-04-2015 / 13:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-10-2018 / 20:12:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fileOutHeaderOn: aStream
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BeeSourcePorter.st	Thu Oct 11 20:14:15 2018 +0200
@@ -0,0 +1,78 @@
+"
+ COPYRIGHT (c) Claus Gittinger / eXept Software AG
+ COPYRIGHT (c) 2015-2016 Jan Vrany
+              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:#BeeSourcePorter
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Classes-Support'
+!
+
+!BeeSourcePorter class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) Claus Gittinger / eXept Software AG
+ COPYRIGHT (c) 2015-2016 Jan Vrany
+              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
+"
+    BeeSourcePorter is a utility class used to automagically
+    port (method) code from Smalltalk/X to Bee Smalltalk. This
+    is done by automatically rewriting method source code when
+    writing Bee project files.
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!BeeSourcePorter methodsFor:'porting'!
+
+port: aMethod
+    "Perform all automatic source code transformation on a method's source
+     and return new source with all the necessary modifications."
+
+    "/ Nothing for now...
+    ^aMethod source
+
+    "Created: / 11-10-2018 / 20:10:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSourcePorter class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/Make.proto	Thu Oct 11 19:44:14 2018 +0200
+++ b/Make.proto	Thu Oct 11 20:14:15 2018 +0200
@@ -151,6 +151,9 @@
 
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)AbstractSourceCodeManager.$(O) AbstractSourceCodeManager.$(C) AbstractSourceCodeManager.$(H): AbstractSourceCodeManager.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectWriter.$(O) BeeProjectWriter.$(C) BeeProjectWriter.$(H): BeeProjectWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSourcePorter.$(O) BeeSourcePorter.$(C) BeeSourcePorter.$(H): BeeSourcePorter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSourceWriter.$(O) BeeSourceWriter.$(C) 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.$(C) CallChain.$(H): CallChain.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Change.$(O) Change.$(C) Change.$(H): Change.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ChangeDeltaInformation.$(O) ChangeDeltaInformation.$(C) ChangeDeltaInformation.$(H): ChangeDeltaInformation.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -172,10 +175,13 @@
 $(OUTDIR)SourceCodeManagerUtilities.$(O) SourceCodeManagerUtilities.$(C) SourceCodeManagerUtilities.$(H): SourceCodeManagerUtilities.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SystemEnvironment.$(O) SystemEnvironment.$(C) SystemEnvironment.$(H): SystemEnvironment.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SystemOrganizer.$(O) SystemOrganizer.$(C) SystemOrganizer.$(H): SystemOrganizer.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SystemProfiler.$(O) SystemProfiler.$(C) SystemProfiler.$(H): SystemProfiler.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TraceBuffer.$(O) TraceBuffer.$(C) TraceBuffer.$(H): TraceBuffer.st $(INCLUDE_TOP)/stx/libbasic/Array.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(STCHDR)
 $(OUTDIR)VersionInfo.$(O) VersionInfo.$(C) VersionInfo.$(H): VersionInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)WrappedMethod.$(O) WrappedMethod.$(C) WrappedMethod.$(H): WrappedMethod.st $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libbasic3.$(O) stx_libbasic3.$(C) stx_libbasic3.$(H): stx_libbasic3.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectDefinitionWriter.$(O) BeeProjectDefinitionWriter.$(C) BeeProjectDefinitionWriter.$(H): BeeProjectDefinitionWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/BeeProjectWriter.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectSourceWriter.$(O) BeeProjectSourceWriter.$(C) BeeProjectSourceWriter.$(H): BeeProjectSourceWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/BeeProjectWriter.$(H) $(STCHDR)
 $(OUTDIR)CVSSourceCodeManager.$(O) CVSSourceCodeManager.$(C) CVSSourceCodeManager.$(H): CVSSourceCodeManager.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/AbstractSourceCodeManager.$(H) $(INCLUDE_TOP)/stx/libbasic3/VersionInfo.$(H) $(STCHDR)
 $(OUTDIR)ChangeSetDiffEntry.$(O) ChangeSetDiffEntry.$(C) ChangeSetDiffEntry.$(H): ChangeSetDiffEntry.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/ChangeSetDiffComponent.$(H) $(STCHDR)
 $(OUTDIR)ChangeSetDiffSet.$(O) ChangeSetDiffSet.$(C) ChangeSetDiffSet.$(H): ChangeSetDiffSet.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/ChangeSetDiffComponent.$(H) $(STCHDR)
--- a/Make.spec	Thu Oct 11 19:44:14 2018 +0200
+++ b/Make.spec	Thu Oct 11 20:14:15 2018 +0200
@@ -53,6 +53,7 @@
 COMMON_CLASSES= \
 	AbstractSourceCodeManager \
 	BeeProjectWriter \
+	BeeSourcePorter \
 	BeeSourceWriter \
 	CallChain \
 	Change \
@@ -132,83 +133,84 @@
 
 
 COMMON_OBJS= \
-    $(OUTDIR_SLASH)AbstractSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)BeeProjectWriter.$(O) \
-    $(OUTDIR_SLASH)BeeSourceWriter.$(O) \
-    $(OUTDIR_SLASH)CallChain.$(O) \
-    $(OUTDIR_SLASH)Change.$(O) \
-    $(OUTDIR_SLASH)ChangeDeltaInformation.$(O) \
-    $(OUTDIR_SLASH)ChangeNotificationParameter.$(O) \
-    $(OUTDIR_SLASH)ChangeSet.$(O) \
-    $(OUTDIR_SLASH)ChangeSetDiff.$(O) \
-    $(OUTDIR_SLASH)ChangeSetDiffComponent.$(O) \
-    $(OUTDIR_SLASH)ClassOrganizer.$(O) \
-    $(OUTDIR_SLASH)HTMLDocGenerator.$(O) \
-    $(OUTDIR_SLASH)HistoryManager.$(O) \
-    $(OUTDIR_SLASH)MessageTally.$(O) \
-    $(OUTDIR_SLASH)MessageTracer.$(O) \
-    $(OUTDIR_SLASH)MethodFinder.$(O) \
-    $(OUTDIR_SLASH)ProfileTree.$(O) \
-    $(OUTDIR_SLASH)ProjectChecker.$(O) \
-    $(OUTDIR_SLASH)ProjectProblem.$(O) \
-    $(OUTDIR_SLASH)SourceCodeCache.$(O) \
-    $(OUTDIR_SLASH)SourceCodeManagerError.$(O) \
-    $(OUTDIR_SLASH)SourceCodeManagerUtilities.$(O) \
-    $(OUTDIR_SLASH)SystemEnvironment.$(O) \
-    $(OUTDIR_SLASH)SystemOrganizer.$(O) \
-    $(OUTDIR_SLASH)SystemProfiler.$(O) \
-    $(OUTDIR_SLASH)TraceBuffer.$(O) \
-    $(OUTDIR_SLASH)VersionInfo.$(O) \
-    $(OUTDIR_SLASH)WrappedMethod.$(O) \
-    $(OUTDIR_SLASH)stx_libbasic3.$(O) \
-    $(OUTDIR_SLASH)BeeProjectDefinitionWriter.$(O) \
-    $(OUTDIR_SLASH)BeeProjectSourceWriter.$(O) \
-    $(OUTDIR_SLASH)CVSSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)ChangeSetDiffEntry.$(O) \
-    $(OUTDIR_SLASH)ChangeSetDiffSet.$(O) \
-    $(OUTDIR_SLASH)ClassChange.$(O) \
-    $(OUTDIR_SLASH)CompositeChange.$(O) \
-    $(OUTDIR_SLASH)DataBaseSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)DataBaseSourceCodeManagerUtilities.$(O) \
-    $(OUTDIR_SLASH)DoItChange.$(O) \
-    $(OUTDIR_SLASH)FileBasedSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)FileInChange.$(O) \
-    $(OUTDIR_SLASH)GitSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)InvalidChange.$(O) \
-    $(OUTDIR_SLASH)MercurialSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)MethodChangeNotificationParameter.$(O) \
-    $(OUTDIR_SLASH)NameSpaceCreationChange.$(O) \
-    $(OUTDIR_SLASH)OtherChange.$(O) \
-    $(OUTDIR_SLASH)PerforceSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)SourceCodeManagerUtilitiesForContainerBasedManagers.$(O) \
-    $(OUTDIR_SLASH)SourceCodeManagerUtilitiesForWorkspaceBasedManagers.$(O) \
-    $(OUTDIR_SLASH)StoreSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)ClassCategoryChange.$(O) \
-    $(OUTDIR_SLASH)ClassClassVariableChange.$(O) \
-    $(OUTDIR_SLASH)ClassCommentChange.$(O) \
-    $(OUTDIR_SLASH)ClassDefinitionChange.$(O) \
-    $(OUTDIR_SLASH)ClassInitializeChange.$(O) \
-    $(OUTDIR_SLASH)ClassInstVarDefinitionChange.$(O) \
-    $(OUTDIR_SLASH)ClassOtherChange.$(O) \
-    $(OUTDIR_SLASH)ClassPrimitiveChange.$(O) \
-    $(OUTDIR_SLASH)ClassRemoveChange.$(O) \
-    $(OUTDIR_SLASH)ClassRenameChange.$(O) \
-    $(OUTDIR_SLASH)InfoChange.$(O) \
-    $(OUTDIR_SLASH)MethodCategoryChangeNotificationParameter.$(O) \
-    $(OUTDIR_SLASH)MethodCategoryRenameChange.$(O) \
-    $(OUTDIR_SLASH)MethodChange.$(O) \
-    $(OUTDIR_SLASH)MethodRemoveChangeNotificationParameter.$(O) \
-    $(OUTDIR_SLASH)MethodTrapChangeNotificationParameter.$(O) \
-    $(OUTDIR_SLASH)TimestampChange.$(O) \
-    $(OUTDIR_SLASH)ClassPrimitiveDefinitionsChange.$(O) \
-    $(OUTDIR_SLASH)ClassPrimitiveFunctionsChange.$(O) \
-    $(OUTDIR_SLASH)ClassPrimitiveVariablesChange.$(O) \
-    $(OUTDIR_SLASH)MethodCategoryChange.$(O) \
-    $(OUTDIR_SLASH)MethodDefinitionChange.$(O) \
-    $(OUTDIR_SLASH)MethodPackageChange.$(O) \
-    $(OUTDIR_SLASH)MethodPrivacyChange.$(O) \
-    $(OUTDIR_SLASH)MethodRemoveChange.$(O) \
-    $(OUTDIR_SLASH)extensions.$(O) \
+    $(OUTDIR)AbstractSourceCodeManager.$(O) \
+    $(OUTDIR)BeeProjectWriter.$(O) \
+    $(OUTDIR)BeeSourcePorter.$(O) \
+    $(OUTDIR)BeeSourceWriter.$(O) \
+    $(OUTDIR)CallChain.$(O) \
+    $(OUTDIR)Change.$(O) \
+    $(OUTDIR)ChangeDeltaInformation.$(O) \
+    $(OUTDIR)ChangeNotificationParameter.$(O) \
+    $(OUTDIR)ChangeSet.$(O) \
+    $(OUTDIR)ChangeSetDiff.$(O) \
+    $(OUTDIR)ChangeSetDiffComponent.$(O) \
+    $(OUTDIR)ClassOrganizer.$(O) \
+    $(OUTDIR)HTMLDocGenerator.$(O) \
+    $(OUTDIR)HistoryManager.$(O) \
+    $(OUTDIR)MessageTally.$(O) \
+    $(OUTDIR)MessageTracer.$(O) \
+    $(OUTDIR)MethodFinder.$(O) \
+    $(OUTDIR)ProfileTree.$(O) \
+    $(OUTDIR)ProjectChecker.$(O) \
+    $(OUTDIR)ProjectProblem.$(O) \
+    $(OUTDIR)SourceCodeCache.$(O) \
+    $(OUTDIR)SourceCodeManagerError.$(O) \
+    $(OUTDIR)SourceCodeManagerUtilities.$(O) \
+    $(OUTDIR)SystemEnvironment.$(O) \
+    $(OUTDIR)SystemOrganizer.$(O) \
+    $(OUTDIR)SystemProfiler.$(O) \
+    $(OUTDIR)TraceBuffer.$(O) \
+    $(OUTDIR)VersionInfo.$(O) \
+    $(OUTDIR)WrappedMethod.$(O) \
+    $(OUTDIR)stx_libbasic3.$(O) \
+    $(OUTDIR)BeeProjectDefinitionWriter.$(O) \
+    $(OUTDIR)BeeProjectSourceWriter.$(O) \
+    $(OUTDIR)CVSSourceCodeManager.$(O) \
+    $(OUTDIR)ChangeSetDiffEntry.$(O) \
+    $(OUTDIR)ChangeSetDiffSet.$(O) \
+    $(OUTDIR)ClassChange.$(O) \
+    $(OUTDIR)CompositeChange.$(O) \
+    $(OUTDIR)DataBaseSourceCodeManager.$(O) \
+    $(OUTDIR)DataBaseSourceCodeManagerUtilities.$(O) \
+    $(OUTDIR)DoItChange.$(O) \
+    $(OUTDIR)FileBasedSourceCodeManager.$(O) \
+    $(OUTDIR)FileInChange.$(O) \
+    $(OUTDIR)GitSourceCodeManager.$(O) \
+    $(OUTDIR)InvalidChange.$(O) \
+    $(OUTDIR)MercurialSourceCodeManager.$(O) \
+    $(OUTDIR)MethodChangeNotificationParameter.$(O) \
+    $(OUTDIR)NameSpaceCreationChange.$(O) \
+    $(OUTDIR)OtherChange.$(O) \
+    $(OUTDIR)PerforceSourceCodeManager.$(O) \
+    $(OUTDIR)SourceCodeManagerUtilitiesForContainerBasedManagers.$(O) \
+    $(OUTDIR)SourceCodeManagerUtilitiesForWorkspaceBasedManagers.$(O) \
+    $(OUTDIR)StoreSourceCodeManager.$(O) \
+    $(OUTDIR)ClassCategoryChange.$(O) \
+    $(OUTDIR)ClassClassVariableChange.$(O) \
+    $(OUTDIR)ClassCommentChange.$(O) \
+    $(OUTDIR)ClassDefinitionChange.$(O) \
+    $(OUTDIR)ClassInitializeChange.$(O) \
+    $(OUTDIR)ClassInstVarDefinitionChange.$(O) \
+    $(OUTDIR)ClassOtherChange.$(O) \
+    $(OUTDIR)ClassPrimitiveChange.$(O) \
+    $(OUTDIR)ClassRemoveChange.$(O) \
+    $(OUTDIR)ClassRenameChange.$(O) \
+    $(OUTDIR)InfoChange.$(O) \
+    $(OUTDIR)MethodCategoryChangeNotificationParameter.$(O) \
+    $(OUTDIR)MethodCategoryRenameChange.$(O) \
+    $(OUTDIR)MethodChange.$(O) \
+    $(OUTDIR)MethodRemoveChangeNotificationParameter.$(O) \
+    $(OUTDIR)MethodTrapChangeNotificationParameter.$(O) \
+    $(OUTDIR)TimestampChange.$(O) \
+    $(OUTDIR)ClassPrimitiveDefinitionsChange.$(O) \
+    $(OUTDIR)ClassPrimitiveFunctionsChange.$(O) \
+    $(OUTDIR)ClassPrimitiveVariablesChange.$(O) \
+    $(OUTDIR)MethodCategoryChange.$(O) \
+    $(OUTDIR)MethodDefinitionChange.$(O) \
+    $(OUTDIR)MethodPackageChange.$(O) \
+    $(OUTDIR)MethodPrivacyChange.$(O) \
+    $(OUTDIR)MethodRemoveChange.$(O) \
+    $(OUTDIR)extensions.$(O) \
 
 
 
--- a/abbrev.stc	Thu Oct 11 19:44:14 2018 +0200
+++ b/abbrev.stc	Thu Oct 11 20:14:15 2018 +0200
@@ -3,6 +3,7 @@
 # it provides information about a classes filename, category and especially namespace.
 AbstractSourceCodeManager AbstractSourceCodeManager stx:libbasic3 'System-SourceCodeManagement' 0
 BeeProjectWriter BeeProjectWriter stx:libbasic3 'Kernel-Classes-Support' 0
+BeeSourcePorter BeeSourcePorter 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
--- a/bc.mak	Thu Oct 11 19:44:14 2018 +0200
+++ b/bc.mak	Thu Oct 11 20:14:15 2018 +0200
@@ -69,7 +69,7 @@
 
 
 
-test: $(TOP)\goodies\builder\reports\NUL
+test: $(TOP)\goodies\builder\reports
 	pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
 	$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
         
@@ -79,6 +79,9 @@
 
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)AbstractSourceCodeManager.$(O) AbstractSourceCodeManager.$(C) AbstractSourceCodeManager.$(H): AbstractSourceCodeManager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectWriter.$(O) BeeProjectWriter.$(C) BeeProjectWriter.$(H): BeeProjectWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSourcePorter.$(O) BeeSourcePorter.$(C) BeeSourcePorter.$(H): BeeSourcePorter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSourceWriter.$(O) BeeSourceWriter.$(C) 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.$(C) CallChain.$(H): CallChain.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Change.$(O) Change.$(C) Change.$(H): Change.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)ChangeDeltaInformation.$(O) ChangeDeltaInformation.$(C) ChangeDeltaInformation.$(H): ChangeDeltaInformation.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -100,10 +103,13 @@
 $(OUTDIR)SourceCodeManagerUtilities.$(O) SourceCodeManagerUtilities.$(C) SourceCodeManagerUtilities.$(H): SourceCodeManagerUtilities.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SystemEnvironment.$(O) SystemEnvironment.$(C) SystemEnvironment.$(H): SystemEnvironment.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SystemOrganizer.$(O) SystemOrganizer.$(C) SystemOrganizer.$(H): SystemOrganizer.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SystemProfiler.$(O) SystemProfiler.$(C) SystemProfiler.$(H): SystemProfiler.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TraceBuffer.$(O) TraceBuffer.$(C) TraceBuffer.$(H): TraceBuffer.st $(INCLUDE_TOP)\stx\libbasic\Array.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(STCHDR)
 $(OUTDIR)VersionInfo.$(O) VersionInfo.$(C) VersionInfo.$(H): VersionInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)WrappedMethod.$(O) WrappedMethod.$(C) WrappedMethod.$(H): WrappedMethod.st $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libbasic3.$(O) stx_libbasic3.$(C) stx_libbasic3.$(H): stx_libbasic3.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectDefinitionWriter.$(O) BeeProjectDefinitionWriter.$(C) BeeProjectDefinitionWriter.$(H): BeeProjectDefinitionWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\BeeProjectWriter.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectSourceWriter.$(O) BeeProjectSourceWriter.$(C) BeeProjectSourceWriter.$(H): BeeProjectSourceWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\BeeProjectWriter.$(H) $(STCHDR)
 $(OUTDIR)CVSSourceCodeManager.$(O) CVSSourceCodeManager.$(C) CVSSourceCodeManager.$(H): CVSSourceCodeManager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\AbstractSourceCodeManager.$(H) $(INCLUDE_TOP)\stx\libbasic3\VersionInfo.$(H) $(STCHDR)
 $(OUTDIR)ChangeSetDiffEntry.$(O) ChangeSetDiffEntry.$(C) ChangeSetDiffEntry.$(H): ChangeSetDiffEntry.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\ChangeSetDiffComponent.$(H) $(STCHDR)
 $(OUTDIR)ChangeSetDiffSet.$(O) ChangeSetDiffSet.$(C) ChangeSetDiffSet.$(H): ChangeSetDiffSet.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\ChangeSetDiffComponent.$(H) $(STCHDR)
--- a/bmake.bat	Thu Oct 11 19:44:14 2018 +0200
+++ b/bmake.bat	Thu Oct 11 20:14:15 2018 +0200
@@ -4,7 +4,9 @@
 @REM do not edit - automatically generated from ProjectDefinition
 @REM -------
 @SET DEFINES=
-
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 
 make.exe -N -f bc.mak  %DEFINES% %*
 
--- a/libInit.cc	Thu Oct 11 19:44:14 2018 +0200
+++ b/libInit.cc	Thu Oct 11 20:14:15 2018 +0200
@@ -17,6 +17,9 @@
 #endif
 
 extern void _AbstractSourceCodeManager_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeProjectWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeSourcePorter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeSourceWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _CallChain_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _Change_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _ChangeDeltaInformation_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -38,10 +41,13 @@
 extern void _SourceCodeManagerUtilities_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SystemEnvironment_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SystemOrganizer_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _SystemProfiler_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _TraceBuffer_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VersionInfo_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _WrappedMethod_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _stx_137libbasic3_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeProjectDefinitionWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeProjectSourceWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _CVSSourceCodeManager_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _ChangeSetDiffEntry_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _ChangeSetDiffSet_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -87,14 +93,6 @@
 extern void _MethodPackageChange_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _MethodPrivacyChange_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _MethodRemoveChange_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _MethodPackageChange_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _MethodPrivacyChange_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _MethodRemoveChange_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _BeeProjectWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _BeeSourceWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _SystemProfiler_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _BeeProjectDefinitionWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
-extern void _BeeProjectSourceWriter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 
 extern void _stx_137libbasic3_extensions_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 
@@ -111,6 +109,7 @@
   __BEGIN_PACKAGE2__("libstx_libbasic3", _libstx_libbasic3_Init, "stx:libbasic3");
     _AbstractSourceCodeManager_Init(pass,__pRT__,snd);
     _BeeProjectWriter_Init(pass,__pRT__,snd);
+    _BeeSourcePorter_Init(pass,__pRT__,snd);
     _BeeSourceWriter_Init(pass,__pRT__,snd);
     _CallChain_Init(pass,__pRT__,snd);
     _Change_Init(pass,__pRT__,snd);
--- a/mingwmake.bat	Thu Oct 11 19:44:14 2018 +0200
+++ b/mingwmake.bat	Thu Oct 11 20:14:15 2018 +0200
@@ -4,6 +4,9 @@
 @REM do not edit - automatically generated from ProjectDefinition
 @REM -------
 @SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 
 @pushd ..\rules
 @call find_mingw.bat
@@ -13,5 +16,3 @@
 
 
 
-
-
--- a/stx_libbasic3.st	Thu Oct 11 19:44:14 2018 +0200
+++ b/stx_libbasic3.st	Thu Oct 11 20:14:15 2018 +0200
@@ -83,7 +83,8 @@
      are extended by myself.
      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."
+     by searching along the inheritance chain of all of my classes.
+     Please take a look at the #referencedPreRequisites method as well."
 
     ^ #(
         #'stx:libbasic'    "AbstractSourceFileWriter - superclass of BeeSourceWriter"
@@ -93,18 +94,17 @@
 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 compiling or loading,
+     These packages are NOT needed 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."
+     by searching all classes (and their packages) which are referenced by my classes.
+     Please also take a look at the #mandatoryPreRequisites method"
 
     ^ #(
         #'stx:libbasic2'    "HTMLUtilities - referenced by HTMLDocGenerator>>generateClassDocReferenceFor:text:autoloading:"
     )
-
-    "Modified: / 31-05-2016 / 23:19:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 subProjects
@@ -196,6 +196,7 @@
         "<className> or (<className> attributes...) in load order"
         AbstractSourceCodeManager
         BeeProjectWriter
+        BeeSourcePorter
         BeeSourceWriter
         CallChain
         Change
@@ -277,8 +278,6 @@
         (VSEPackageFileSourceWriter autoload)
         (VisualAgeChunkFileSourceWriter autoload)
     )
-
-    "Modified: / 31-05-2016 / 23:19:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 extensionMethodNames
--- a/vcmake.bat	Thu Oct 11 19:44:14 2018 +0200
+++ b/vcmake.bat	Thu Oct 11 20:14:15 2018 +0200
@@ -10,7 +10,9 @@
     popd
 )
 @SET DEFINES=
-
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 
 
 make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*