this is Seaside30 on Pharo2.0 and also on Seaside 31 on Pharo30 Stef
> is this 3.0? > > We removed CompiledMethodWithNode there… > > > On Jun 30, 2013, at 10:35 AM, Stéphane Ducasse <stephane.duca...@inria.fr> > wrote: > >> Probably linked to >> >> addFileIn: invokes >> >> >> compile: aString into: aClass classified: aSymbol >> >> "The trick here is to be as silently a possible so that the package is >> not marked dirty when running WAFileLibrary test. >> This also makes running tests much faster." >> >> >> | methodNode compiledMethod selector methodAndNode | >> methodNode := aClass compilerClass new >> compile: aString >> in: aClass >> notifying: nil >> ifFail: [ GRError signal: 'syntax error' ]. >> selector := methodNode selector. >> methodAndNode := CompiledMethodWithNode >> generateMethodFromNode: methodNode >> trailer: aClass defaultMethodTrailer. >> compiledMethod := methodAndNode method. >> compiledMethod >> putSource: aString >> fromParseNode: methodAndNode node >> inFile: 2 >> withPreamble: [ :file | >> aClass >> printCategoryChunk: aSymbol asString >> on: file priorMethod: (aClass compiledMethodAt: >> selector ifAbsent: [ nil ]). >> file cr ]. >> aClass >> addSelectorSilently: selector >> withMethod: compiledMethod. >> self doSilently: [ >> aClass organization >> classify: selector >> under: aSymbol ] >> >> And after it breaks nicely…. >> >> Stef >> >> >> >> On Jun 30, 2013, at 10:24 AM, Stéphane Ducasse <stephane.duca...@inria.fr> >> wrote: >> >>> Hi esteban >>> >>> In Seaside, I created a subclass of WAFileLibrary >>> then >>> StefWAFileLibrary addAllFilesIn: 'foo' >>> my folder foo contained a simple sh file >>> >>> I got a method created in the class side of StefWAFileLibrary >>> >>> I created a separated package and I could not save (I could save) but the >>> method could be included. >>> I added other methods by hand and they were saved but not the methods >>> created by the addAllFilesIn: >>> >>> I suspect that the addAllFilesIn: did not raise a proper announcement. >>> When I put a halt in snapshot packageSet does not get any methods. >>> >>> Stef >>> >>> >>> snapshot >>> | packageInfo definitions categories | >>> self halt. >>> packageInfo := self packageSet. >>> definitions := OrderedCollection new. >>> categories := (packageInfo packages collect: #packageName) asArray. >>> categories isEmpty >>> ifFalse: [ definitions add: (MCOrganizationDefinition >>> categories: categories) ]. >>> >>> packageInfo methods >>> do: [:ea | definitions add: ea asMCMethodDefinition] >>> displayingProgress: [ :ea| 'Snapshotting methods...' ]. >>> >>> packageInfo overriddenMethods >>> do: [:ea | definitions add: >>> (packageInfo >>> changeRecordForOverriddenMethod: ea) asMCMethodDefinition] >>> displayingProgress: [ :ea| 'Searching for overrides in ', ea >>> asString ]. >>> >>> packageInfo definedClasses >>> do: [:ea | definitions addAll: ea classDefinitions] >>> displayingProgress: [ :ea| 'Snapshotting class ', ea asString ]. >>> >>> (packageInfo respondsTo: #hasPreamble) ifTrue: [ >>> packageInfo hasPreamble >>> ifTrue: [definitions add: (MCPreambleDefinition from: >>> packageInfo)]. >>> packageInfo hasPostscript >>> ifTrue: [definitions add: (MCPostscriptDefinition from: >>> packageInfo)]. >>> packageInfo hasPreambleOfRemoval >>> ifTrue: [definitions add: (MCRemovalPreambleDefinition >>> from: packageInfo)]. >>> packageInfo hasPostscriptOfRemoval >>> ifTrue: [definitions add: >>> (MCRemovalPostscriptDefinition from: packageInfo)]]. >>> ^ MCSnapshot fromDefinitions: definitions >>> >>> >>> Stef >> >> > >