Hmm... something odd
I downloaded
cog_macos64x64_squeak.cog.spur_201701110136.tar.gz and unzipped
it and got a green squeak icon with a stop icon on top of it.
Which means it won't run.
Earlier I got
cog_macos64x64_squeak.cog.spur_201608171728.tar.gz and it
unzipped just fine and ran.
Hi Bob,
thanks for the prod. I'm committing the fix now. New VMs should be built by the bots within an hour after I generate and commit C sources.
On Tue, Jan 10, 2017 at 6:48 AM, Bob Arning <arning315@comcast.net> wrote:
Thanks, Dave,
There are a number of errors possible in that primitive and I don't know if one can see the particular code after a failure. I was able to narrow it down, though. Adding this to FloatArray:
testreplaceFrom: start to: stop with: replacement startingAt: repStart
"
(FloatArray new: 8) testreplaceFrom: 1 to: 3 with: (FloatArray new: 3) startingAt: 1
"
<primitive: 105>
self halt.Runs fine in 32-bit squeak and halts in 64-bit.
-----------succeeds on-----------
Virtual Machine
---------------
/Users/bob/squeak/old squeak5.1/ast 5.1.app/Contents/MacOS/Squeak
Croquet Closure Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-cb.1919] 32 bit
Mac OS X built on Aug 17 2016 18:59:49 UTC Compiler: 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)
platform sources revision VM: 201608171728 https://github.com/OpenSmalltalk/opensmalltalk- $ Date: Wed Aug 17 10:28:01 2016 -0700 $ Plugins: 201608171728 https://github.com/vm.git OpenSmalltalk/opensmalltalk- $vm.git
CoInterpreter VMMaker.oscog-cb.1919 uuid: 00a8dd2a-bc8d-4552-b400-be781c8aabec Aug 17 2016
StackToRegisterMappingCogit VMMaker.oscog-cb.1919 uuid: 00a8dd2a-bc8d-4552-b400-be781c8aabec Aug 17 2016
--------fails on--------
Virtual Machine
---------------
/Users/bob/squeak/Squeak5.1-16548-64bit-All-in-One/ Squeak5.1-16548-64bit-All-in- One.app/Contents/MacOS/Squeak
Croquet Closure Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-cb.1919] 64 bit
Mac OS X built on Aug 17 2016 18:51:56 UTC Compiler: 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)
platform sources revision VM: 201608171728 https://github.com/OpenSmalltalk/opensmalltalk- $ Date: Wed Aug 17 10:28:01 2016 -0700 $ Plugins: 201608171728 https://github.com/vm.git OpenSmalltalk/opensmalltalk- $vm.git
CoInterpreter VMMaker.oscog-cb.1919 uuid: 00a8dd2a-bc8d-4552-b400-be781c8aabec Aug 17 2016
StackToRegisterMappingCogit VMMaker.oscog-cb.1919 uuid: 00a8dd2a-bc8d-4552-b400-be781c8aabec Aug 17 2016
On 1/10/17 9:06 AM, David T. Lewis wrote:
How to see primitive source these days: The code is in the VMMaker repository 'http://source.squeak.org/VMMaker '. For the Spur VM, the package is 'VMMaker.oscog'. For purposes of just taking a quick look at the code, you can load the latest version VMMaker.oscog-eem.2079 (this will not exactly corresponding to the version you are running but here I assume you just want a quick look at what primitive 105 is doing). To find the numbered primitive, see CoInterpreter class>>initializePrimitiveTable, which calls StackInterpreter class>> initializePrimitiveTable, which shows primitive 105 as #primitiveStringReplace. The Smalltalk code for this primitive is InterpreterPrimitives>> primitiveStringReplace. The generated C code for this can be found in the GitHub repository https://github.com/ OpenSmalltalk/opensmalltalk-vm , look for the primitiveStringReplace function in opensmalltalk-vm/src/vm/gcc3x- cointerpmt.c. Dave On Tue, Jan 10, 2017 at 07:57:31AM -0500, Bob Arning wrote: 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: --_,,,^..^,,,_best, Eliot