Skip to content

Pharo12 - PetitParser2-RewriteEngine package unloadable #84

@tukanos

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....

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