Hi,
I finally got around to enabling automatic nightly benchmarking for
all branches for both opensmalltalk-vm and rsqueak. Before I had to
manually trigger benchmarks for opensmalltalk-vm. Now a nightly cron
job checks for new passed builds on all branches and then tries to run
benchmarks for the resulting binaries. Note, however, that we're only
uploading binaries for the master and Cog branch right now on
opensmalltalk-vm, so all other branches are schedules but then
skipped, because no binaries are available.
The benchmarking machine is still running at this point, a full set of
benchmarks takes about 4-5 hours per binary. So I expect the results
for yesterdays VMs to come in this afternoon GMT+1. Not all of the
benchmarks are well scaled right now, so that might need some
tweaking, but since there has been talk about various performance
optimizations recently, I figured we should be more vigilant in
tracking the results of that. For example, Clement mentioned recent
optimizations that should have results in binarytrees. It's nice if we
can see that in the timeline.
This page in particular may be interesting to check once in a while:
http://speed.squeak.org/timeline/#/?exe=1,5&ben=grid&env=2&revs=50&equid=on
If anyone wants to take a look at the code and benchmarks, the about
page links to all relevant repositories. I'm happy to give people
access so they can add or change or remove benchmarks.
cheers,
Tim
I noticed with interest that there is a new pharo.cog.spur directory. So
just reporting on 32bit Debian Jessie running...
.../build.linux32x86/pharo.cog.spur/build.debug/mvm
produces a VM that opens Pharo build 60257 with TestRunner results...
12515 run, 12448 passes, 20 skipped, 59 expected failures, 6 failures, 2
errors, 0 unexpected passes
I made one change to download PharoV50.sources if they can't be found in
the expected location.
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/79
cheers -ben
>
> In 1957 Wham-O Company produces the first Frisbee, [snip], and the Soviet Union launches Sputnik 1, the first artificial satellite to orbit the earth.
Coincidence? I don’t think so….
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: BIK: Buggered if I Know
Hi All!
I'm working on the Android VM. (https://github.com/sbragagnolo/pharo-vm)
So far I made my way on my own(I have a working compilation of the stack
vm for android functional, but without uffi and quite slow ). But now i
have a problem that I don't understand at all, i would like if someone can
point me a clue :).
Im working on the VM+Jit for android. The device i'am using to test is a
wiko pulp 4g[1], processor Quad-core 1.2 GHz Cortex-A53 with support for
32bits/64bits instructions [2]
I am compiling the VM with the following maker options:
*maker options: #(*
* ObjectMemory Spur32BitCoMemoryManager*
* FailImbalancedPrimitives false*
* CogCompilerClass CogOutOfLineLiteralsARMCompiler*
* ISA ARMv5).*
After some manual post processing (related to an other question that i will
do in other thread), I arrive to compile and deploy the application in to
my device.
But when I open the application I am having the following assertion failure
( defined in sqCogStackAlignment.h ),
*assert((getfp() & STACK_ALIGN_MASK) == STACK_FP_ALIGNMENT);*
and failing in the second call for the assertion, on the generated
function *generateStackPointerCapture* on the generated file *cogitARMv5.c*,
based on the method *Cogit>>#generateStackPointerCapture, *and not
finishing the process, but just failing many other times in the same
assertion (not sure if on the same function)
*=====================*
static void generateStackPointerCapture(void) {
sqInt oldMethodZoneBase;
sqInt oldTrampolineTableIndex;
/* For the benefit of the following assert, assume the minimum at first. */
cFramePointerInUse = 0;
assertCStackWellAligned();
oldMethodZoneBase = methodZoneBase;
oldTrampolineTableIndex = trampolineTableIndex;
generateCaptureCStackPointers(1);
ceCaptureCStackPointers();
if (!((cFramePointerInUse = isCFramePointerInUse()))) {
methodZoneBase = oldMethodZoneBase;
trampolineTableIndex = oldTrampolineTableIndex;
generateCaptureCStackPointers(0);
}
assertCStackWellAligned(); *// it fails Here*
}
*======================*
Here I'm lacking understanding, and even when after some painful time I
arrived to be able to debug on my device when I leave the debugger just to
run and randomly interrupt the process to know where is failing constantly
(i'm almost sure that is an infinite loop, because of the standard output)
It just die, or it stops without showing code, since is the code stored on
the assembly files.
I have two obvious questions:
1) does the prepareVmMaker method that I defined makes sense?
2) any body can give me a hint about how to debug better this problem?
And finally, does any body have a hint in general about what can it be?
[1] http://www.gsmarena.com/wiko_pulp_4g-7811.php
[2] http://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php