<div><br></div><div>Hi,<br></div><div><br></div><div>Something to remember about git bisect is that it's a binary search.<br></div><div><br></div><div>You give it a working version, I chose one from 31 May 2019, and a broken one, current, and it does the binary search where it makes a checkout the current one, and, you build and test.  Then you say that it's good or bad.<br></div><div><br></div><div>But......  And this is very important.  You have to say that a version is bad if it does not produce a working binary.  The assumption is that there is one broken commit, and, therefore a binary search will work.<br></div><div><br></div><div>It assumes that the problem is below, with Y means good and N means bad.<br></div><div><br></div><div>YYYYYYYYYYYYYYYYNNNNNNNNN<br></div><div><br></div><div>It will find the transition between Y and N correctly.</div><div><br></div><div>If on the other hand you have something like this, again with Y is good and N is bad:<br></div><div><br></div><div>YYYYYYYYYYYYYNNNNNNNNNNYYNNN<br></div><div><br></div><div>It will find likely find the first transition of Y to N, not the second which is the one you want to find.  It would depend totally on which start point one chooses.<br></div><div><br></div><div>I can rerun bisect with a different start and see what happens.  Since I'm Day Drinking, sorry, working from home, I can setup the build system next to my work computer and run it that way.<br></div><div><br></div><div>cheers<br></div><div><br></div><div>bruce<br></div><div><br></div><div>P.S.  If you want to try this at home, I do<br></div><div><br></div><div>untar an existing checkout from sometime in march.<br></div><div>build, confirm it fails.<br></div><div><br></div><div>git bisect start<br></div><div>git bisect bad<br></div><div>git bisect good somecheckoutthatisthoughttowork<br></div><div><br></div><div>Now rerun the build and check, if it's good<br></div><div><br></div><div>git bisect good<br></div><div><br></div><div>and if bad then<br></div><div><br></div><div>git bisect bad<br></div><div><br></div><div>after a few seconds it will move you to the next version to check, and, you can rebuild again.<br></div><div><br></div><div>Repeat until either of the good/bad git bisect commands tells you which is the first bad checkout.<br></div><div><br></div><div>cheers<br></div><div><br></div><div>bruce</div><div id="editorUserSignature" style="display:none;"><br></div><div><br></div><div><br></div><div><i>16 March 2020 17:33 Levente Uzonyi <leves@caesar.elte.hu> wrote:</i><br></div><blockquote class="infmailquote"><div>(cc'd vm-dev for real)<br></div><div> <br></div><div> On Mon, 16 Mar 2020, Levente Uzonyi wrote:<br></div><div> <br></div><div> > Hi Bruce,<br></div><div> ><br></div><div> > (cc'd vm-dev list)<br></div><div> > That looks interesting.<br></div><div> > If you have a look at the output of<br></div><div> ><br></div><div> > git diff 0b4551db2e5c00f67502250d0336757ed12ab096<br></div><div> > f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e<br></div><div> ><br></div><div> > you'll see that only the type declarations of a few methods changed, and the<br></div><div> > only change is that int was rewritten to sqInt.<br></div><div> > On 32-bit platforms sqInt is int, so that commit should make no difference at<br></div><div> > all.<br></div><div> > (just saw that Nicolas had a look at this as well)<br></div><div> ><br></div><div> > Are you sure that's the first bad commit?<br></div><div> ><br></div><div> > The next commit (0f0b5324b6e41cda7f92c335d45e563d41285ccd) contains multiple<br></div><div> > arm specific changes according to its message. E.g.:<br></div><div> ><br></div><div> >> Fix old bug in ARM32 LoadEffectiveAddressMwrR<br></div><div> >> Improve the ARM32 trampoline marshalling code fractionally.<br></div><div> ><br></div><div> >> A number of small improvements to context creation as part of<br></div><div> > reversing the<br></div><div> >> order of comparison of the SPReg with anythin g else, to suit ARMv8.<br></div><div> ><br></div><div> >> Get the ARMv5 "stop" instruction (BKPT) correct.<br></div><div> ><br></div><div> > Which version of gcc did you use to compile the VM?<br></div><div> ><br></div><div> ><br></div><div> > Levente<br></div><div> ><br></div><div> > On Mon, 16 Mar 2020, Bruce O'Neel wrote:<br></div><div> ><br></div><div> >><br></div><div> >> Hi,<br></div><div> >><br></div><div> >> So since I can seem to build things on my PI, I spent last evening running<br></div><div> >> git bisects.  What that came up with was below.  The first bad commit does<br></div><div> >> seem like somewhere things could go bad with 32 vs 64 bit, and, possibly<br></div><div> >> unaligned access?  Our main test case are the x86 and the x86-64 machines<br></div><div> >> which are famous<br></div><div> >> for doing unaligned access with few complaints.  <br></div><div> >><br></div><div> >> Now<br></div><div> >> this http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html&_ga=2.65157998.1175841526.1584348406-1352071188.1515062694 claims<br></div><div> >> that as of ARMv6 unaligned access is allowed and done in hardware.  One<br></div><div> >> wonders if it is completely correctly done, and, this isn't something in<br></div><div> >> Debian/Raspberian, or the hardware, or ????<br></div><div> >><br></div><div> >> Of course, that might be a rabbit hole as well.  <br></div><div> >><br></div><div> >> cheers<br></div><div> >><br></div><div> >> bruce<br></div><div> >><br></div><div> >> /work/share/tmp/opensmalltalk-vm$ git bisect good<br></div><div> >><br></div><div> >> f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e is the first bad commit<br></div><div> >><br></div><div> >> commit f5ec3f4fa2b61af86bbc2b82a1dabe5bfafe8f4e<br></div><div> >><br></div><div> >> Author: smalltalking<br></div><div> >><br></div><div> >> Date:   Wed Jan 8 10:55:18 2020 +0000<br></div><div> >><br></div><div> >><br></div><div> >>     Fix type inconsistencies (int vs sqInt) (#464)<br></div><div> >><br></div><div> >>     <br></div><div> >><br></div><div> >>     * Fix type inconsistencies (int vs sqInt)<br></div><div> >><br></div><div> >>     <br></div><div> >><br></div><div> >>     Found by trying to compile with LTO enabled.<br></div><div> >><br></div><div> >>     The VM compiles with the updated types on linux with or without LTO<br></div><div> >> enabled (the LTO VM is not functional).<br></div><div> >><br></div><div> >>     Didn't test with the OSes but changed the declarations in their files.<br></div><div> >><br></div><div> >>     Affected functions:<br></div><div> >><br></div><div> >>     - primInIOProcessEventsFlagAddress<br></div><div> >><br></div><div> >>     - ioGatherEntropy<br></div><div> >><br></div><div> >>     - GetAttributeString<br></div><div> >><br></div><div> >>     - primitivePluginBrowserReady<br></div><div> >><br></div><div> >>     - primitivePluginDestroyRequest<br></div><div> >><br></div><div> >>     - primitivePluginRequestFileHandle<br></div><div> >><br></div><div> >>     - primitivePluginRequestState<br></div><div> >><br></div><div> >>     - primitivePluginRequestURL<br></div><div> >><br></div><div> >>     - primitivePluginRequestURLStream<br></div><div> >><br></div><div> >>     - primitivePluginPostURL<br></div><div> >><br></div><div> >>     <br></div><div> >><br></div><div> >>     * Include sqMemoryAccess.h to have sqInt defined<br></div><div> >><br></div><div> >><br></div><div> >> :040000 040000 1488890eae3ef3147710b08b2cdf07b98e57b763<br></div><div> >> d6f7b25507a86fe9c5e618ccd03088598d9bc852 M platforms<br></div><div> >><br></div><div> >> :040000 040000 97c8f9d7a00839fa93d472a8840abec8c42ff45c<br></div><div> >> 1e678e1e08e5badd258cce1a4a20d5c6243b39a8 M src<br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >> Last good commit<br></div><div> >><br></div><div> >><br></div><div> >> commit 0b4551db2e5c00f67502250d0336757ed12ab096<br></div><div> >><br></div><div> >> Merge: f219b7218 afbf9e015<br></div><div> >><br></div><div> >> Author: Fabio Niephaus <br></div><div> >><br></div><div> >> Date:   Mon Jan 6 17:08:45 2020 +0100<br></div><div> >><br></div><div> >><br></div><div> >>     Merge pull request #466 from OpenSmalltalk/dtl/build-script-patch [ci<br></div><div> >> skip]<br></div><div> >><br></div><div> >>     <br></div><div> >><br></div><div> >>     Fix image MC loading glitch in image build scripts when checking pack…<br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >> With the last good commit I have a working ARM COG vm.<br></div><div> >><br></div><div> >> Image<br></div><div> >> -----<br></div><div> >> /work/share/tmp/Squeak5.3-19431-32bit.image<br></div><div> >> Squeak5.3<br></div><div> >> latest update: #19431<br></div><div> >> Current Change Set: HomeProject<br></div><div> >> Image format 6521 (32 bit)<br></div><div> >><br></div><div> >> Virtual Machine<br></div><div> >> ---------------<br></div><div> >> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak<br></div><div> >> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives<br></div><div> >> VMMaker.oscog-eem.2597]<br></div><div> >> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516<br></div><div> >> platform sources revision VM: 202001061608<br></div><div> >> :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash:<br></div><div> >> 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm<br></div><div> >> CoInterpreter VMMaker.oscog-eem.2597 uuid:<br></div><div> >> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020<br></div><div> >> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid:<br></div><div> >> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020<br></div><div> >><br></div><div> >> To Build A Similar Virtual Machine<br></div><div> >> ----------------------------------<br></div><div> >> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the<br></div><div> >> "Clone or download" instructions, then read the top-level README.md<br></div><div> >> and HowToBuild files in the top-level build directory for your<br></div><div> >> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.<br></div><div> >><br></div><div> >><br></div><div> >> Image<br></div><div> >> -----<br></div><div> >> /work/share/tmp/Squeak6.0alpha-19511-32bit.image<br></div><div> >> Squeak6.0alpha<br></div><div> >> latest update: #19511<br></div><div> >> Current Change Set: HomeProject<br></div><div> >> Image format 6521 (32 bit)<br></div><div> >><br></div><div> >> Virtual Machine<br></div><div> >> ---------------<br></div><div> >> /work/share/tmp/opensmalltalk-vm/build.linux32ARMv6/squeak.cog.spur/build/squeak<br></div><div> >> Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives<br></div><div> >> VMMaker.oscog-eem.2597]<br></div><div> >> Unix built on Mar 16 2020 09:27:25 Compiler: 6.3.0 20170516<br></div><div> >> platform sources revision VM: 202001061608<br></div><div> >> :/work/share/tmp/opensmalltalk-vm Date: Mon Jan 6 17:08:45 2020 CommitHash:<br></div><div> >> 0b4551db2 Plugins: 202001061608 :/work/share/tmp/opensmalltalk-vm<br></div><div> >> CoInterpreter VMMaker.oscog-eem.2597 uuid:<br></div><div> >> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020<br></div><div> >> StackToRegisterMappingCogit VMMaker.oscog-eem.2597 uuid:<br></div><div> >> 7a69be2e-f0d0-4d41-9854-65432d621fed Mar 16 2020<br></div><div> >><br></div><div> >> To Build A Similar Virtual Machine<br></div><div> >> ----------------------------------<br></div><div> >> Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the<br></div><div> >> "Clone or download" instructions, then read the top-level README.md<br></div><div> >> and HowToBuild files in the top-level build directory for your<br></div><div> >> platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.<br></div><div> >><br></div><div> >> Tiny Benchmarks<br></div><div> >> ---------------<br></div><div> >> 320,000,000 bytecodes/sec; 19,000,000 sends/sec<br></div><div> >><br></div><div> >><br></div><div> >> 15 March 2020 23:39 tim Rowledge wrote:<br></div><div> >><br></div><div> >><br></div><div> >> > On 2020-03-15, at 1:11 PM, Bruce O'Neel wrote:<br></div><div> >> ><br></div><div> >> ><br></div><div> >> > Hi,<br></div><div> >> ><br></div><div> >> > It looks like<br></div><div> >> ><br></div><div> >> > sudo apt-get install libgl1-mesa-dev<br></div><div> >> ><br></div><div> >> > replaces<br></div><div> >> ><br></div><div> >> > sudo apt-get install libgl-mesa-dev<br></div><div> >><br></div><div> >> Looks like it; at least it built ok. Eventually we'll see if it works!<br></div><div> >><br></div><div> >><br></div><div> >> tim<br></div><div> >> --<br></div><div> >> tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim<br></div><div> >> Oxymorons: Act naturally<br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> >><br></div><div> ><><br></div></blockquote><div><br></div>