[prev in list] [next in list] [prev in thread] [next in thread] 

List:       squeak-vm-dev
Subject:    [Vm-dev] VM Maker: VMMaker.oscog-VB.2370.mcz
From:       commits () source ! squeak ! org
Date:       2018-04-24 1:43:11
Message-ID: E1fAn0C-0003dP-9o () andreas
[Download RAW message or body]

 
VincentBlondeau uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-VB.2370.mcz

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

Name: VMMaker.oscog-VB.2370
Author: VB
Time: 23 April 2018, 6:42:34.685234 pm
UUID: b61408e0-effc-5144-bd81-993254392346
Ancestors: VMMaker.oscog-VB.2369

primitiveStdioDescriptorIsATTY will return a bool instead of an int

=============== Diff against VMMaker.oscog-VB.2369 ===============

Item was changed:
  ----- Method: FilePlugin>>primitiveFileStdioHandles (in category 'file primitives') \
-----  primitiveFileStdioHandles
  	"Answer an Array of file handles for standard in, standard out and standard error,
  	 with nil in entries that are unvailable, e.g. because the platform does not \
provide  standard error, etc.  Fail if there are no standard i/o facilities on the \
platform or  if the security plugin denies access or if memory runs out."
  	| fileRecords result validMask |
  	<export: true>
  	<var: 'fileRecords' declareC: 'SQFile fileRecords[3]'>
  	sHFAfn ~= 0 ifTrue:
  		[(self cCode: ' ((sqInt (*)(void))sHFAfn)()' inSmalltalk: [true]) ifFalse:
  			[^interpreterProxy primitiveFailFor: PrimErrUnsupported]].
  	self cCode: '' inSmalltalk: [fileRecords := Array new: 3].
  	validMask := self sqFileStdioHandlesInto: fileRecords.
  	validMask = 0 ifTrue:
  		[^interpreterProxy primitiveFailFor: PrimErrUnsupported].
  	result := interpreterProxy instantiateClass: interpreterProxy classArray \
indexableSize: 3.  result = nil ifTrue:
  		[^interpreterProxy primitiveFailFor: PrimErrNoMemory].
  	interpreterProxy pushRemappableOop: result.
  	0 to: 2 do:
  		[:index|
  		(validMask bitAnd: (1 << index)) ~= 0 ifTrue:
  			[result := interpreterProxy instantiateClass: interpreterProxy classByteArray \
indexableSize: self fileRecordSize.  result = nil ifTrue:
  				[interpreterProxy popRemappableOop.
  				^interpreterProxy primitiveFailFor: PrimErrNoMemory].
  			 interpreterProxy storePointer: index ofObject: interpreterProxy \
topRemappableOop withValue: result.  self
  				cCode:
  					[self mem: (interpreterProxy firstIndexableField: result)
  						cp: (self addressOf: (fileRecords at: index))
  						y: self fileRecordSize]
  				inSmalltalk:
  					[(interpreterProxy firstIndexableField: result)
  						unitSize: interpreterProxy wordSize;
  						at: 0 put: (fileRecords at: index + 1)]]].
  	 "In the non-Spur threaded VM ensure the handles are old, so that sqFileReadIntoAt \
                is unaffected
  	  by incremental GCs.  See \
platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c.  The Spur  VM uses \
pinning, so it doesn't need the GC."  self cppIf: COGMTVM
  		ifTrue: [self cppIf: SPURVM
  					ifTrue: []
  					ifFalse: [interpreterProxy fullGC]].
  	result := interpreterProxy popRemappableOop.
  	interpreterProxy pop: 1 thenPush: result!

Item was changed:
  ----- Method: FilePlugin>>primitiveStdioDescriptorIsATTY (in category 'file \
primitives') -----  primitiveStdioDescriptorIsATTY
  	| isStdoutRedirected |
  	<export: true>
  	isStdoutRedirected := self
  				cCode: 'sqStdioDescriptorIsATTY() '
  				inSmalltalk: [true].
  	interpreterProxy pop: 1.
+ 	interpreterProxy pushBool: isStdoutRedirected!
- 	interpreterProxy pushInteger: isStdoutRedirected!


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic