Hi David,
It appears that bytevec is already compiled into the Poplog base image, which presumably post-dates popvision. I have tracked the declaration down to $popsrc/initvec.p, where it is consistent with the definition in $popvision/lib/newbytearray.p i.e. both are:
I think the preferred fix is to adopt the definitions in $popsrc/intvec.p. This involves 3 changes: 1. Modify $popvision/lib/newbytearray.p to remove the definition of bytevec. 2. Modify $popvision/lib/array_random.p to remove the definition of ushortvec, which is also built-into Poplog. 3. Modify $popvision/lib/arraylookup.p to rename isbytevec to (say) isbytevecclass. This is evidently is a long-standing infelicity in the code in which the definition for isbytevec that is introduced in newbytearray.p is locally and probably inadvertently overridden. I also found it was necessary to recompile the *.o files on my system. There are some scripts supplied for this. The important thing to remember is that the scripts should be run in $popvision/lib e.g.
(These scripts could do with a bit of a general tidy-up and integration.) I attach a zip file of my suggested changes that should be unpacked in $popvision/lib. Steve |
<<attachment: popvision.zip>>
