Skip to content

Commit

Permalink
CogVM source as per VMMaker.oscog-eem.1873
Browse files Browse the repository at this point in the history
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
  • Loading branch information
eliotmiranda committed May 26, 2016
1 parent 439f74f commit 4f9f184
Show file tree
Hide file tree
Showing 38 changed files with 19,101 additions and 19,647 deletions.
2 changes: 1 addition & 1 deletion nsspur64src/vm/cogit.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGenerator VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
2,527 changes: 1,254 additions & 1,273 deletions nsspur64src/vm/cointerp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nsspur64src/vm/cointerp.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
2,527 changes: 1,254 additions & 1,273 deletions nsspur64src/vm/gcc3x-cointerp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nsspursrc/vm/cogit.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGenerator VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
1,988 changes: 985 additions & 1,003 deletions nsspursrc/vm/cointerp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nsspursrc/vm/cointerp.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
1,988 changes: 985 additions & 1,003 deletions nsspursrc/vm/gcc3x-cointerp.c

Large diffs are not rendered by default.

2,914 changes: 1,455 additions & 1,459 deletions nsspurstack64src/vm/gcc3x-interp.c

Large diffs are not rendered by default.

2,914 changes: 1,455 additions & 1,459 deletions nsspurstack64src/vm/interp.c

Large diffs are not rendered by default.

2,273 changes: 1,135 additions & 1,138 deletions nsspurstacksrc/vm/gcc3x-interp.c

Large diffs are not rendered by default.

2,273 changes: 1,135 additions & 1,138 deletions nsspurstacksrc/vm/interp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion spur64src/vm/cogit.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGenerator VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
2,039 changes: 1,014 additions & 1,025 deletions spur64src/vm/cointerp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion spur64src/vm/cointerp.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
2,039 changes: 1,014 additions & 1,025 deletions spur64src/vm/gcc3x-cointerp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion spursistasrc/vm/cogit.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGenerator VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGenerator VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
1,964 changes: 973 additions & 991 deletions spursistasrc/vm/cointerp.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion spursistasrc/vm/cointerp.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Automatically generated by
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1865 uuid: 2aa4b0e0-004d-4599-896a-084a749a2c47
CCodeGeneratorGlobalStructure VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4
*/


Expand Down
Loading

0 comments on commit 4f9f184

Please sign in to comment.