Skip to content

Pharo12 - PetitParser2-RewriteEngine package unloadable #84

Description

@tukanos

If you try to load the PetitParser2-RewriteEngine it is unloadable due to missing dependencies. Here are the details.

The window title warning:

Warning: Package PetitParser2-RewriteEngine depends on the following classes:  SmaCCRewriteEngine  SmaCCRewriteTreeMatch  SmaCCToken  SmaCCRewriteMatchContext  SmaCCGLRParser  SmaCCRewriteRuleFileParser  SmaCCParseNodeVisitor  SmaCCScanner  SmaCCPatternNode  SmaCCParseNodeYou must resolve these dependencies before you will be able to load these definitions:   ASTBinaryNode  ASTBinaryNode>>#acceptVisitor:  ASTBinaryNode>>#left  ASTBinaryNode>>#left:  ASTBinaryNode>>#nodeVariables  ASTBinaryNode>>#operator  ASTBinaryNode>>#operator:  ASTBinaryNode>>#right  ASTBinaryNode>>#right:  ASTBinaryNode>>#tokenVariables  ASTExpressionNode  ASTExpressionNode>>#acceptVisitor:  ASTExpressionNode>>#ignoredCompositeTokenVariables  ASTExpressionNode>>#initialize  ASTExpressionNode>>#leftParenTokens  ASTExpressionNode>>#leftParenTokens:  ASTExpressionNode>>#rightParenTokens  ASTExpressionNode>>#rightParenTokens:  ASTExpressionNodeVisitor  ASTExpressionNodeVisitor>>#visitBinary:  ASTExpressionNodeVisitor>>#visitExpression:  ASTExpressionNodeVisitor>>#visitFunction:  ASTExpressionNodeVisitor>>#visitNumber:  ASTFunctionNode  ASTFunctionNode>>#acceptVisitor:  ASTFunctionNode>>#arguments  ASTFunctionNode>>#arguments:  ASTFunctionNode>>#commaTokens  ASTFunctionNode>>#commaTokens:  ASTFunctionNode>>#compositeNodeVariables  ASTFunctionNode>>#compositeTokenVariables  ASTFunctionNode>>#initialize  ASTFunctionNode>>#leftParen  ASTFunctionNode>>#leftParen:  ASTFunctionNode>>#nameToken  ASTFunctionNode>>#nameToken:  ASTFunctionNode>>#rightParen  ASTFunctionNode>>#rightParen:  ASTFunctionNode>>#tokenVariables  ASTNumberNode  ASTNumberNode>>#acceptVisitor:  ASTNumberNode>>#numberToken  ASTNumberNode>>#numberToken:  ASTNumberNode>>#tokenVariables  ExpressionParser  ExpressionParser>>#cacheId  ExpressionParser>>#definitionComment  ExpressionParser>>#scannerClass  ExpressionParser>>#startingStateForExpression  ExpressionParser>>#reduceActionForArguments1:  ExpressionParser>>#reduceActionForArguments2:  ExpressionParser>>#reduceActionForExpression2:  ExpressionParser>>#reduceActionForExpression6:  ExpressionParser>>#reduceActionForExpression8:  ExpressionParser>>#reduceActionForFunction1:  ExpressionParser>>#reduceActionForNumber1:  ExpressionParser>>#reduceActionFor_Arguments1:  ExpressionParser>>#reduceActionFor_Arguments2:  ExpressionParser>>#reduceTable  ExpressionParser>>#symbolNames  ExpressionParser>>#symbolTypes  ExpressionParser>>#transitionTable  ExpressionScanner  ExpressionScanner>>#emptySymbolTokenId  ExpressionScanner>>#errorTokenId  ExpressionScanner>>#scanForToken  ExpressionScanner>>#scanForTokenX1  ExpressionScanner>>#scanForTokenX2  ExpressionScanner>>#scanForTokenX3  ExpressionScanner>>#scanForTokenX4  ExpressionScanner>>#tokenActions  SmaCCParseNode>>#gtTreeViewIn:  SmaCCParseNode>>#isParseNode  SmaCCPatternNode>>#isPatternParseNode  SmaCCRewriteEngine>>#startPositionForNode:  SmaCCRewriteEngine>>#stopPositionForNode:  SmaCCRewriteMatchContext>>#computeStringFor:  SmaCCRewriteMatchContext>>#insert:after:  SmaCCRewriteMatchContext>>#insert:before:  SmaCCRewriteMatchContext>>#isAtEndOfParent:  SmaCCRewriteMatchContext>>#isAtStartOfParent:  SmaCCRewriteMatchContext>>#move:after:withWhitespace:  SmaCCRewriteMatchContext>>#originalStartIndexFor:  SmaCCRewriteMatchContext>>#originalStartPosition:  SmaCCRewriteMatchContext>>#originalStopPosition:  SmaCCRewriteMatchContext>>#startIndexFor:  SmaCCRewriteMatchContext>>#stopIndexFor:  SmaCCRewriteRuleFileParser>>#lookupClass:  SmaCCRewriteTreeMatch>>#canMatch:  SmaCCToken>>#isParseToken  SmaCCToken>>#isToken

