Some work on Bee project exporter jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 02 Nov 2015 20:30:10 +0000
branchjv
changeset 3921 243f926d6101
parent 3920 5bbc53c2e67d
child 3922 ae8879b8ba67
Some work on Bee project exporter
BeeProjectDefinitionWriter.st
BeeProjectSourceWriter.st
BeeProjectWriter.st
Make.proto
Make.spec
abbrev.stc
bc.mak
libInit.cc
stx_libbasic3.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BeeProjectDefinitionWriter.st	Mon Nov 02 20:30:10 2015 +0000
@@ -0,0 +1,94 @@
+"
+ 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 }"
+
+BeeProjectWriter subclass:#BeeProjectDefinitionWriter
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Classes-Support'
+!
+
+!BeeProjectDefinitionWriter 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
+"
+    A writer to write Smalltalk/X package in Bee Smalltalk format (.prj). Usage:
+
+    BeeProjectDefinitionWriter fileOut: 'jv:calipel/s' to: '/tmp/jv-calipel-s.prj'
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!BeeProjectDefinitionWriter methodsFor:'source writing'!
+
+fileOutClasses: classes on: stream
+
+    classes do:[:class |  
+        stream nextPutAll: 'project addClass: '; nextPutAll: class name storeString; nextPutAll: '.'; cr.
+    ]
+
+    "Modified: / 02-11-2015 / 19:14:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutExtensions:methods on: stream
+
+    "Modified: / 02-11-2015 / 19:15:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutHeaderOn:aStream
+
+    aStream nextPutAll:(
+'"
+        __________________________________________________
+        @VM Project 1.0
+        __________________________________________________
+"
+
+| project |
+project := SimpleSmalltalkProject new 
+        name: ''%(NAME)'';
+        version: ''%(VERSION)'';
+        description: ''%(DESCRIPTION)'';
+        author: ''%(AUTHOR)'';
+        yourself.
+
+' bindWithArguments: self mappings)
+
+    "Modified: / 02-11-2015 / 19:16:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/BeeProjectSourceWriter.st	Thu Oct 29 06:54:10 2015 +0100
+++ b/BeeProjectSourceWriter.st	Mon Nov 02 20:30:10 2015 +0000
@@ -13,8 +13,8 @@
 
 "{ NameSpace: Smalltalk }"
 
-Object subclass:#BeeProjectSourceWriter
-	instanceVariableNames:'projectDefinitionClass classesToBeInitialized'
+BeeProjectWriter subclass:#BeeProjectSourceWriter
+	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Kernel-Classes-Support'
@@ -34,62 +34,28 @@
  other person.  No title to or ownership of the software is
  hereby transferred.
 "
-! !
+!
 
-!BeeProjectSourceWriter class methodsFor:'simple API'!
+documentation
+"
+    A writer to write Smalltalk/X package in Bee Smalltalk format (.stp). Usage:
+
+    BeeProjectSourceWriter fileOut: 'jv:calipel/s' to: '/tmp/jv-calipel-s.stp'
 
-fileOut:aClass on:aStream
-    self new fileOut:aClass on:aStream
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
 
-    "Modified: / 14-04-2015 / 13:52:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    [class variables:]
+
+    [see also:]
+
+"
 ! !
 
 !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 |
 
@@ -121,18 +87,21 @@
 
 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:'"'.
+    aStream nextPutAll:(
+'"
+        __________________________________________________
+        Author: %(AUTHOR).
+        Project name: %(NAME)
+        Version: %(VERSION)
+        Timestamp: %(TIMESTAMP)
+        Description: %(DESCRIPTION)
+        __________________________________________________
+"
+
+' bindWithArguments: self mappings)
 
     "Created: / 14-04-2015 / 13:42:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-11-2015 / 19:00:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !BeeProjectSourceWriter methodsFor:'utilities'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BeeProjectWriter.st	Mon Nov 02 20:30:10 2015 +0000
@@ -0,0 +1,141 @@
+"
+ 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:#BeeProjectWriter
+	instanceVariableNames:'projectDefinitionClass classesToBeInitialized'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Classes-Support'
+!
+
+!BeeProjectWriter 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.
+"
+! !
+
+!BeeProjectWriter class methodsFor:'queries'!
+
+isAbstract
+    "Return if this class is an abstract class.
+     True is returned here for myself only; false for subclasses.
+     Abstract subclasses must redefine again."
+
+    ^ self == BeeProjectWriter.
+! !
+
+!BeeProjectWriter class methodsFor:'simple API'!
+
+fileOut:packageId on:stream
+    self new fileOut:packageId on:stream
+
+    "Modified: / 14-04-2015 / 13:52:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOut:packageId to: stringOrFilename
+    stringOrFilename asFilename writingFileDo:[ :stream |
+        self fileOut: packageId on: stream
+    ].
+
+    "Created: / 24-10-2015 / 08:49:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeProjectWriter methodsFor:'private'!
+
+mappings
+    | revinfo mappings |
+
+    revinfo := projectDefinitionClass revisionInfo.
+    mappings := Dictionary new.
+    mappings at: 'NAME' put: projectDefinitionClass name.
+    mappings at: 'VERSION' put: revinfo revision.
+    mappings at: 'AUTHOR' put: revinfo author asString.
+    mappings at: 'TIMESTAMP' put: revinfo date asString, ' ', revinfo time asString.
+    mappings at: 'DESCRIPTION' put: projectDefinitionClass description.
+    ^ mappings
+
+    "Created: / 02-11-2015 / 16:59:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 02-11-2015 / 18:58:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeProjectWriter 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...'.
+
+    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>"
+    "Modified: / 02-11-2015 / 19:06:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileOutClasses:arg1 on:arg2
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+!
+
+fileOutExtensions:arg1 on:arg2
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+!
+
+fileOutHeaderOn:arg
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+! !
+
--- a/Make.proto	Thu Oct 29 06:54:10 2015 +0100
+++ b/Make.proto	Mon Nov 02 20:30:10 2015 +0000
@@ -144,7 +144,7 @@
 
 # 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)BeeProjectWriter.$(O) BeeProjectWriter.$(H): BeeProjectWriter.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)
@@ -171,6 +171,8 @@
 $(OUTDIR)VersionInfo.$(O) VersionInfo.$(H): VersionInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)WrappedMethod.$(O) 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.$(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.$(H): BeeProjectDefinitionWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/BeeProjectWriter.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectSourceWriter.$(O) BeeProjectSourceWriter.$(H): BeeProjectSourceWriter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/BeeProjectWriter.$(H) $(STCHDR)
 $(OUTDIR)CVSSourceCodeManager.$(O) CVSSourceCodeManager.$(H): CVSSourceCodeManager.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/AbstractSourceCodeManager.$(H) $(STCHDR)
 $(OUTDIR)CVSVersionInfo.$(O) CVSVersionInfo.$(H): CVSVersionInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/VersionInfo.$(H) $(STCHDR)
 $(OUTDIR)ChangeSetDiffEntry.$(O) ChangeSetDiffEntry.$(H): ChangeSetDiffEntry.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/ChangeSetDiffComponent.$(H) $(STCHDR)
--- a/Make.spec	Thu Oct 29 06:54:10 2015 +0100
+++ b/Make.spec	Mon Nov 02 20:30:10 2015 +0000
@@ -52,7 +52,7 @@
 
 COMMON_CLASSES= \
 	AbstractSourceCodeManager \
-	BeeProjectSourceWriter \
+	BeeProjectWriter \
 	BeeSourceWriter \
 	CallChain \
 	Change \
@@ -79,6 +79,8 @@
 	VersionInfo \
 	WrappedMethod \
 	stx_libbasic3 \
+	BeeProjectDefinitionWriter \
+	BeeProjectSourceWriter \
 	CVSSourceCodeManager \
 	CVSVersionInfo \
 	ChangeSetDiffEntry \
@@ -132,7 +134,7 @@
 
 COMMON_OBJS= \
     $(OUTDIR_SLASH)AbstractSourceCodeManager.$(O) \
-    $(OUTDIR_SLASH)BeeProjectSourceWriter.$(O) \
+    $(OUTDIR_SLASH)BeeProjectWriter.$(O) \
     $(OUTDIR_SLASH)BeeSourceWriter.$(O) \
     $(OUTDIR_SLASH)CallChain.$(O) \
     $(OUTDIR_SLASH)Change.$(O) \
@@ -159,6 +161,8 @@
     $(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)CVSVersionInfo.$(O) \
     $(OUTDIR_SLASH)ChangeSetDiffEntry.$(O) \
--- a/abbrev.stc	Thu Oct 29 06:54:10 2015 +0100
+++ b/abbrev.stc	Mon Nov 02 20:30:10 2015 +0000
@@ -2,7 +2,7 @@
 # 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
+BeeProjectWriter BeeProjectWriter 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
@@ -29,6 +29,8 @@
 VersionInfo VersionInfo stx:libbasic3 'System-SourceCodeManagement' 0
 WrappedMethod WrappedMethod stx:libbasic3 'Kernel-Methods' 0
 stx_libbasic3 stx_libbasic3 stx:libbasic3 '* Projects & Packages *' 3
+BeeProjectDefinitionWriter BeeProjectDefinitionWriter stx:libbasic3 'Kernel-Classes-Support' 0
+BeeProjectSourceWriter BeeProjectSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
 CVSSourceCodeManager CVSSourceCodeManager stx:libbasic3 'System-SourceCodeManagement' 0
 CVSVersionInfo CVSVersionInfo stx:libbasic3 'System-SourceCodeManagement' 0
 ChangeSetDiffEntry ChangeSetDiffEntry stx:libbasic3 'System-Changes-Diff' 0
@@ -76,9 +78,9 @@
 MethodPackageChange MethodPackageChange stx:libbasic3 'System-Changes' 0
 MethodPrivacyChange MethodPrivacyChange stx:libbasic3 'System-Changes' 0
 MethodRemoveChange MethodRemoveChange stx:libbasic3 'System-Changes' 0
-VSEFileSourceWriter VSEFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
-VSEPackageFileSourceWriter VSEPackageFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
 TraitClassTraitDefinitionChange TraitClassTraitDefinitionChange stx:libbasic3 'System-Changes' 0
 TraitDefinitionChange TraitDefinitionChange stx:libbasic3 'System-Changes' 0
 VSEChunkFileSourceWriter VSEChunkFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
+VSEFileSourceWriter VSEFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
+VSEPackageFileSourceWriter VSEPackageFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
 VisualAgeChunkFileSourceWriter VisualAgeChunkFileSourceWriter stx:libbasic3 'Kernel-Classes-Support' 0
--- a/bc.mak	Thu Oct 29 06:54:10 2015 +0100
+++ b/bc.mak	Mon Nov 02 20:30:10 2015 +0000
@@ -72,7 +72,7 @@
 
 # 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)BeeProjectWriter.$(O) BeeProjectWriter.$(H): BeeProjectWriter.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)
@@ -99,6 +99,8 @@
 $(OUTDIR)VersionInfo.$(O) VersionInfo.$(H): VersionInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)WrappedMethod.$(O) 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.$(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.$(H): BeeProjectDefinitionWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\BeeProjectWriter.$(H) $(STCHDR)
+$(OUTDIR)BeeProjectSourceWriter.$(O) BeeProjectSourceWriter.$(H): BeeProjectSourceWriter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\BeeProjectWriter.$(H) $(STCHDR)
 $(OUTDIR)CVSSourceCodeManager.$(O) CVSSourceCodeManager.$(H): CVSSourceCodeManager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\AbstractSourceCodeManager.$(H) $(STCHDR)
 $(OUTDIR)CVSVersionInfo.$(O) CVSVersionInfo.$(H): CVSVersionInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\VersionInfo.$(H) $(STCHDR)
 $(OUTDIR)ChangeSetDiffEntry.$(O) ChangeSetDiffEntry.$(H): ChangeSetDiffEntry.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\ChangeSetDiffComponent.$(H) $(STCHDR)
--- a/libInit.cc	Thu Oct 29 06:54:10 2015 +0100
+++ b/libInit.cc	Mon Nov 02 20:30:10 2015 +0000
@@ -28,7 +28,7 @@
 OBJ snd; struct __vmData__ *__pRT__; {
 __BEGIN_PACKAGE2__("libstx_libbasic3", _libstx_libbasic3_Init, "stx:libbasic3");
 _AbstractSourceCodeManager_Init(pass,__pRT__,snd);
-_BeeProjectSourceWriter_Init(pass,__pRT__,snd);
+_BeeProjectWriter_Init(pass,__pRT__,snd);
 _BeeSourceWriter_Init(pass,__pRT__,snd);
 _CallChain_Init(pass,__pRT__,snd);
 _Change_Init(pass,__pRT__,snd);
@@ -55,6 +55,8 @@
 _VersionInfo_Init(pass,__pRT__,snd);
 _WrappedMethod_Init(pass,__pRT__,snd);
 _stx_137libbasic3_Init(pass,__pRT__,snd);
+_BeeProjectDefinitionWriter_Init(pass,__pRT__,snd);
+_BeeProjectSourceWriter_Init(pass,__pRT__,snd);
 _CVSSourceCodeManager_Init(pass,__pRT__,snd);
 _CVSVersionInfo_Init(pass,__pRT__,snd);
 _ChangeSetDiffEntry_Init(pass,__pRT__,snd);
--- a/stx_libbasic3.st	Thu Oct 29 06:54:10 2015 +0100
+++ b/stx_libbasic3.st	Mon Nov 02 20:30:10 2015 +0000
@@ -134,7 +134,7 @@
     ^ #(
         "<className> or (<className> attributes...) in load order"
         AbstractSourceCodeManager
-        BeeProjectSourceWriter
+        BeeProjectWriter
         BeeSourceWriter
         CallChain
         Change
@@ -161,6 +161,8 @@
         VersionInfo
         WrappedMethod
         #'stx_libbasic3'
+        BeeProjectDefinitionWriter
+        BeeProjectSourceWriter
         CVSSourceCodeManager
         CVSVersionInfo
         ChangeSetDiffEntry
@@ -208,11 +210,11 @@
         MethodPackageChange
         MethodPrivacyChange
         MethodRemoveChange
-        (VSEFileSourceWriter autoload)
-        (VSEPackageFileSourceWriter autoload)
         (TraitClassTraitDefinitionChange autoload)
         (TraitDefinitionChange autoload)
         (VSEChunkFileSourceWriter autoload)
+        (VSEFileSourceWriter autoload)
+        (VSEPackageFileSourceWriter autoload)
         (VisualAgeChunkFileSourceWriter autoload)
     )
 !