At times I feel more like I’m exhuming it than reviving it. Among other problems, it appears that name/2, deprecated but still supported, is not longer as forgiving. Apparently at one time, SWI Prolog name/2 could manage this
doing all the list flattening, numeric ASCII code conversion and string-handling without breaking a sweat. Now it just wants a list of characters. I’ve substituted a wrapper, xName/2, to perform the predigestion name/2 apparently used to do. It can handle some cases already, but I’m not done yet. It doesn’t help that my skills with Prolog (never stellar) are now very rusty.
I suspect this isn’t the only change in SWI Prolog I’ll need to accommodate in order to get NSM DALIA up to date. Is there a list of what’s changed over the last decade?
Finally getting back to this … Putting set_prolog_flag/2 at the beginning of the file(s) yielded a lot of very confusing error messages. Then I noticed that “module/2” needs to be first, and I added the set_prolog_flag/2 call just after any module/2 calls. This got me out of SWI-Prolog 6.6.6 and to 7.2.0. It’s perhaps unsatisfying as a permanent fix, of course. I agree with the reasoning here: