Hi David,

On 26 Jun 2021, at 14:59, [email protected] wrote:

I can compile as directed for 64 bit - so far so good, but when I use mkpopvision to build the package I get the following mishap:-


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:

defclass bytevec :byte;

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.

cd $popvision/lib
../lib/compile_popvision_gcc

(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>>

Reply via email to