N.B. For Squeak/Pharo/Croquet please use the archives whose names begin with Cog or cog. The archives whose names begin with nsvm or Newspeak are for Newspeak and are missing plugins required by Squeak/Pharo/Croquet. VMs with "mt" or "MT" in the name are multi-threaded VMs which support non-blocking FFI calls. The archives containing "Spur" or "spur" are VMs using the new Spur object representation and garbage collector and should be used with Spur-format Squeak/Pharo/Croquet or Newspeak images. There are two variants of the Linux VMs; those ending in "ht" have a heartbeat thread, while those that don't, use an interval timer for the heartbeat (the Windows and Mac VMs have a threaded heartbeat). The threaded heartbeat is better (for example, signals from the interval timer interfere with system calls, etc), but to use it one must have a kernel later than 2.6.12 and configure linux to allow the VM to use multiple thread priorities. To do so, create a file called VM.conf where VM is the name of the vm executable ("squeak" for the Squeak vm, "nsvm" for the Newspeak vm) in /etc/security/limits.d/ with contents: * hard rtprio 2 * soft rtprio 2 e.g. sudo cat >/etc/security/limits.d/squeak.conf <true to "false", or simply deleting the manifest file. ------------------------------------------------------------------------ CogVM binaries as per VMMaker.oscog-eem.913/r3114 Spur: Fix baaaad bug in checking for still-married contexts in Spur. One *cannot* simply follow what is assumed to be the frameContext field of what is presumed to be a context. On Spur we need to *know* whether we have a valid frameContext field, and for that we have to know there is a valid frame. So refactor, moving isFrame:onPage: from StackInterpreterPrimitives to StackInterpreter, and use it to validate the frame pointer of a maybe married context before testing the context for being forwarded. All: Avoid cogging methods containing unknown bytecodes early in scanMethod. Use a hack to avoid a test on the common path. Fix assert fail cases in ceInterpretMethodFromPIC:receiver: Both of these together fix assert fails due to cogging methods containing unknown bytecodes. Spur: Implement image segments. Use Igor's idea of splitting the computation of the transitive closure from the writing of the image segment for simplicity, even if the two are together into a single primitive for backwards-compatibility. All: Rewrite the two image segment primitives to pass back an error code on failure, and rewrite the (New)ObjectMemory code to answer informative failure codes. Print slots of word objects in longPrintOop: Fix parenthesization bugs in validation code in some Alien plugin primtiives. Make findClassContainingMethod:startingAt: et al robust in the face of faulted-out classes (nil method dictionaries). Include the AioPlugin in the Newspeak linux VMs; recent reports indicate it's essential to good performance in recent versions of OSProcessPlugin. Unix startup script: Quote the LD_LIBRARY_PATH setting to tolerate directory names with spaces.