Hi Eliot,
Thanks for the new version!

And here's the first bug report, reproducible :)

http://dl.dropbox.com/u/17707726/image.tar.xz
Using this image (pharo 1.1.1 from Lukas' hudson with omnibrowser &
friends & seaside loaded, pharov10.sources) - opening the settings
from the world menu crashes the VM. The output is named 'out1' in the
same archive.

Regards,
Stanislav Paskalev



On Fri, Dec 31, 2010 at 4:02 AM, 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
>
>

Reply via email to