There have been a number of updates in the pipeline that were held off until 5.8.1 was released. I've merged a few into master and there are some more that will come in in due course.

Statistics: The statistics have been revisited, particularly the shared statistics. The statistics now include information about garbage-collections and other operations that cause the ML environment to be suspended. Obviously this is only useful if the statistics are being read by another process but the idea is that it would be possible to provide information to a user about why the ML environment is not responding. On Unix Poly/ML only creates the shared memory file for the statistics if --exportstats is given. The file is now created in the directory given in the $POLYSTATSDIR environment variable if that is present, falling back to $HOME/.polyml otherwise. When looking for remote statistics $POLYSTATSDIR is checked first followed by $HOME/.polyml.

Secure OSs: There is now support for OpenBSD and SELinux in enforcing mode. There was a problem with these operating systems because they forbid the creation of memory areas with both execute and write permissions. In order to create and garbage collect ML code the RTS needs to be able to write to the code areas and it also needs to be executed. The work-around is to use memory mapped files and create two separate regions mapped to the same file. This is only done if the usual memory allocation with read-write-execute permission fails. I wanted to get this working because I was concerned that at some point more main-stream operating systems, such as Mac OS, might introduce a similar restriction. Note that there is still an issue with text-relocations but this can be got round using either "chcon -t textrel_shlib_t poly" on SELinux or LDFLAGS='-Wl,-z,notext' on OpenBSD.

David

_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to