ignore this one. I have the patient on the table... On Fri, Dec 31, 2010 at 12:25 PM, Eliot Miranda <[email protected]>wrote:
> Hi All, > > thanks to everyone finding bug cases. Please keep it up. I'm anxious > to find a reproducible case for a crash in (what I thought was fixed) > bytecode to machine code pc mapping with the r2333 VMs which has a stack > trace like the following: > > Thread 0 Crashed: Dispatch queue: com.apple.main-thread > 0 com.teleplace.Teleplace 0x000b8ca6 mapForbcpcperformUntilarg + > 166 (cogit.c:10929) > 1 com.teleplace.Teleplace 0x000b8f3c mcPCForstartBcpcin + 44 > (cogit.c:11480) > > I get it only intermittently (ironically when pushing out a new version of > the VM sources) and would love to find a reproducible case. So if anyone > sees this I'd be indebted if you could spend some time trying to make it > easily reproducible. > > TIA > Eliot > > On Thu, Dec 30, 2010 at 6:02 PM, Eliot Miranda <[email protected]>wrote: > >> Hi All, >> >> I've released a new version of Cog that has a substantially improved >> code generator along the lines of Peter Deutsch's HPS (VisualWorks) and >> various of Ian Piumarta's VMs. These all use a simple tecnique to identify >> constant references in bytecode and to support a register-based calling >> convention. While this does produce faster code it tends to accelerate >> low-level code much more than high-level code as you can see by the >> following benchmarks: >> >> SimpleStackBasedCogit: [1 to: 100000000 do: [:i|]] timeToRun 691 >> StackToRegisterMappingCogit: [1 to: 100000000 do: [:i|]] timeToRun 192 >> 192 - 691 / 6.91 -72% >> >> SimpleStackBasedCogit: 0 tinyBenchmarks '753495217 bytecodes/sec; 64769127 >> sends/sec' >> StackToRegisterMappingCogit: 0 tinyBenchmarks '931756141 bytecodes/sec; >> 128157989 sends/sec' >> 931756141 - 753495217 / 7534952.17 -24% >> 128157989 - 64769127 / 647691.27 -98% >> >> SimpleStackBasedCogit: [Compiler recompileAll] timeToRun 47013 (no >> transcript >> StackToRegisterMappingCogit: [Compiler recompileAll] timeToRun 43406 (no >> transcript) >> 43406 - 47013 / 470.13 -7.67234594686576 >> >> The status of this code is essentially beta. The test suite runs the same >> on the new code generator as on the old, but I think there are still bugs >> because I get the occasional transient error. I am therefore very >> interested in any reproducible errors you can find. >> >> The VMs (http://www.mirandabanda.org/files/Cog/VM/VM.r2334/) contain a >> few other important changes: >> >> - a bug fix to bytecode<->native pc mappng that produced incorrect results >> for methods containing blocks with ^-returns in them. One symptom is >> incorrect highlighting of the pc in the debugger, althoguh symptoms could be >> much serious. >> >> - jitting interpreted methods on backward branches. Currently any >> interpreted method that performs more than 20 backward branches will be >> considered for JIT compilation and if it is suitable (default, <= 60 >> literals) will be compiled to native code. >> >> - new callback support. I need to commit some changes to the Alien >> package to provide access to this but essentially the VM's callback support >> is now able to be ported to architectures with register-based calling >> conventions (ARM, PowerPC, SPARC etc). I'll try and get the Alien code >> released soon, and to back-port the changes to the standard VM before the >> end of the holiday. >> >> One thing that is still /not/ fixed is the lack of a SoundPlugin on win32. >> Apologies. I'll try and get a fix for this before the end of the holidays >> too, but time might be too tight. There are other priorities such as >> harmonising the standard and Cog VMs for the 4.2 release. >> >> best >> Eliot >> >> >
