Skip to content

Commit 4f9f184

Browse files
committed
CogVM source as per VMMaker.oscog-eem.1873
Spur: Fix ephemerons (at least for Gule's test case). The mournQueue is of course a root for the scavenger and so must be visited at the start of a scavenge. Fix bug in markAllUnscannedEphemerons, enumerating correctly. Both fireEphemeronsInRememberedSet and fireEphemeronsOnEphemeronList must check for an ephemeron being fireable. An as-yet-firable ephemeron might get added to the ephemeron list and later its key may get tenured, rendering the ephemeron unfirable in that cycle. Fix marking of obj stack contents (markAndTraceObjStack:andContents:). Again tenuring could cause contents to be forwarded and hence read barrier is needed. Fix asserts that check for ephemerons so that the change in an ephemeron's format once it gets added to the mournQueue doesn't break the asserts; isMaybeFiredEphemeron[Format]: answer true for ephemerons and ephemerons in the mournQueue. Make pushLiteralVariable: store unfollowed literals back into the literal frame. Do so in a function off to the side, not inlined into the interpreter loop. With these changes Guille's test case passes: | e | Smalltalk supportsQueueingFinalization: true. e := (1 to: 200000) collect: [:i| Ephemeron key: (ObjectFinalizer receiver: 'test', 'asd' selector: #logCr) value: Object new]. Smalltalk garbageCollect! Plugins: Take a slightly more minimal approach to Esteban's FloatArray changes in VMMaker.oscog-EstebanLorenzano.1869 git-svn-id: http://squeakvm.org/svn/squeak/branches/Cog@3732 fa1542d4-bde8-0310-ad64-8ed1123d492a Former-commit-id: 44a69bc6a14208a3c14745135797ba8bab61a0a6
1 parent 439f74f commit 4f9f184

File tree

38 files changed

+19101
-19647
lines changed

38 files changed

+19101
-19647
lines changed

nsspur64src/vm/cogit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGenerator VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
2+
CCodeGenerator VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
33
*/
44

55

nsspur64src/vm/cointerp.c

Lines changed: 1254 additions & 1273 deletions
Large diffs are not rendered by default.

nsspur64src/vm/cointerp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
33
*/
44

55

nsspur64src/vm/gcc3x-cointerp.c

Lines changed: 1254 additions & 1273 deletions
Large diffs are not rendered by default.

nsspursrc/vm/cogit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGenerator VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
2+
CCodeGenerator VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
33
*/
44

55

nsspursrc/vm/cointerp.c

Lines changed: 985 additions & 1003 deletions
Large diffs are not rendered by default.

nsspursrc/vm/cointerp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Automatically generated by
2-
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
2+
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
33
*/
44

55

nsspursrc/vm/gcc3x-cointerp.c

Lines changed: 985 additions & 1003 deletions
Large diffs are not rendered by default.

nsspurstack64src/vm/gcc3x-interp.c

Lines changed: 1455 additions & 1459 deletions
Large diffs are not rendered by default.

nsspurstack64src/vm/interp.c

Lines changed: 1455 additions & 1459 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)