I've been away for the last week or so since releasing version 5.2 and there have been a few emails about various issues. Rather than deal with each individually I'm responding to all of them together.
I have installed polyml 5.2 (sources) under MacOSX 10.4.* and 10.5.*. Both times I had to manually change in the "make install"-step the attribute of the file install-sh to 755. Otherwise the make process would refuse to finish with permission denied message. Maybe I have been stupid, but it could also be a bug.
The version of install-sh in the CVS repository on sourceforge does not have execute permission and I don't believe it's possible to add it to an existing file. I exported from the repository and forgot to set it explicitly before creating the tar file for the version 5.2 release. It only seems to be a problem on certain platforms. I don't generally like changing a distribution once it has been uploaded but I think the easiest way would be for me to upload a new tar file with execute permissions set on install-sh.
The PolyML.get_print_depth function appears to be missing from 5.2. Should I rework my code to do without it or was this an unintentional omission?
The PolyML structure has been reworked and in particular PolyML.Compiler has changed. In the old persistent storage version (PolyML 4 and earlier) the print depth and similar values were special kinds of references. From version 5 these are just simple references. The reference set by PolyML.print_depth is now in PolyML.Compiler.printDepth so you can define get_print_depth as ! PolyML.Compiler.printDepth. This is used if the compiler is invoked by means of the usual top-level or with "use" but if PolyML.compiler is called with a value passed in with PolyML.Compiler.CPPrintDepth then this is used in place of the reference.
Has there been a change to the semantics of the function Unix.execute?
Previously, it executed the programme with respect to the current path. Now, it seems to require an absolute pathname.
There were some changes to Unix.execute and while I was doing it I took a closer look at the Basis Library document. This says that the "cmd" argument should name an executable file. Previously the code used "/bin/sh -c" to run the command. It's easy to add this in the call if you want it to search the path.
David.