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