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

commits at source.squeak.org commits at source.squeak.org
Sat Sep 19 01:27:54 UTC 2020


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2810.mcz

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

Name: VMMaker.oscog-eem.2810
Author: eem
Time: 18 September 2020, 6:27:45.474771 pm
UUID: bd514bb6-2d85-4d80-96d0-27a2a422579c
Ancestors: VMMaker.oscog-eem.2809

Slang: Fix reporting of deep warnings within the VMMakerTool; we need a logger.

SoundPlugin: eliminate the warning that caused the crash that the above is a fix to...

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

Item was added:
+ ----- Method: CCodeGenerator>>getLogger (in category 'initialize-release') -----
+ getLogger
+ 	logger := (ProvideAnswerNotification new tag: #logger; signal) ifNil: [Transcript]!

Item was changed:
  ----- Method: CCodeGenerator>>initialize (in category 'initialize-release') -----
  initialize
  	translationDict := Dictionary new.
  	inlineList := Array new.
  	constants := Dictionary new: 100.
  	variables := Set new: 100.
  	variableDeclarations := Dictionary new: 100.
  	methods := Dictionary new: 500.
  	kernelReturnTypes := self computeKernelReturnTypes.
  	macros := Dictionary new.
  	self initializeCTranslationDictionary.
  	headerFiles := OrderedCollection new.
  	globalVariableUsage := Dictionary new.
  	useSymbolicConstants := true.
  	generateDeadCode := true.
  	scopeStack := OrderedCollection new.
+ 	self getLogger.
- 	logger := (ProvideAnswerNotification new tag: #logger; signal) ifNil: [Transcript].
  	pools := IdentitySet new.
  	selectorTranslations := IdentityDictionary new.
  	suppressAsmLabels := false.
  	previousCommentMarksInlining := false.
  	previousCommenter := nil.
  	breakSrcInlineSelectors := IdentitySet new.
  	breakDestInlineSelectors := IdentitySet new!

Item was changed:
  ----- Method: SmartSyntaxPluginTMethod>>setSelector:definingClass:args:locals:block:primitive:properties:comment: (in category 'initialization') -----
  setSelector: sel definingClass: class args: argList locals: localList block: aBlockNode primitive: aNumber properties: methodProperties comment: aComment
  	"Initialize this method using the given information."
  
  	selector := sel.
  	definingClass := class.
  	returnType := #sqInt. 	 "assume return type is sqInt for now"
  	args := argList asOrderedCollection collect: [:arg | arg key].
  	locals := (localList collect: [:arg | arg key]) asSet.
  	declarations := Dictionary new.
  	primitive := aNumber.
  	properties := methodProperties.
  	comment := aComment.
  	parseTree := aBlockNode asRootTranslatorNodeIn: self.
  	labels := Set new.
  	complete := false.  "set to true when all possible inlining has been done"
  	export := self extractExportDirective.
  	static := self extractStaticDirective.
  	self extractSharedCase.
  	isPrimitive := false.  "set to true only if you find a primtive direction."
+ 	self recordDeclarationsIn: CCodeGenerator basicNew getLogger. "Just for conventionalTypeForType:"
- 	self recordDeclarationsIn: CCodeGenerator basicNew. "Just for conventionalTypeForType:"
  	self extractPrimitiveDirectives.
  !

Item was changed:
  ----- Method: SoundPlugin>>primitiveSoundRecordSamplesInto:startingAt: (in category 'primitives') -----
  primitiveSoundRecordSamplesInto: buf startingAt: startWordIndex 
  	"Record a buffer's worth of (mono?) 16-bit sound samples."
  	| bufSizeInBytes samplesRecorded byteOffset |
- 	<var: #bufPtr type: #'char*'>
  	self primitive: 'primitiveSoundRecordSamples'
  		parameters: #(WordsOrShorts SmallInteger).
  
  	bufSizeInBytes := interpreterProxy byteSizeOf: buf cPtrAsOop.
  	byteOffset := (startWordIndex - 1) * 2.
  
  	(startWordIndex >= 1 and: [byteOffset < bufSizeInBytes]) ifFalse:
  		[^interpreterProxy primitiveFailFor: PrimErrBadIndex].
  
  	samplesRecorded := self snd_RecordSamplesIntoAtLength: (self cCoerce: buf to: #'char *') + byteOffset
  							_: 0
  							_: bufSizeInBytes - byteOffset.
  	interpreterProxy failed ifFalse:
  		[^samplesRecorded asPositiveIntegerObj]!



More information about the Vm-dev mailing list