The walkback stack:

MCPackageLoader(Object)>>notify:
MCPackageLoader>>warnAboutDependencies
MCPackageLoader>>validate
MCPackageLoader>>load
MCVersionLoader>>basicLoad
[ self basicLoad ] in MCVersionLoader>>loadWithNameLike: in Block: [ self basicLoad ]
[ aBlock value ] in MCVersionLoader>>announceLoad:do: in Block: [ aBlock value ]
FullBlockClosure(BlockClosure)>>ensure:
MCVersionLoader>>announceLoad:do:
MCVersionLoader>>loadWithNameLike:
[ self ensurePackage: version package.
		  self loadWithNameLike: version info name ] in [   
		| version |
		version := versions first. 
		[ self ensurePackage: version package.
		  self loadWithNameLike: version info name ] asJob
				title: 'Loading ', version info name asString;
				run ] in MCVersionLoader>>load in Block: [ self ensurePackage: version package....
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]
[ activeProcess
			psValueAt: index
			put: anObject.
		aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning....
FullBlockClosure(BlockClosure)>>ensure:
Job>>run
[   
		| version |
		version := versions first. 
		[ self ensurePackage: version package.
		  self loadWithNameLike: version info name ] asJob
				title: 'Loading ', version info name asString;
				run ] in MCVersionLoader>>load in Block: [   ...
FullBlockClosure(BlockClosure)>>ensure:
RPackageSet class>>withCacheDo:
MCVersionLoader>>load
[
		| loader |
		loader := MCVersionLoader new.
		aCollection do: [ :name |
			| package packageVersion |
			package := self packageNamed: name.
			packageVersion := (aCommit versionFor: package) mcVersion.
			loader addVersion: packageVersion.
			package beClean ].
		loader load ] in IceWorkingCopy>>loadPackagesNamed:fromCommit: in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
IceWorkingCopy>>ignoreNotificationsDuring:
IceWorkingCopy>>loadPackagesNamed:fromCommit:
IceWorkingCopy>>loadPackagesNamed:
IceWorkingCopy>>loadPackageNamed:
IcePackage>>load
[ self entity load ] in [ 
			Iceberg announcer
				suspendAllForRepository: self entity repository
				while: [ self entity load ] ] in IceTipPackageModel>>newLoadAction in Block: [ self entity load ]
FullBlockClosure(BlockClosure)>>ensure:
IceAnnouncer>>suspendAllMatching:while:
IceAnnouncer>>suspendAllForRepository:while:
[ 
			Iceberg announcer
				suspendAllForRepository: self entity repository
				while: [ self entity load ] ] in IceTipPackageModel>>newLoadAction in Block: [ ...
FullBlockClosure(BlockClosure)>>cull:
FullBlockClosure(BlockClosure)>>cull:cull:
[ :aJob | result := actionBlock cull: self context cull: aJob ] in IceTipStandardAction>>basicExecute in Block: [ :aJob | result := actionBlock cull: self con[..]
FullBlockClosure(BlockClosure)>>cull:
[ :job | 
			"job min: 0; max: 100."
			result := aBlock cull: job ] in StPharoApplication(SpApplication)>>informUser:during: in Block: [ :job | ...
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]
[ activeProcess
			psValueAt: index
			put: anObject.
		aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning....
FullBlockClosure(BlockClosure)>>ensure:
Job>>run
StPharoApplication(SpApplication)>>informUser:during:
IceTipStandardAction>>basicExecute
[ 
		result := self basicExecute.
		self finishSuccess ] in IceTipStandardAction(IceTipAction)>>execute in Block: [ ...
FullBlockClosure(BlockClosure)>>on:do:
IceTipStandardAction(IceTipAction)>>withErrorHandlingDo:
IceTipStandardAction(IceTipAction)>>execute
IceTipStandardAction(IceTipAction)>>executeWithContext:
IceTipLoadPackageCommand>>execute
IceTipSpCommand(CmCommandDecorator)>>execute
[ aCommand execute ] in SpMenuPresenterBuilder>>fillItem:with: in Block: [ aCommand execute ]
FullBlockClosure(BlockClosure)>>cull:
SpMenuItemPresenter>>performMenuActionWith:
SpMorphicMenuItemAdapter>>performMenuActionWith:
[ | selArgCount |  "show cursor in case item opens a new MVC window"
		(selArgCount := selector numArgs) = 0
			ifTrue:
				[target perform: selector]
			ifFalse:
				[selArgCount = arguments size
					ifTrue: [target perform: selector withArguments: arguments]
					ifFalse: [target perform: selector withArguments: (arguments copyWith: evt)]].
		self showShortcut.
		self changed] in SpToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: in Block: [ | selArgCount |  "show cursor in case item o[..]
FullBlockClosure(BlockClosure)>>ensure:
CursorWithMask(Cursor)>>showWhile:
SpToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
SpToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
SpToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
SpToggleMenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>handleMouseUp:
MouseButtonEvent>>sentTo:
[ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: in Block: [ ^ anEvent sentTo: self ]
FullBlockClosure(BlockClosure)>>ensure:
MorphicEventDispatcher>>dispatchEvent:with:
SpToggleMenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>handleMouseUp:
MouseButtonEvent>>sentTo:
[ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: in Block: [ ^ anEvent sentTo: self ]
FullBlockClosure(BlockClosure)>>ensure:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[
		result := focusHolder handleFocusEvent: transformedEvent.
	] in HandMorph>>sendFocusEvent:to:clear: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
WorldMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
[
		(morphicWorld activeHand isNotNil and: [ anEvent hand isNotNil ]) ifTrue: [
			morphicWorld activeHand handleEvent: anEvent
		]
	] in OSWindowMorphicEventHandler>>dispatchMorphicEvent: in Block: [...
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycleNow
WorldMorph>>doOneCycle
[
		| extraWorldsToDraw |
		extraWorldsToDraw := ExtraWorldListMutex critical: [
			                     self extraWorldList ].
		extraWorldsToDraw do: [ :world | world doOneCycle ].

		(self currentWorld isNotNil and: [
			 (extraWorldsToDraw includes: self currentWorld) not ]) ifTrue: [
			self currentWorld doOneCycle ] ] in WorldMorph class>>doOneCycle in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
WorldState class>>doDrawCycleWith:
WorldMorph class>>doOneCycle
MorphicRenderLoop>>doOneCycle
MorphicRenderLoop>>doOneCycleWhile:
[ MorphicRenderLoop new doOneCycleWhile: [ true ] ] in MorphicUIManager>>spawnNewProcess in Block: [ MorphicRenderLoop new doOneCycleWhile: [ tru[..]
[self value.
			"IMPORTANT: Do not step over next line of code. See method comments for details"
			Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess in Block: [self value....

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions