GemTalk / Rowan

a new project/package manager for Smalltalk that supports FileTree and Tonel repositories, and is independent of Monticello and Metacello
MIT License
13 stars 7 forks source link

GsFileinPackager breaks on arbitrary doit . #882

Open AllenOtis opened 1 year ago

AllenOtis commented 1 year ago

Trying to add a GsFile gciLogServer: message send to a doit in file RowanSample9-Core.gs, and I get the following stack . Seems like GsFileinPackager should perhaps give up and just let the superclass handle it , or else signal an error about 'unsupported file format ', since it apparently can't handle the full syntax supported by GsFileIn .

ERROR 2010 , a MessageNotUnderstood occurred (error 2010), a RBAssignmentNode does not understand #'selector' 6 RBAssignmentNode (Object) >> _doesNotUnderstand:args:envId:reason: @12 line 17 7 [] in GsFileinPackager >> parseRBDoitChunkForDefinition: @66 line 52 8 OrderedCollection (Collection) >> do: @5 line 10 9 [] in GsFileinPackager >> parseRBDoitChunkForDefinition: @12 line 16 10 RBSequenceNode (RBProgramNode) >> do: @2 line 4 11 GsFileinPackager >> parseRBDoitChunkForDefinition: @5 line 12 12 [] in GsFileinPackager class >> toPackagesForDefinedProject:componentName:fromServerPath: @6 line 7 13 ExecBlock2 (ExecBlock) >> cull:cull: @12 line 10 14 GsFileinPackager >> doit @4 line 2 15 GsFileinPackager (GsFileIn) >> processLine @16 line 8 16 [] in GsFileIn >> doFileIn @19 line 9 17 ExecBlock0 (ExecBlock) >> on:do: @3 line 44 18 [] in GsFileIn >> doFileIn @15 line 10 19 ExecBlock0 (ExecBlock) >> ensure: @2 line 12 20 GsFileinPackager (GsFileIn) >> doFileIn @2 line 18 21 GsFileinPackager class >> toPackagesForDefinedProject:packageNameToComponentNameMap:defaultComponentName:fromStream:onDoitBlock: @11 line 12 22 [] in GsFileinPackager class >> toPackagesForDefinedProject:packageNameToComponentNameMap:defaultComponentName:fromServerPath:onDoitBlock: @8 line 6 23 ExecBlock0 (ExecBlock) >> ensure: @2 line 12 24 GsFileinPackager class >> toPackagesForDefinedProject:packageNameToComponentNameMap:defaultComponentName:fromServerPath:onDoitBlock: @4 line 11 25 GsFileinPackager class >> toPackagesForDefinedProject:componentName:fromServerPath: @3 line 3 26 [] in RwRepositoryResolvedProjectTopazPackageReaderVisitorV2 >> readPackages: @35 line 21 27 Array (Collection) >> do: @5 line 10 28 RwRepositoryResolvedProjectTopazPackageReaderVisitorV2 >> readPackages: @6 line 5 29 RwRepositoryResolvedProjectTopazPackageReaderVisitorV2 (RwRepositoryComponentProjectReaderVisitor) >> visitResolvedProjectV2: @7 line 5 30 RwResolvedProjectV2 >> acceptVisitor: @2 line 2 31 RwRepositoryResolvedProjectTopazPackageReaderVisitorV2 (RwRepositoryComponentProjectReaderVisitor) >> visit: @2 line 3 32 RwResolvedProjectV2 >> readPackageNames: @21 line 25 33 RwPrjReadToolV2 >> readProjectForResolvedProject:withComponentNames:platformConditionalAttributes: @4 line 6 34 RwResolvedProjectV2 >> readProjectComponentNames:platformConditionalAttributes: @5 line 8 35 RwResolvedProjectV2 >> readProjectComponentNames: @3 line 7 36 RwResolvedProjectV2 >> read @5 line 7 37 RwResolvedProjectV2 >> resolve @9 line 11 38 RwResolvedProjectV2 class >> loadSpecification: @3 line 8 39 RwLoadSpecificationV2 >> resolve @2 line 7 40 [] in RwLoadSpecificationV2 >> resolveStrict @13 line 11 41 ExecBlock0 (ExecBlock) >> ensure: @2 line 12 42 RwLoadSpecificationV2 >> resolveStrict @8 line 12 43 RwRowanSample9Test class (RwAbstractRowanSampleTest class) >> _loadSpecNamed: @11 line 22 44 RwRowanSample9Test (RwAbstractRowanSampleTest) >> _loadSpecNamed: @3 line 3 45 RwRowanSample9Test >> testSpec_0082 @2 line 6

dalehenrich commented 1 year ago

Yeah, this was somewhat intentional ... I am curious how many different doits will contain subclass creation messages so I left the case of handling doits until a later date ... I'm on the fence about going ahead and executing the doit and throwing an error if I don't recognize the class creation method ... in the end other things became more important than topaz format packages ... especially since we decided that we weren't going to use them in the base :)