Missing Parser in Pharo 8

Loading Pier 3.2 in Pharo 8 fails with the error:

This package depends on the following classes:
  SHParserST80
You must resolve these dependencies before you will be able to load these definitions:
  SHParserST80>>#ranges

The problem is clear from the code:

SPHighlightedCode>>rangesFor: aString
	"Try to find out if this is a method, maybe with a class declaration. Otherwise parse as expression."
	| parser index string |
	parser := SHParserST80 new.
	parser classOrMetaClass: classOrMetaClass.

This is found in the NECompletion package, which is loaded in BaselineOfBasicTools & BaselineOfIDE.

The shout package is used for code blocks like this (taken from Pillar docs):

[[[label=script1|caption=My script that works|language=smalltalk
self foo bar
]]]

Unfortunately these square brackets haven't worked in Pier since before Pharo 5. Removing the shout package seems like a logical choice.

A second problem is the load order for the Seaside and Grease. For Pharo 7 it can be loaded in either order, but for Pharo 8 if conflicts are ignored, or #onConflictUseIncoming is used, then http://localhost:8080 brings up the error:

Internal Error: BlockClosure>> #fixCallbackTemps

Using #onConflictUseLoaded resolves this problem.

Posted by John Borden at 26 March 2020, 12:02 pm with tags Pharo, pier link