see http://www.mirandabanda.org/files/Cog/VM/VM.r2987/
CogVM binaries as per VMMaker.oscog-eem.769/r2987 platform code: Type the memory allocators as accepting and answering usqInts to give a chance at allocating more than 2Gb. Use unsigned comparisons when testing if there's sufficient heap space in
readImageFromFile:HeapSize:StartingAt:. Leads to accurate failure message when failing to allocate large heap. Correct syntax of inline assembler for byte and word swap operations in win32
16-bit displays. Thanks to Nicolai Hess! sqUnixX11.c: Include the right X11 include file to pull in the def for XK_equal (keysym.h vs keysymdef.h). Don't define BytesPerOop or BaseHeaderSize; these should be taken from interp.h.
Integrate Philippe Back's fix for numberic keypads on X11; Add the XDisplayControlPlugin to the plugins loaded by the image build script.
Use pthread_atfork to reinstall the heartbeat thread post fork. Make sure SIGALRM is unblocked if using the interval timer heartbeat on linux. Remove RPATH spec from unix builds.
Include the executable name in the crash.dmp report. Fix stack backtrace printing on Mac & Unix to not segfault when invoked from error(char *msg) function.
CoInterpreter: No longer inline CoInterpreter>>pre/postGCAction: for VM profiling. Fix instantiation of large non-byte objects. The old code for
sufficientSpaceToInstantiate:indexableSize: stupidly subtracted BytesPerWord instead of ShiftForWord from LongSizeNumBits in determining the max size. Garbage collect/remap the primTraceLog correctly. If a GC happens
very early in start-up the log circular buffer may not be full and the existing code assumed it always was. Add Spur-specific interpreter proxy functions for immediate character and
pinning access. Implement the new Spur interpreterProxy API for ObjectMemory (of course pinObject: fails, and isCharacterValue: has a smaller range). Fix a bug in printing frame flags (order was the wrong way around).
Allow vmParameterAt: 26 put: 0 to disable the heartbeat itimer. Add AioPlugin to Mac VMs. Make CoInterpreter>>printFrame: not mislead as to the number of
temps in a block activation. Change the time primitives to access the time now, not the time as updated by the heartbeat (but /don't/ change the time basis for event checking. This for
performance because use of gettimeofday in e.g. stack overflow can be a signficant performance overhead. Move the simulated time implementations (ioSeconds et al) up to StackInterpreter to reduce duplication. Add
ioSecondsNow et al to the platform code to support this. Fix regression in primitiveUtcWithOffset, answer the correct local time offset. Fix ioSecondsNow to use the time now, not the heartbeat time.
Revamp primitiveVMParameter to avoid overflow in values such as total heap size. Make statProcessSwitch, statIOProcessEvents, statForceInterruptCheck, statCheckForEvents, statStackOverflow & statStackPageDivorce 64-bit to avoid
wrapping. Make sure that positive64BitIntegerFor: will not cause a GC just as positive32BitIntegerFor: doesn't. Make primitiveClone cope with variable args, cloning its last
argument. This for the Newspeak VMMirror. Add primitiveAllObjects, adapted from VMMaker-dtl.339.mcz Add Nicolas Cellier's bitblt speedups, reference: Mantis issue 7802: Fast-up BitBlt rgbAdd rule
Mantis issue 7803: Fast-up BitBlt alpha blending rules Check for valid bitmap in primitivePixelValueAt aka BitBltSimulation>> primitivePixelValueAtX:y: Fix provided by Nicolas Cellier. Reference Mantis 7799
Avoid including the instructionPointer in the context when marrying the top frame during divorceAllFrames for voidVMState..If:. (how did this ever work??) Fix a bug in BitBltPlugin>>lockSurfaces.
Add the compression prims to the Newspeak VM's ZipPlugin. Fix roomToPushNArgs:; the Cog VMs can be more lenient because of the use of a stack instead of contexts. Fixes some valueWithArguments: failures.
Integrate Nice's improved SmallInteger generated primitives that support int x float comparison, & hence speed-up int x float comparison enormously. Integrate VMMaker-dtl.328 (failure of primitiveDisplayString to advance destX).
Integrate 2792, fix memory leaks in SqueakSSL on unix. Integrate VMMaker-tpr.325 7247: BitBlt Bug in alphaSourceBlendBits8. Integrate VMMaker-tpr.326, Fix a single-bit constant error in
BitBltSimulation>>copyBits:Fallback: - change 16r3FFF to 16r7FFF to correct tallyIntoMap behaviour for Scratch using BenBlt on the Pi. Restrict at-cache to bytecodePrimAt[Put], eliminating it from
primitive[String]At[Put]. Sionara the explicit noAtCache at:[put:] machinery in CoInterpreter now that the atCache is confined to the interpreter's special selector at:[put:] bytecodes. Speeds up Stack VM signfiicantly, e.g. a compile
of Compiler package falls from 1.6s to 1.4s on 2.2GHz Intel Core i7 MacBook Pro. Restrict at-cache to bytecodePrimAt[Put], eliminating it from primitive[String] At[Put]. Undoes need for fix in VMMaker-oscog.44 of 7 January 2011:
"Fix leaking of objects into the atCache due to ceSend:super:to:numArgs:'s use of executeNewMethod without always setting messageSelector."
This renders messageSelector and lkupClass ephemeral, since they are live only during message lookup and because createActualMessageTo will not cause a GC these cannot change during message lookup. Hence eliminate them from
markAndTraceInterpreterOops: & mapVMRegisters. Fix arg count for primPCREExecfromto Cogit: Streamline the genPrimReturnEnterCogCodeEnilopmart.
Streamline genExternalizePointersForPrimitiveCall Have StackToRegisterMappingCogit>>genPushReceiverBytecode use ReceiverResultReg if it contains self.
Fix a double free bug in unlinkSendsOf:isMNUSelector:. Harmless cuz the result is only a bogus count of how many methods freed. Beef up the cog method integrity check to verify a its methodObject is a CompiledMethod.
Fix bug in unlinkSendsOf:isMNUSelector: (primitiveFlushCacheBySelector) where old code could free the method of an active frame. Fix an assert fail in mapFor:bcpc:performUntil:arg: (this for
primitiveClass where the class table reference can be the first map entry). Fix a bug in Newspeak remapIfObjectRef:pc:hasYoung: with dynamic super sends which could compute an invalid target method.
Rename pushExplicitOuterSendReceiverBytecode et al to pushExplicitOuterReceiverBytecode et al. These are not sends. Fix pc-mapping for NewspeakV4. Dynamic super sends should
/not/ be annotated with IsNSSendCall, but wth the vanilla IsSendCall. This fixes a bug converting an interpreter activation of a method with a loop and a dynamic super send to a machine code frame.
For performance, specify that mapFor:[bcpc:]performUntil:arg: are inlined, eliminating the perform/indirect function call. This adds of the order of 3% to the size of a cogit.o's text seg so is acceptable.
Print (nil) next to the selector for cog methods with a nil selector. Fix bug in Cogit>>unlinkSendsOf:isMNUSelector:, used by primitiveFlushCacheBySelector. The method could leave sends
linked to freed MNU PICs. best, Eliot
|
That's a lot!
Thanks Eliot Herbert Am 13.06.2014 01:08, schrieb Eliot
Miranda:
|
In reply to this post by Eliot Miranda-2
I got a crash right away with newest cogwin when opening my usual
working image. No simple case easy to reproduce yet. Dump is attached. Stef crash.dmp (11K) Download Attachment |
On 13.06.2014, at 13:38, Stéphane Rollandin <[hidden email]> wrote: > I got a crash right away with newest cogwin when opening my usual working image. No simple case easy to reproduce yet. Dump is attached. The image format changed. - Bert - smime.p7s (5K) Download Attachment |
> The image format changed.
This is using the newest cog, not cog+spur. Stef |
On 13.06.2014, at 14:01, Stéphane Rollandin <[hidden email]> wrote: >> The image format changed. > > This is using the newest cog, not cog+spur. > > > Stef Ah, okay. - Bert - smime.p7s (5K) Download Attachment |
In reply to this post by Eliot Miranda-2
On 13 June 2014 00:08, Eliot Miranda <[hidden email]> wrote:
> see http://www.mirandabanda.org/files/Cog/VM/VM.r2987/ Yay! But it's not in the usual kind of place: have you abandoned the year/week versioning system? frank |
In reply to this post by Stéphane Rollandin
Hi Stéph,
On Fri, Jun 13, 2014 at 4:38 AM, Stéphane Rollandin <[hidden email]> wrote: I got a crash right away with newest cogwin when opening my usual working image. No simple case easy to reproduce yet. Dump is attached. Thanks. This is fixed in VMMaker.oscog-eem.772. It was an overzealous bounds check on a relocated call of an interpreter primitive. The VM complained and aborted because the interpreter primitive;s address was out of the code zone (as of course it should be; it is in the interpreter) i.e. the VM should not have performed the check and should not have exited. Apologies. I'll be building and uploading new VMs soon.
best, Eliot
|
In reply to this post by Frank Shearar-3
On 13 June 2014 13:44, Frank Shearar <[hidden email]> wrote:
> On 13 June 2014 00:08, Eliot Miranda <[hidden email]> wrote: >> see http://www.mirandabanda.org/files/Cog/VM/VM.r2987/ > > Yay! https://travis-ci.org/squeak-smalltalk/squeak-ci/builds/27566729 <-- Latest Cog passing Travis CI's muster http://build.squeak.org/job/SqueakTrunk/861/ <-- Latest Cog passing build.squeak.org's muster (http://build.squeak.org/job/SqueakTrunk/860/ was actually the first run, but it barfed with that intermittent LargeInteger primitive bug.) Given the inclusion of SSL libs in r3000, does it make sense for me to still manually install the SqueakSSL plugin from https://squeakssl.googlecode.com/files/SqueakSSL-bin-0.1.5.zip ? frank |
On Sat, Jun 14, 2014 at 8:46 AM, Frank Shearar <[hidden email]> wrote:
If the tests show it is good. Do they? Not sure from the CI runs above...
best, Eliot
|
On 14 June 2014 17:04, Eliot Miranda <[hidden email]> wrote:
> > On Sat, Jun 14, 2014 at 8:46 AM, Frank Shearar <[hidden email]> > wrote: >> >> On 13 June 2014 13:44, Frank Shearar <[hidden email]> wrote: >> > On 13 June 2014 00:08, Eliot Miranda <[hidden email]> wrote: >> >> see http://www.mirandabanda.org/files/Cog/VM/VM.r2987/ >> > >> > Yay! >> >> https://travis-ci.org/squeak-smalltalk/squeak-ci/builds/27566729 <-- >> Latest Cog passing Travis CI's muster >> http://build.squeak.org/job/SqueakTrunk/861/ <-- Latest Cog passing >> build.squeak.org's muster >> >> (http://build.squeak.org/job/SqueakTrunk/860/ was actually the first >> run, but it barfed with that intermittent LargeInteger primitive bug.) >> >> Given the inclusion of SSL libs in r3000, does it make sense for me to >> still manually install the SqueakSSL plugin from >> https://squeakssl.googlecode.com/files/SqueakSSL-bin-0.1.5.zip ? > > > If the tests show it is good. Do they? Not sure from the CI runs above... 11's about the normal number of test failures. Those look like the usual suspects. So I'm happy that r3000 + manually installed SqueakSSL works. I'm just wondering if I need to do the manual install anymore... frank > -- > best, > Eliot > > > |
On Jun 14, 2014, at 12:00 PM, Frank Shearar <[hidden email]> wrote: > On 14 June 2014 17:04, Eliot Miranda <[hidden email]> wrote: >> >> On Sat, Jun 14, 2014 at 8:46 AM, Frank Shearar <[hidden email]> >> wrote: >>> >>> On 13 June 2014 13:44, Frank Shearar <[hidden email]> wrote: >>>> On 13 June 2014 00:08, Eliot Miranda <[hidden email]> wrote: >>>>> see http://www.mirandabanda.org/files/Cog/VM/VM.r2987/ >>>> >>>> Yay! >>> >>> https://travis-ci.org/squeak-smalltalk/squeak-ci/builds/27566729 <-- >>> Latest Cog passing Travis CI's muster >>> http://build.squeak.org/job/SqueakTrunk/861/ <-- Latest Cog passing >>> build.squeak.org's muster >>> >>> (http://build.squeak.org/job/SqueakTrunk/860/ was actually the first >>> run, but it barfed with that intermittent LargeInteger primitive bug.) >>> >>> Given the inclusion of SSL libs in r3000, does it make sense for me to >>> still manually install the SqueakSSL plugin from >>> https://squeakssl.googlecode.com/files/SqueakSSL-bin-0.1.5.zip ? >> >> >> If the tests show it is good. Do they? Not sure from the CI runs above... > > 11's about the normal number of test failures. Those look like the > usual suspects. So I'm happy that r3000 + manually installed SqueakSSL > works. I'm just wondering if I need to do the manual install > anymore... I'm hoping not, but there's been very little testing of these latest SSL plugins. I see no reason why they won't work and of course we want the new ones to work. Try it and see? > > frank > >> -- >> best, >> Eliot > |
In reply to this post by Eliot Miranda-2
> I got a crash right away with newest cogwin when opening my usual
Unfortunately I still get a crash with the r3000 VM, with the pop-up
> working image. No simple case easy to reproduce yet. Dump is attached. > > > Thanks. This is fixed in VMMaker.oscog-eem.772. It was an overzealous > bounds check on a relocated call of an interpreter primitive. The VM > complained and aborted because the interpreter primitive;s address was > out of the code zone (as of course it should be; it is in the > interpreter) i.e. the VM should not have performed the check and should > not have exited. Apologies. I'll be building and uploading new VMs soon. > saying "relocating call to invalid address" Dump attached. Stef crash.dmp (12K) Download Attachment |
Hi Stéf,
On Jun 15, 2014, at 10:27 AM, Stéphane Rollandin <[hidden email]> wrote: >> I got a crash right away with newest cogwin when opening my usual >> working image. No simple case easy to reproduce yet. Dump is attached. >> >> >> Thanks. This is fixed in VMMaker.oscog-eem.772. It was an overzealous >> bounds check on a relocated call of an interpreter primitive. The VM >> complained and aborted because the interpreter primitive;s address was >> out of the code zone (as of course it should be; it is in the >> interpreter) i.e. the VM should not have performed the check and should >> not have exited. Apologies. I'll be building and uploading new VMs soon. > > Unfortunately I still get a crash with the r3000 VM, with the pop-up saying "relocating call to invalid address" Sorry, I forgot to regenerate the cogit.c files in the non-spur builds. I'll fix it by Monday. > > Dump attached. > > Stef > <crash.dmp> > |
Free forum by Nabble | Edit this page |