[Vm-dev] [commit][2999] CogVM source as per VMMaker.oscog-eem.772
commits at squeakvm.org
commits at squeakvm.org
Sat Jun 14 02:52:56 UTC 2014
Revision: 2999
Author: eliot
Date: 2014-06-13 19:52:51 -0700 (Fri, 13 Jun 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.772
Spur:
Fix fillObj: signedness for objects straddling the mid-
point of the address space (quickly affects linux).
Similarly for routines in pigCompact, to get asserts correct.
Fix printOopsFrom:to:. for objects up to endOfMemory.
Nuke unused SpurMemMgr inst var var.
Declare lastFreeChunk and firstFreeChunk correctly.
Fix numberOfForwarders: and printForwarders: for
isForwarded:'s blindness towards freeChunks.
Comment isForwarded: to be clear on the issue.
Have the segment manager pass to sqAllocateMemorySegmentOfSize: the address of
the first large enough gap in the address space, instead of the address of the
end of the first segment. This allows e.g. linux to use MAP_FIXED and hence
get past a 128Mb limit on mmapping.
Fix bugs in isValidFreeObject: & printFreeTreeChunk: that caused bogus assert
failures.
Cog:
Fix an abort (relocating call to invalid address) ue to an over-zealous check
in relocateCallBeforeReturnPC:by:. Since we relocate e.g. calls to primitives
there can be no effective range check there-in.
Generate the XDisplayControlPlugin with the Cog conf. Fix a typo in a selector.
Buildland:
Fix all uses of trap in scripts, all of which lines incorrectly ended with 0.
Add convenience scripts that just make the VMs that are uploaded.
Modified Paths:
--------------
branches/Cog/build.linux32x86/makeall
branches/Cog/build.linux32x86/newspeak.cog.spur/makeallclean
branches/Cog/build.linux32x86/newspeak.cog.spur/makealldirty
branches/Cog/build.linux32x86/newspeak.cog.v3/makeallclean
branches/Cog/build.linux32x86/newspeak.cog.v3/makealldirty
branches/Cog/build.linux32x86/newspeak.sista.spur/makeallclean
branches/Cog/build.linux32x86/newspeak.sista.spur/makealldirty
branches/Cog/build.linux32x86/newspeak.sista.v3/makeallclean
branches/Cog/build.linux32x86/newspeak.sista.v3/makealldirty
branches/Cog/build.linux32x86/newspeak.stack.spur/makeallclean
branches/Cog/build.linux32x86/newspeak.stack.spur/makealldirty
branches/Cog/build.linux32x86/newspeak.stack.v3/makeallclean
branches/Cog/build.linux32x86/newspeak.stack.v3/makealldirty
branches/Cog/build.linux32x86/squeak.cog.spur/makeallclean
branches/Cog/build.linux32x86/squeak.cog.spur/makealldirty
branches/Cog/build.linux32x86/squeak.cog.v3/makeallclean
branches/Cog/build.linux32x86/squeak.cog.v3/makealldirty
branches/Cog/build.linux32x86/squeak.sista.spur/makeallclean
branches/Cog/build.linux32x86/squeak.sista.spur/makealldirty
branches/Cog/build.linux32x86/squeak.sista.v3/makeallclean
branches/Cog/build.linux32x86/squeak.sista.v3/makealldirty
branches/Cog/build.linux32x86/squeak.stack.spur/makeallclean
branches/Cog/build.linux32x86/squeak.stack.spur/makealldirty
branches/Cog/build.linux32x86/squeak.stack.v3/makeallclean
branches/Cog/build.linux32x86/squeak.stack.v3/makealldirty
branches/Cog/build.macos32x86/makeall
branches/Cog/build.macos32x86/makeallinstall
branches/Cog/build.macos32x86/newspeak.cog.spur/mvm
branches/Cog/build.macos32x86/newspeak.cog.v3/mvm
branches/Cog/build.macos32x86/newspeak.stack.spur/mvm
branches/Cog/build.macos32x86/newspeak.stack.v3/mvm
branches/Cog/build.macos32x86/squeak.cog.spur/mvm
branches/Cog/build.macos32x86/squeak.cog.v3/mvm
branches/Cog/build.macos32x86/squeak.sista.spur/mvm
branches/Cog/build.macos32x86/squeak.sista.v3/mvm
branches/Cog/build.win32x86/makeall
branches/Cog/build.win32x86/makeallinstall
branches/Cog/macbuild/mvm
branches/Cog/nscogbuild/macbuild/mvm
branches/Cog/nsspurcogbuild/macbuild/mvm
branches/Cog/nsspursrc/vm/cogit.c
branches/Cog/nsspursrc/vm/cogit.h
branches/Cog/nsspursrc/vm/cointerp.c
branches/Cog/nsspursrc/vm/cointerp.h
branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
branches/Cog/nsspursrc/vm/interp.h
branches/Cog/nsspursrc/vm/vmCallback.h
branches/Cog/nsspurstackbuild/macbuild/mvm
branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
branches/Cog/nsspurstacksrc/vm/interp.c
branches/Cog/nsspurstacksrc/vm/interp.h
branches/Cog/nsspurstacksrc/vm/vmCallback.h
branches/Cog/platforms/unix/vm/sqUnixMemory.c
branches/Cog/platforms/win32/vm/sqWin32Alloc.c
branches/Cog/sistamacbuild/mvm
branches/Cog/spurcogbuild/macbuild/mvm
branches/Cog/spursistasrc/vm/cogit.c
branches/Cog/spursistasrc/vm/cogit.h
branches/Cog/spursistasrc/vm/cogmethod.h
branches/Cog/spursistasrc/vm/cointerp.c
branches/Cog/spursistasrc/vm/cointerp.h
branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
branches/Cog/spursistasrc/vm/interp.h
branches/Cog/spursistasrc/vm/vmCallback.h
branches/Cog/spursrc/vm/cogit.c
branches/Cog/spursrc/vm/cogit.h
branches/Cog/spursrc/vm/cogmethod.h
branches/Cog/spursrc/vm/cointerp.c
branches/Cog/spursrc/vm/cointerp.h
branches/Cog/spursrc/vm/gcc3x-cointerp.c
branches/Cog/spursrc/vm/interp.h
branches/Cog/spursrc/vm/vmCallback.h
branches/Cog/spurstacksrc/vm/gcc3x-interp.c
branches/Cog/spurstacksrc/vm/interp.c
branches/Cog/spurstacksrc/vm/interp.h
branches/Cog/spurstacksrc/vm/vmCallback.h
Added Paths:
-----------
branches/Cog/build.linux32x86/makeproduct
branches/Cog/build.macos32x86/makeproduct
branches/Cog/build.macos32x86/makeproductinstall
branches/Cog/build.win32x86/makeproduct
branches/Cog/build.win32x86/makeproductinstall
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/build.linux32x86/makeall
===================================================================
--- branches/Cog/build.linux32x86/makeall 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/makeall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/bash
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in newspeak.cog.* newspeak.stack.* squeak.*; do
if test -d "$d"; then
(cd $d;./makeallclean "$@")
Added: branches/Cog/build.linux32x86/makeproduct
===================================================================
--- branches/Cog/build.linux32x86/makeproduct (rev 0)
+++ branches/Cog/build.linux32x86/makeproduct 2014-06-14 02:52:51 UTC (rev 2999)
@@ -0,0 +1,9 @@
+#!/bin/bash
+trap 'exit 2' HUP INT PIPE TERM
+for d in newspeak.cog.spur newspeak.cog.spur squeak.cog.spur squeak.cog.v3; do
+ if test -d "$d"; then
+ (cd $d;./makeallclean "$@")
+ else
+ echo no $d directory found
+ fi
+done
Property changes on: branches/Cog/build.linux32x86/makeproduct
___________________________________________________________________
Added: svn:executable
+ *
Modified: branches/Cog/build.linux32x86/newspeak.cog.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/newspeak.cog.spur/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.cog.spur/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.cog.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/newspeak.cog.spur/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.cog.spur/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.cog.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/newspeak.cog.v3/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.cog.v3/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.cog.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/newspeak.cog.v3/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.cog.v3/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.sista.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/newspeak.sista.spur/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.sista.spur/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.sista.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/newspeak.sista.spur/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.sista.spur/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.sista.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/newspeak.sista.v3/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.sista.v3/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.sista.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/newspeak.sista.v3/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.sista.v3/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.stack.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/newspeak.stack.spur/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.stack.spur/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.stack.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/newspeak.stack.spur/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.stack.spur/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.stack.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/newspeak.stack.v3/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.stack.v3/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/newspeak.stack.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/newspeak.stack.v3/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/newspeak.stack.v3/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.cog.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/squeak.cog.spur/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.cog.spur/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.cog.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/squeak.cog.spur/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.cog.spur/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.cog.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/squeak.cog.v3/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.cog.v3/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.cog.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/squeak.cog.v3/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.cog.v3/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.sista.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/squeak.sista.spur/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.sista.spur/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.sista.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/squeak.sista.spur/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.sista.spur/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.sista.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/squeak.sista.v3/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.sista.v3/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.sista.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/squeak.sista.v3/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.sista.v3/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.stack.spur/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.spur/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.stack.spur/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.stack.spur/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.spur/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.stack.spur/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.stack.v3/makeallclean
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.v3/makeallclean 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.stack.v3/makeallclean 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo y | ./mvm "$@")
Modified: branches/Cog/build.linux32x86/squeak.stack.v3/makealldirty
===================================================================
--- branches/Cog/build.linux32x86/squeak.stack.v3/makealldirty 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.linux32x86/squeak.stack.v3/makealldirty 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/sh
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in `dirname $0`/build*; do
(cd $d
echo n | ./mvm "$@")
Modified: branches/Cog/build.macos32x86/makeall
===================================================================
--- branches/Cog/build.macos32x86/makeall 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/makeall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/bash
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in newspeak.* squeak.*; do
if test -d "$d"; then
(cd $d;./mvm -A)
Modified: branches/Cog/build.macos32x86/makeallinstall
===================================================================
--- branches/Cog/build.macos32x86/makeallinstall 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/makeallinstall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,7 +1,7 @@
#!/bin/bash
IFS="
"
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
REV=`grep 'SvnRawRevisionString.*Rev:' "\`dirname $0\`/../platforms/Cross/vm/sqSCCSVersion.h" \
| sed 's/^.*Rev: \([0-9][0-9]*\) $";/\1/'`
TAG=`date +%g.%U.`$REV
Added: branches/Cog/build.macos32x86/makeproduct
===================================================================
--- branches/Cog/build.macos32x86/makeproduct (rev 0)
+++ branches/Cog/build.macos32x86/makeproduct 2014-06-14 02:52:51 UTC (rev 2999)
@@ -0,0 +1,14 @@
+#!/bin/bash
+trap 'exit 2' HUP INT PIPE TERM
+PRODUCTDIRS="newspeak.cog.spur newspeak.cog.v3 squeak.cog.spur squeak.cog.v3"
+for d in $PRODUCTDIRS; do
+ if test -d "$d"; then
+ (cd $d;./mvm -A)
+ else
+ echo no $d directory found
+ fi
+done
+echo no news is good news...
+for d in $PRODUCTDIRS; do
+ test -d $d && grep 'BUILD FAILED' $d/LOG*
+done
Property changes on: branches/Cog/build.macos32x86/makeproduct
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/Cog/build.macos32x86/makeproductinstall
===================================================================
--- branches/Cog/build.macos32x86/makeproductinstall (rev 0)
+++ branches/Cog/build.macos32x86/makeproductinstall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -0,0 +1,19 @@
+#!/bin/bash
+IFS="
+ "
+trap 'exit 2' HUP INT PIPE TERM
+REV=`grep 'SvnRawRevisionString.*Rev:' "\`dirname $0\`/../platforms/Cross/vm/sqSCCSVersion.h" \
+ | sed 's/^.*Rev: \([0-9][0-9]*\) $";/\1/'`
+TAG=`date +%g.%U.`$REV
+set -- Newspeak\ Virtual\ Machine Newspeak\ Spur\ Virtual\ Machine
+for td in newspeak.cog.v3 newspeak.cog.spur; do
+ d=$td/installer
+ PRODUCT=$1-$TAG.dmg
+ if test -d "$d"; then
+ (cd $d;make -n)
+ test -f $d/$PRODUCT && mv $d/$PRODUCT ../products
+ else
+ echo no $d directory found
+ fi
+ shift
+done
Property changes on: branches/Cog/build.macos32x86/makeproductinstall
___________________________________________________________________
Added: svn:executable
+ *
Modified: branches/Cog/build.macos32x86/newspeak.cog.spur/mvm
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.spur/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/newspeak.cog.spur/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -17,7 +17,7 @@
echo usage: $0 -A \| -AS \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/newspeak.cog.v3/mvm
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.v3/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/newspeak.cog.v3/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -17,7 +17,7 @@
echo usage: $0 -A \| -AS \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/newspeak.stack.spur/mvm
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.spur/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/newspeak.stack.spur/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -17,7 +17,7 @@
echo usage: $0 -A \| -AS \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/newspeak.stack.v3/mvm
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.v3/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/newspeak.stack.v3/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -17,7 +17,7 @@
echo usage: $0 -A \| -AS \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/squeak.cog.spur/mvm
===================================================================
--- branches/Cog/build.macos32x86/squeak.cog.spur/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/squeak.cog.spur/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -28,7 +28,7 @@
echo usage: $0 -A \| -AS -AT \| -d -a -f -dt -at -ft
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm $C -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm $C -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm $C -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/squeak.cog.v3/mvm
===================================================================
--- branches/Cog/build.macos32x86/squeak.cog.v3/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/squeak.cog.v3/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -27,7 +27,7 @@
echo usage: $0 -A \| -AS -AT \| -d -a -f -dt -at -ft
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm $C -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm $C -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm $C -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/squeak.sista.spur/mvm
===================================================================
--- branches/Cog/build.macos32x86/squeak.sista.spur/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/squeak.sista.spur/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -19,7 +19,7 @@
echo usage: $0 -A \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm $C -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm $C -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm $C -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.macos32x86/squeak.sista.v3/mvm
===================================================================
--- branches/Cog/build.macos32x86/squeak.sista.v3/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.macos32x86/squeak.sista.v3/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -19,7 +19,7 @@
echo usage: $0 -A \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm $C -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm $C -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm $C -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/build.win32x86/makeall
===================================================================
--- branches/Cog/build.win32x86/makeall 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.win32x86/makeall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/bash
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in newspeak.* squeak.*; do
if test -d "$d"; then
(cd $d;./mvm)
Modified: branches/Cog/build.win32x86/makeallinstall
===================================================================
--- branches/Cog/build.win32x86/makeallinstall 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/build.win32x86/makeallinstall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
#!/bin/bash
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
for d in newspeak.*/installer squeak.*/installer; do
if test -d "$d"; then
(cd $d;make)
Added: branches/Cog/build.win32x86/makeproduct
===================================================================
--- branches/Cog/build.win32x86/makeproduct (rev 0)
+++ branches/Cog/build.win32x86/makeproduct 2014-06-14 02:52:51 UTC (rev 2999)
@@ -0,0 +1,9 @@
+#!/bin/bash
+trap 'exit 2' HUP INT PIPE TERM
+for d in newspeak.cog.spur newspeak.cog.v3 squeak.cog.spur squeak.cog.v3 do
+ if test -d "$d"; then
+ (cd $d;./mvm)
+ else
+ echo no $d directory found
+ fi
+done
Property changes on: branches/Cog/build.win32x86/makeproduct
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/Cog/build.win32x86/makeproductinstall
===================================================================
--- branches/Cog/build.win32x86/makeproductinstall (rev 0)
+++ branches/Cog/build.win32x86/makeproductinstall 2014-06-14 02:52:51 UTC (rev 2999)
@@ -0,0 +1,9 @@
+#!/bin/bash
+trap 'exit 2' HUP INT PIPE TERM
+for d in newspeak.cog.spur/installer newspeak.cog.v3/installer; do
+ if test -d "$d"; then
+ (cd $d;make)
+ else
+ echo no $d directory found
+ fi
+done
Property changes on: branches/Cog/build.win32x86/makeproductinstall
___________________________________________________________________
Added: svn:executable
+ *
Modified: branches/Cog/macbuild/mvm
===================================================================
--- branches/Cog/macbuild/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/macbuild/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -27,7 +27,7 @@
echo usage: $0 -A \| -AS -AT \| -d -a -f -dt -at -ft
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm $C -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm $C -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm $C -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/nscogbuild/macbuild/mvm
===================================================================
--- branches/Cog/nscogbuild/macbuild/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nscogbuild/macbuild/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -17,7 +17,7 @@
echo usage: $0 -A \| -AS \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/nsspurcogbuild/macbuild/mvm
===================================================================
--- branches/Cog/nsspurcogbuild/macbuild/mvm 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nsspurcogbuild/macbuild/mvm 2014-06-14 02:52:51 UTC (rev 2999)
@@ -17,7 +17,7 @@
echo usage: $0 -A \| -AS \| -d -a -f
exit 1
fi
-trap 'exit 2' HUP INT PIPE TERM 0
+trap 'exit 2' HUP INT PIPE TERM
test -n "$D" && (makevm -d 2>&1 | tee $D;grep "BUILD .*ED" $D)
test -n "$A" && (makevm -a 2>&1 | tee $A;grep "BUILD .*ED" $A)
test -n "$F" && (makevm -s 2>&1 | tee $F;grep "BUILD .*ED" $F)
Modified: branches/Cog/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nsspursrc/vm/cogit.c 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.766 uuid: 3045c341-cfbf-494c-a7b1-fb29c26a7340
+ CCodeGenerator * VMMaker.oscog-eem.771 uuid: aab62250-6fd1-4267-95f5-a270cf86aad7
from
- StackToRegisterMappingCogit VMMaker.oscog-eem.766 uuid: 3045c341-cfbf-494c-a7b1-fb29c26a7340
+ StackToRegisterMappingCogit * VMMaker.oscog-eem.771 uuid: aab62250-6fd1-4267-95f5-a270cf86aad7
*/
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.766 uuid: 3045c341-cfbf-494c-a7b1-fb29c26a7340 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit * VMMaker.oscog-eem.771 uuid: aab62250-6fd1-4267-95f5-a270cf86aad7 " __DATE__ ;
char *__cogitBuildInfo = __buildInfo;
@@ -21614,9 +21614,6 @@
byteAtput(retpc - 2, (((usqInt) distance) >> 16) & 0xFF);
byteAtput(retpc - 3, (((usqInt) distance) >> 8) & 0xFF);
byteAtput(retpc - 4, distance & 0xFF);
- if (!(asserta((callTargetFromReturnAddress(self_in_relocateCallBeforeReturnPCby, retpc)) >= (minCallAddress())))) {
- error("relocating call to invalid address");
- }
}
return self_in_relocateCallBeforeReturnPCby;
}
Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nsspursrc/vm/cogit.h 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGenerator VMMaker.oscog-eem.766 uuid: 3045c341-cfbf-494c-a7b1-fb29c26a7340
+ CCodeGenerator * VMMaker.oscog-eem.771 uuid: aab62250-6fd1-4267-95f5-a270cf86aad7
*/
Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nsspursrc/vm/cointerp.c 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,9 +1,9 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b
from
- CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
+ CoInterpreter VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -631,6 +631,7 @@
static sqInt firstCorpse(sqInt headOfCorpseList) NoDbgRegParms;
static void * firstFixedFieldOfMaybeImmediate(sqInt oop) NoDbgRegParms;
void * firstFixedField(sqInt objOop);
+static void * firstGapOfSizeAtLeast(sqInt size) NoDbgRegParms;
void * firstIndexableField(sqInt objOop);
sqInt firstLongFormat(void);
sqInt firstShortFormat(void);
@@ -1478,8 +1479,8 @@
_iss sqInt needGCFlag;
_iss sqInt totalFreeOldSpace;
_iss sqInt bytesPerPage;
+_iss sqInt numSegments;
_iss sqInt traceLogIndex;
-_iss sqInt numSegments;
_iss usqInt pastSpaceStart;
_iss char * stackLimit;
_iss sqInt * freeLists;
@@ -1487,14 +1488,14 @@
_iss usqInt freeListsMask;
_iss sqInt rememberedSetSize;
_iss SpurContiguousObjStack unscannedEphemerons;
-_iss sqInt firstFreeChunk;
+_iss usqInt firstFreeChunk;
_iss unsigned char primTraceLogIndex;
_iss StackPage * mostRecentlyUsedPage;
_iss SpurNewSpaceSpace pastSpace;
_iss sqInt numStackPages;
_iss usqInt newSpaceStart;
+_iss usqInt oldSpaceStart;
_iss sqInt classTableFirstPage;
-_iss usqInt oldSpaceStart;
_iss sqInt weaklingStack;
_iss sqInt markStack;
_iss SpurNewSpaceSpace futureSpace;
@@ -1508,7 +1509,7 @@
_iss sqInt tempOop;
_iss char * objStackInvalidBecause;
_iss SpurNewSpaceSpace eden;
-_iss sqInt lastFreeChunk;
+_iss usqInt lastFreeChunk;
_iss sqInt profileSemaphore;
_iss sqInt ephemeronList;
_iss usqInt freeOldSpaceStart;
@@ -1614,7 +1615,6 @@
_iss unsigned long byteCount;
_iss SpurCircularBuffer highestObjects;
_iss sqInt preferredPinningSegment;
-_iss usqInt sortedFreeChunks;
_iss char * stackMemory;
_iss usqLong statFGCDeltaUsecs;
#undef _iss
@@ -2238,7 +2238,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.769";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.772";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -5531,6 +5531,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
+ null;
goto l290;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -5548,7 +5549,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- /* return self */
+ null;
l290: /* end baseFrameReturn */;
goto l287;
}
@@ -15524,7 +15525,7 @@
sqInt segIndex;
null;
- segAddress = sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto(ammount, ((void *)((((GIV(segments)[0]).segSize)) + (((GIV(segments)[0]).segStart)))), (&allocatedSize));
+ segAddress = sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto(ammount, firstGapOfSizeAtLeast(ammount), (&allocatedSize));
if (!(segAddress == null)) {
/* begin insertSegmentFor: */
assert((((unsigned long)segAddress)) > (segLimit(&GIV(segments)[0])));
@@ -16690,13 +16691,11 @@
sqInt f;
sqInt index;
sqInt initialIndex;
- sqInt lastSubdividedFreeChunk;
sqInt next;
sqInt node;
sqInt prev;
/* begin allocateOldSpaceChunkOfBytes:suchThat: */
- assert(((lastSubdividedFreeChunk = 0)) == 0);
/* be optimistic (& don't wait for the write) */
@@ -19252,7 +19251,7 @@
sqInt newObj;
sqInt numBytes;
sqInt obj;
- sqInt p;
+ usqInt p;
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
assert((slotSize >= 0)
@@ -19284,7 +19283,7 @@
l1: /* end allocateSmallNewSpaceSlots:format:classIndex: */;
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((obj + (BaseHeaderSize)) + (slotSize * (bytesPerSlot()))) - 1, addressAfter(obj)));
- for (p = (obj + (BaseHeaderSize)); p < ((obj + (BaseHeaderSize)) + (slotSize * 4)); p += 8) {
+ for (p = (((usqInt)(obj + (BaseHeaderSize)))); p <= (((usqInt)(((obj + (BaseHeaderSize)) + (slotSize * 4)) - 1))); p += 8) {
longAtput(p, GIV(nilObj));
longAtput(p + 4, GIV(nilObj));
}
@@ -22772,14 +22771,14 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt cascade0;
sqInt cascade1;
- sqInt free;
+ usqInt free;
sqInt high;
sqInt i;
sqInt low;
usqInt numSlots;
usqInt numSlots1;
- sqInt prevFree;
- sqInt prevPrevFree;
+ usqInt prevFree;
+ usqInt prevPrevFree;
sqInt scanAddress;
sqInt slotBytes;
@@ -24379,8 +24378,8 @@
sqInt iLimiT;
sqInt index;
sqInt lowest;
- sqInt lowestForwarder;
- sqInt lowestForwarder1;
+ usqInt lowestForwarder;
+ usqInt lowestForwarder1;
usqInt numSlots;
usqInt numSlots1;
sqInt o;
@@ -25316,7 +25315,7 @@
sqInt initialMajorIndex;
sqInt majorIndex;
sqInt minorIndex;
- sqInt p;
+ usqInt p;
sqInt page;
majorIndex = ((usqInt) GIV(classTableIndex)) >> 10;
@@ -25339,7 +25338,7 @@
}
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((page + (BaseHeaderSize)) + ((1 << 10) * (bytesPerSlot()))) - 1, addressAfter(page)));
- for (p = (page + (BaseHeaderSize)); p < ((page + (BaseHeaderSize)) + ((1 << 10) * 4)); p += 8) {
+ for (p = (((usqInt)(page + (BaseHeaderSize)))); p <= (((usqInt)(((page + (BaseHeaderSize)) + ((1 << 10) * 4)) - 1))); p += 8) {
longAtput(p, GIV(nilObj));
longAtput(p + 4, GIV(nilObj));
}
@@ -27631,6 +27630,33 @@
}
+/* Answer the segment limit of the first segment followed by a gap of at
+ least size bytes.
+ */
+
+static void *
+firstGapOfSizeAtLeast(sqInt size)
+{ DECL_MAYBE_SQ_GLOBAL_STRUCT
+ sqInt address;
+ sqInt bridge;
+ sqInt i;
+ usqInt numSlots;
+
+ for (i = 0; i <= (GIV(numSegments) - 2); i += 1) {
+ /* begin objectStartingAt: */
+ address = (((((&(GIV(segments)[i])))->segSize)) + ((((&(GIV(segments)[i])))->segStart))) - (2 * (BaseHeaderSize));
+ numSlots = byteAt(address + 7);
+ bridge = (numSlots == 0xFF
+ ? address + (BaseHeaderSize)
+ : address);
+ if (((bytesInObject(bridge)) - (2 * (BaseHeaderSize))) >= size) {
+ return ((void *)((((GIV(segments)[i]).segSize)) + (((GIV(segments)[i]).segStart))));
+ }
+ }
+ return ((void *)((((GIV(segments)[GIV(numSegments) - 1]).segSize)) + (((GIV(segments)[GIV(numSegments) - 1]).segStart))));
+}
+
+
/* NOTE: overridden in various simulator subclasses to add coercion to
CArray, so please duplicate any changes.
There are only two important cases, both for objects with named inst vars,
@@ -31063,7 +31089,7 @@
sqInt newObj1;
sqInt numBytes;
sqInt numSlots;
- sqInt p;
+ usqInt p;
classFormat = ((longAt((classObj + (BaseHeaderSize)) + (InstanceSpecificationIndex << 2))) >> 1);
instSpec = (((usqInt) classFormat) >> 16) & 0x1F;
@@ -31173,7 +31199,7 @@
if (!(newObj == null)) {
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((newObj + (BaseHeaderSize)) + (numSlots * (bytesPerSlot()))) - 1, addressAfter(newObj)));
- for (p = (newObj + (BaseHeaderSize)); p < ((newObj + (BaseHeaderSize)) + (numSlots * 4)); p += 8) {
+ for (p = (((usqInt)(newObj + (BaseHeaderSize)))); p <= (((usqInt)(((newObj + (BaseHeaderSize)) + (numSlots * 4)) - 1))); p += 8) {
longAtput(p, fillValue);
longAtput(p + 4, fillValue);
}
@@ -31569,7 +31595,10 @@
isForwardedObjectClassIndexPun being a power of two to generate a more
efficient test than the straight-forward
(self classIndexOf: objOop) = self isForwardedObjectClassIndexPun
- */
+ at the cost of this being ambiguous with free chunks. So either never
+ apply this to free chunks
+ or guard with (self isFreeObject: foo) not. So far the idiom has been to
+ guard with isFreeObject: */
sqInt
isForwarded(sqInt objOop)
@@ -32011,12 +32040,14 @@
static sqInt
isValidFreeObject(sqInt objOop)
-{
+{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt chunk;
- return (addressCouldBeObj(objOop))
+ return (((objOop & ((BaseHeaderSize) - 1)) == 0)
+ && (((((usqInt) objOop)) >= (((usqInt) GIV(oldSpaceStart))))
+ && ((((usqInt) objOop)) < (((usqInt) GIV(endOfMemory))))))
&& ((((longAt(objOop)) & 0x3FFFFF) == 0)
- && ((isInMemory(addressAfter(objOop)))
+ && ((oopisLessThanOrEqualTo(addressAfter(objOop), GIV(endOfMemory)))
&& (((((chunk = longAt((objOop + (BaseHeaderSize)) + (0 << 2)))) == 0)
|| (((longAt(chunk)) & 0x3FFFFF) == 0))
&& (((bytesInObject(objOop)) < (32 * 8))
@@ -37045,7 +37076,8 @@
assert((objOop % (allocationUnit())) == 0);
if (!((((usqInt) objOop)) < (((usqInt) GIV(endOfMemory))))) break;
assert((long64At(objOop)) != 0);
- if (((longAt(objOop)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop)) & 0x3FFFFF) == 0))) {
n += 1;
}
@@ -37071,7 +37103,8 @@
: address);
limit = GIV(pastSpaceStart);
while ((((usqInt) objOop1)) < (((usqInt) limit))) {
- if (((longAt(objOop1)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop1)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop1)) & 0x3FFFFF) == 0))) {
n += 1;
}
@@ -37086,7 +37119,8 @@
? address1 + (BaseHeaderSize)
: address1);
while ((((usqInt) objOop1)) < (((usqInt) GIV(freeStart)))) {
- if (((longAt(objOop1)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop1)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop1)) & 0x3FFFFF) == 0))) {
n += 1;
}
@@ -48947,7 +48981,7 @@
sqInt numSlots;
sqInt obj;
sqInt oop;
- sqInt p;
+ usqInt p;
char *sp;
char *sp1;
sqInt spaceOkay;
@@ -49024,7 +49058,7 @@
if (!(newObj == null)) {
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((newObj + (BaseHeaderSize)) + (numSlots * (bytesPerSlot()))) - 1, addressAfter(newObj)));
- for (p = (newObj + (BaseHeaderSize)); p < ((newObj + (BaseHeaderSize)) + (numSlots * 4)); p += 8) {
+ for (p = (((usqInt)(newObj + (BaseHeaderSize)))); p <= (((usqInt)(((newObj + (BaseHeaderSize)) + (numSlots * 4)) - 1))); p += 8) {
longAtput(p, GIV(nilObj));
longAtput(p + 4, GIV(nilObj));
}
@@ -56660,7 +56694,8 @@
assert((objOop1 % (allocationUnit())) == 0);
if (!((((usqInt) objOop1)) < (((usqInt) GIV(endOfMemory))))) break;
assert((long64At(objOop1)) != 0);
- if (((longAt(objOop1)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop1)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop1)) & 0x3FFFFF) == 0))) {
printHex(objOop1);
/* begin cr */
printf("\n");
@@ -56688,7 +56723,8 @@
: address);
limit = GIV(pastSpaceStart);
while ((((usqInt) objOop2)) < (((usqInt) limit))) {
- if (((longAt(objOop2)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop2)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop2)) & 0x3FFFFF) == 0))) {
printHex(objOop2);
/* begin cr */
printf("\n");
@@ -56705,7 +56741,8 @@
? address1 + (BaseHeaderSize)
: address1);
while ((((usqInt) objOop2)) < (((usqInt) GIV(freeStart)))) {
- if (((longAt(objOop2)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop2)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop2)) & 0x3FFFFF) == 0))) {
printHex(objOop2);
/* begin cr */
printf("\n");
@@ -58883,16 +58920,18 @@
void
printOopsFromto(sqInt startAddress, sqInt endAddress)
-{
+{ DECL_MAYBE_SQ_GLOBAL_STRUCT
+ sqInt limit;
sqInt oop;
oop = objectBefore(startAddress);
+ limit = (((((unsigned long)endAddress)) < GIV(endOfMemory)) ? (((unsigned long)endAddress)) : GIV(endOfMemory));
oop = (oop == null
? startAddress
: ((objectAfter(oop)) == startAddress
? startAddress
: oop));
- while ((((usqInt) oop)) < (((usqInt) endAddress))) {
+ while ((((usqInt) oop)) < (((usqInt) limit))) {
printHex(oop);
print("/");
printNum(oop);
@@ -60962,11 +61001,11 @@
rebuildFreeListsForPigCompact(void)
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
usqInt bytes;
- sqInt free;
+ usqInt free;
sqInt freeObj;
- sqInt nextFree;
- sqInt prevFree;
- sqInt prevPrevFree;
+ usqInt nextFree;
+ usqInt prevFree;
+ usqInt prevPrevFree;
sqInt start;
assert(checkTraversableSortedFreeList());
Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nsspursrc/vm/cointerp.h 2014-06-14 02:52:51 UTC (rev 2999)
@@ -1,5 +1,5 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b
*/
Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-06-13 16:48:22 UTC (rev 2998)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c 2014-06-14 02:52:51 UTC (rev 2999)
@@ -2,11 +2,11 @@
/* Automatically generated by
- CCodeGeneratorGlobalStructure VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
+ CCodeGeneratorGlobalStructure VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b
from
- CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d
+ CoInterpreter VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b
*/
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.769 uuid: 7b5918e2-f856-4eca-975d-0f1e6904ed1d " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.772 uuid: c15ccff3-56a1-484d-af3b-0ee906a7a24b " __DATE__ ;
char *__interpBuildInfo = __buildInfo;
@@ -634,6 +634,7 @@
static sqInt firstCorpse(sqInt headOfCorpseList) NoDbgRegParms;
static void * firstFixedFieldOfMaybeImmediate(sqInt oop) NoDbgRegParms;
void * firstFixedField(sqInt objOop);
+static void * firstGapOfSizeAtLeast(sqInt size) NoDbgRegParms;
void * firstIndexableField(sqInt objOop);
sqInt firstLongFormat(void);
sqInt firstShortFormat(void);
@@ -1481,8 +1482,8 @@
_iss sqInt needGCFlag;
_iss sqInt totalFreeOldSpace;
_iss sqInt bytesPerPage;
+_iss sqInt numSegments;
_iss sqInt traceLogIndex;
-_iss sqInt numSegments;
_iss usqInt pastSpaceStart;
_iss char * stackLimit;
_iss sqInt * freeLists;
@@ -1490,14 +1491,14 @@
_iss usqInt freeListsMask;
_iss sqInt rememberedSetSize;
_iss SpurContiguousObjStack unscannedEphemerons;
-_iss sqInt firstFreeChunk;
+_iss usqInt firstFreeChunk;
_iss unsigned char primTraceLogIndex;
_iss StackPage * mostRecentlyUsedPage;
_iss SpurNewSpaceSpace pastSpace;
_iss sqInt numStackPages;
_iss usqInt newSpaceStart;
+_iss usqInt oldSpaceStart;
_iss sqInt classTableFirstPage;
-_iss usqInt oldSpaceStart;
_iss sqInt weaklingStack;
_iss sqInt markStack;
_iss SpurNewSpaceSpace futureSpace;
@@ -1511,7 +1512,7 @@
_iss sqInt tempOop;
_iss char * objStackInvalidBecause;
_iss SpurNewSpaceSpace eden;
-_iss sqInt lastFreeChunk;
+_iss usqInt lastFreeChunk;
_iss sqInt profileSemaphore;
_iss sqInt ephemeronList;
_iss usqInt freeOldSpaceStart;
@@ -1617,7 +1618,6 @@
_iss unsigned long byteCount;
_iss SpurCircularBuffer highestObjects;
_iss sqInt preferredPinningSegment;
-_iss usqInt sortedFreeChunks;
_iss char * stackMemory;
_iss usqLong statFGCDeltaUsecs;
#undef _iss
@@ -2241,7 +2241,7 @@
/* 574 */ (void (*)(void))0,
/* 575 */ (void (*)(void))0,
0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.769";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.772";
sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
volatile int sendTrace;
@@ -5540,6 +5540,7 @@
GIV(framePointer) = localFP;
ceEnterCogCodePopReceiverReg();
+ null;
goto l290;
}
localIP = pointerForOop(longAt(localFP + FoxIFSavedIP));
@@ -5557,7 +5558,7 @@
/* begin fetchNextBytecode */
currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
- /* return self */
+ null;
l290: /* end baseFrameReturn */;
goto l287;
}
@@ -15533,7 +15534,7 @@
sqInt segIndex;
null;
- segAddress = sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto(ammount, ((void *)((((GIV(segments)[0]).segSize)) + (((GIV(segments)[0]).segStart)))), (&allocatedSize));
+ segAddress = sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto(ammount, firstGapOfSizeAtLeast(ammount), (&allocatedSize));
if (!(segAddress == null)) {
/* begin insertSegmentFor: */
assert((((unsigned long)segAddress)) > (segLimit(&GIV(segments)[0])));
@@ -16699,13 +16700,11 @@
sqInt f;
sqInt index;
sqInt initialIndex;
- sqInt lastSubdividedFreeChunk;
sqInt next;
sqInt node;
sqInt prev;
/* begin allocateOldSpaceChunkOfBytes:suchThat: */
- assert(((lastSubdividedFreeChunk = 0)) == 0);
/* be optimistic (& don't wait for the write) */
@@ -19261,7 +19260,7 @@
sqInt newObj;
sqInt numBytes;
sqInt obj;
- sqInt p;
+ usqInt p;
/* begin eeInstantiateSmallClassIndex:format:numSlots: */
assert((slotSize >= 0)
@@ -19293,7 +19292,7 @@
l1: /* end allocateSmallNewSpaceSlots:format:classIndex: */;
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((obj + (BaseHeaderSize)) + (slotSize * (bytesPerSlot()))) - 1, addressAfter(obj)));
- for (p = (obj + (BaseHeaderSize)); p < ((obj + (BaseHeaderSize)) + (slotSize * 4)); p += 8) {
+ for (p = (((usqInt)(obj + (BaseHeaderSize)))); p <= (((usqInt)(((obj + (BaseHeaderSize)) + (slotSize * 4)) - 1))); p += 8) {
longAtput(p, GIV(nilObj));
longAtput(p + 4, GIV(nilObj));
}
@@ -22781,14 +22780,14 @@
{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt cascade0;
sqInt cascade1;
- sqInt free;
+ usqInt free;
sqInt high;
sqInt i;
sqInt low;
usqInt numSlots;
usqInt numSlots1;
- sqInt prevFree;
- sqInt prevPrevFree;
+ usqInt prevFree;
+ usqInt prevPrevFree;
sqInt scanAddress;
sqInt slotBytes;
@@ -24388,8 +24387,8 @@
sqInt iLimiT;
sqInt index;
sqInt lowest;
- sqInt lowestForwarder;
- sqInt lowestForwarder1;
+ usqInt lowestForwarder;
+ usqInt lowestForwarder1;
usqInt numSlots;
usqInt numSlots1;
sqInt o;
@@ -25325,7 +25324,7 @@
sqInt initialMajorIndex;
sqInt majorIndex;
sqInt minorIndex;
- sqInt p;
+ usqInt p;
sqInt page;
majorIndex = ((usqInt) GIV(classTableIndex)) >> 10;
@@ -25348,7 +25347,7 @@
}
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((page + (BaseHeaderSize)) + ((1 << 10) * (bytesPerSlot()))) - 1, addressAfter(page)));
- for (p = (page + (BaseHeaderSize)); p < ((page + (BaseHeaderSize)) + ((1 << 10) * 4)); p += 8) {
+ for (p = (((usqInt)(page + (BaseHeaderSize)))); p <= (((usqInt)(((page + (BaseHeaderSize)) + ((1 << 10) * 4)) - 1))); p += 8) {
longAtput(p, GIV(nilObj));
longAtput(p + 4, GIV(nilObj));
}
@@ -27640,6 +27639,33 @@
}
+/* Answer the segment limit of the first segment followed by a gap of at
+ least size bytes.
+ */
+
+static void *
+firstGapOfSizeAtLeast(sqInt size)
+{ DECL_MAYBE_SQ_GLOBAL_STRUCT
+ sqInt address;
+ sqInt bridge;
+ sqInt i;
+ usqInt numSlots;
+
+ for (i = 0; i <= (GIV(numSegments) - 2); i += 1) {
+ /* begin objectStartingAt: */
+ address = (((((&(GIV(segments)[i])))->segSize)) + ((((&(GIV(segments)[i])))->segStart))) - (2 * (BaseHeaderSize));
+ numSlots = byteAt(address + 7);
+ bridge = (numSlots == 0xFF
+ ? address + (BaseHeaderSize)
+ : address);
+ if (((bytesInObject(bridge)) - (2 * (BaseHeaderSize))) >= size) {
+ return ((void *)((((GIV(segments)[i]).segSize)) + (((GIV(segments)[i]).segStart))));
+ }
+ }
+ return ((void *)((((GIV(segments)[GIV(numSegments) - 1]).segSize)) + (((GIV(segments)[GIV(numSegments) - 1]).segStart))));
+}
+
+
/* NOTE: overridden in various simulator subclasses to add coercion to
CArray, so please duplicate any changes.
There are only two important cases, both for objects with named inst vars,
@@ -31072,7 +31098,7 @@
sqInt newObj1;
sqInt numBytes;
sqInt numSlots;
- sqInt p;
+ usqInt p;
classFormat = ((longAt((classObj + (BaseHeaderSize)) + (InstanceSpecificationIndex << 2))) >> 1);
instSpec = (((usqInt) classFormat) >> 16) & 0x1F;
@@ -31182,7 +31208,7 @@
if (!(newObj == null)) {
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((newObj + (BaseHeaderSize)) + (numSlots * (bytesPerSlot()))) - 1, addressAfter(newObj)));
- for (p = (newObj + (BaseHeaderSize)); p < ((newObj + (BaseHeaderSize)) + (numSlots * 4)); p += 8) {
+ for (p = (((usqInt)(newObj + (BaseHeaderSize)))); p <= (((usqInt)(((newObj + (BaseHeaderSize)) + (numSlots * 4)) - 1))); p += 8) {
longAtput(p, fillValue);
longAtput(p + 4, fillValue);
}
@@ -31578,7 +31604,10 @@
isForwardedObjectClassIndexPun being a power of two to generate a more
efficient test than the straight-forward
(self classIndexOf: objOop) = self isForwardedObjectClassIndexPun
- */
+ at the cost of this being ambiguous with free chunks. So either never
+ apply this to free chunks
+ or guard with (self isFreeObject: foo) not. So far the idiom has been to
+ guard with isFreeObject: */
sqInt
isForwarded(sqInt objOop)
@@ -32020,12 +32049,14 @@
static sqInt
isValidFreeObject(sqInt objOop)
-{
+{ DECL_MAYBE_SQ_GLOBAL_STRUCT
sqInt chunk;
- return (addressCouldBeObj(objOop))
+ return (((objOop & ((BaseHeaderSize) - 1)) == 0)
+ && (((((usqInt) objOop)) >= (((usqInt) GIV(oldSpaceStart))))
+ && ((((usqInt) objOop)) < (((usqInt) GIV(endOfMemory))))))
&& ((((longAt(objOop)) & 0x3FFFFF) == 0)
- && ((isInMemory(addressAfter(objOop)))
+ && ((oopisLessThanOrEqualTo(addressAfter(objOop), GIV(endOfMemory)))
&& (((((chunk = longAt((objOop + (BaseHeaderSize)) + (0 << 2)))) == 0)
|| (((longAt(chunk)) & 0x3FFFFF) == 0))
&& (((bytesInObject(objOop)) < (32 * 8))
@@ -37054,7 +37085,8 @@
assert((objOop % (allocationUnit())) == 0);
if (!((((usqInt) objOop)) < (((usqInt) GIV(endOfMemory))))) break;
assert((long64At(objOop)) != 0);
- if (((longAt(objOop)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop)) & 0x3FFFFF) == 0))) {
n += 1;
}
@@ -37080,7 +37112,8 @@
: address);
limit = GIV(pastSpaceStart);
while ((((usqInt) objOop1)) < (((usqInt) limit))) {
- if (((longAt(objOop1)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop1)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop1)) & 0x3FFFFF) == 0))) {
n += 1;
}
@@ -37095,7 +37128,8 @@
? address1 + (BaseHeaderSize)
: address1);
while ((((usqInt) objOop1)) < (((usqInt) GIV(freeStart)))) {
- if (((longAt(objOop1)) & (0x3FFFFF - 8)) == 0) {
+ if ((((longAt(objOop1)) & (0x3FFFFF - 8)) == 0)
+ && (!(((longAt(objOop1)) & 0x3FFFFF) == 0))) {
n += 1;
}
@@ -48956,7 +48990,7 @@
sqInt numSlots;
sqInt obj;
sqInt oop;
- sqInt p;
+ usqInt p;
char *sp;
char *sp1;
sqInt spaceOkay;
@@ -49033,7 +49067,7 @@
if (!(newObj == null)) {
/* begin fillObj:numSlots:with: */
assert(oopisLessThan(((newObj + (BaseHeaderSize)) + (numSlots * (bytesPerSlot()))) - 1, addressAfter(newObj)));
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list