[Vm-dev] new Cog VMs

Eliot Miranda eliot.miranda at gmail.com
Fri Dec 31 19:32:07 UTC 2010


Hi Stanislav,

    what OS do you run the test on?

TIA
Eliot

On Fri, Dec 31, 2010 at 12:35 AM, Stanislav Paskalev <kshorg at gmail.com>wrote:

>
> 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 <eliot.miranda at gmail.com>
> 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
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101231/112760d0/attachment.htm


More information about the Vm-dev mailing list