[squeak-dev] how to see primitive source these days?

Bob Arning arning315 at comcast.net
Tue Jan 10 12:57:31 UTC 2017


I'm was copying a FloatArray and it seems not to be using the primitive 
to move the data over to the copy. 
Float>>replaceFrom:to:with:startingAt: says it uses a primitive, but it 
seem to fallback to the code in SequenceableCollection. How can I see 
the priitive code to see what the issue may be? This is what it says it 
does:

replaceFrom: start to: stop with: replacement startingAt: repStart     
"Primitive. This destructively replaces elements from start to stop in 
the receiver starting at index, repStart, in the collection, 
replacement. Answer the receiver. Range checks are performed in the 
primitive only. Optional. See Object documentation whatIsAPrimitive." 
     <primitive: 105>     super replaceFrom: start to: stop with: 
replacement startingAt: repStart

This is what I did to see if the prim failed:

replaceFrom: start to: stop with: replacement startingAt: repStart     
"Primitive. This destructively replaces elements from start to stop in 
the receiver starting at index, repStart, in the collection, 
replacement. Answer the receiver. Range checks are performed in the 
primitive only. Optional. See Object documentation whatIsAPrimitive." 
     <primitive: 105>     WOOPS ifNil: [         WOOPS _ #WOOPS.         
self halt     ].     super replaceFrom: start to: stop with: replacement 
startingAt: repStart

And it did fail and I'm puzzled as to why:

Halt:
10 January 2017 7:46:09.382669 am

VM: Mac OS - Smalltalk
Image: Squeak5.1 [latest update: #16548]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir 
/Users/bob/squeak/Squeak5.1-16548-64bit-All-in-One/Squeak5.1-16548-64bit-All-in-One.app/Contents/Resources
Trusted Dir /Users/bob/Library/Application Support/Squeak/
Untrusted Dir /Users/bob/Documents/Squeak/

FloatArray(Object)>>halt
     Receiver: a FloatArray(0.0 0.0 0.0)
     Arguments and temporary variables:

     Receiver's instance variables:
a FloatArray(0.0 0.0 0.0)
FloatArray>>replaceFrom:to:with:startingAt:
     Receiver: a FloatArray(0.0 0.0 0.0)
     Arguments and temporary variables:
         start:     1
         stop:     3
         replacement:     a FloatArray(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1...etc...
         repStart:     1
     Receiver's instance variables:
a FloatArray(0.0 0.0 0.0)
FloatArray(SequenceableCollection)>>copyFrom:to:
     Receiver: a FloatArray(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1...etc...
     Arguments and temporary variables:
         start:     1
         stop:     3
         newSize:     3
     Receiver's instance variables:
a FloatArray(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
1.0 1.0 1.0 1.0 1...etc...
ConvolutionalLayer>>forward:isTraining:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170110/658b2bb0/attachment.html>


More information about the Squeak-dev mailing list