> On Sep 10, 2017, at 08:32, RW via Scons-dev <[email protected]> wrote: > > Okay so changing > pickle.loads(p) > to > pickle.loads(p, encoding='bytes') > > seems like a partial fix
Ok. That would be desirable. > if there's a .sconsign.dblite file saved in python 2 with pickle protocol 2 > python 3 won't crash now, instead it'll just rebuild the sources / ignore the > current state > I think that’s a reasonable short term fix. > going the opposite way from python 3 to python 2 gives me the error > scons: *** [mkdocs.yml] ValueError : unsupported pickle protocol: 4 > > I suppose you could force it to always use pickle protocol 2 (not sure how to > do that) > the end result would be that it would always rebuild when going from py2 -> > py3 or py3 -> py2 > so it wouldn't crash but ignore the build state (perhaps the file hashes are > calculated differently?) > How about protocol 2 is used for SCons 3.0 to allow a workable transition, but then say that in the release in 6 months or a year’s time py3 will start using 4? It might be worth having a quick look at the hashing to work out why the rebuilds happen. > pickle protocol 4 might be a lot quicker than pickle protocol 2 btw I'm not > sure Can this be benchmarked? — Tim Jenness _______________________________________________ Scons-dev mailing list [email protected] https://pairlist2.pair.net/mailman/listinfo/scons-dev
