[Vm-dev] VM Maker: VMMaker.oscog-eem.3264.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Nov 6 05:22:33 UTC 2022

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

==================== Summary ====================

Name: VMMaker.oscog-eem.3264
Author: eem
Time: 5 November 2022, 10:22:13.888373 pm
UUID: 65e7c35c-efad-43f0-9eff-16acf268dfa0
Ancestors: VMMaker.oscog-eem.3263

Fix regression in emission of primitive metadata in plugins that I think was introduced in 3222 or there-asbnouts.  The bug is when vmClass si set then a selector must begin with prim to have metadata generated/  I *think* I assigned vmClass to compute accessor depth correctly for plugin primitives around this time, but I'm not sure.

The fix is to have VMPluginCodeGenerator override methodNeedsMetadata: and not insist that the selector begin with 'prim'.

This affects the following plugins:
ClipboardExtendedPlugin (primitives begin with io)
B3DPlugin/Squeak3D (primitives begin with b3d)

But in looking at this I notice that VectorEnginePlugin has no metadata either. So a few plugins need regenerating.

=============== Diff against VMMaker.oscog-eem.3263 ===============

Item was added:
+ ----- Method: VMPluginCodeGenerator>>methodNeedsMetadata: (in category 'spur primitive compilation') -----
+ methodNeedsMetadata: aTMethod
+ 	"Answer if aTMethod really needs primitive metadata.  This is a hack to filter out some functions that definitely don't need metadata."
+ 	| selector |
+ 	selector := aTMethod smalltalkSelector.
+ 	(#(initialiseModule shutdownModule moduleUnloaded:) includes: selector) ifTrue:
+ 		[^false].
+ 	(InterpreterPlugin includesSelector: selector) ifTrue:
+ 		[^false].
+ 	^true!

More information about the Vm-dev mailing list