Skip to content
Markus Triska edited this page Jan 18, 2017 · 10 revisions

The re-licencing of SWI-Prolog to the simplified BSD license is almost completed. Disputed copyrightable contributions have been replaced or removed and the main COPYING files and messages have been updated. That implies we can make a roadmap for 7.4.0. As more people are involved with the development of core functionality and -thanks to Keri Harris- we now plan to actively maintain the stable version with pure stability and security patches we need to plan this a bit more careful than I was used to.

I have the following issues on the roadmap to 7.4.x:

  • Layout changes
    • #186 Change indentation of all Prolog files to 4 and use spaces. This following the style recommendations. DONE
    • #186 Move cut to a separate line? DONE
    • #187 Change indentation style of the C code. [JW: After discussion with Keri I have decided to abandon this idea. Changes are as likely to make people unhappy as they are to make people happy, while such reformatting will break git diff and git blame even if -b/-w are used. I have added scripts/indent.sh that reformats C code to SWI-Prolog's conventions based on clang-format. ]
  • SSL is in flux. Can we find a good 'freeze' point?

MT: I consider the current state (plus fixes for any issues that are found in the remaining time) an excellent basis for a stable release. The current version includes dozens of corrections (to timeouts, garbage collection, socket handling, examples and documentation), new features (forward secrecy, SNI, truncation attack mitigation, multiple certificates, optional certificates, new hooks that allow hot swapping certificates, new inspection predicates for certificate verification) and compiles also with OpenSSL 1.1.0, enabling new ciphers and curves for better security, including ChaCha20-Poly1305 and X25519. The new library(crypto) subsumes all existing hash libraries with a uniform interface, and contains further predicates related to authentication and encryption.

  • #188 The atomic clause reload scheme poses problems for particular term-expansion techniques. Can/must we fix this before 7.4.0? How?
  • #48 Use atom-GC style tables for RDF (performance, less memory overhead, way simpler and thus more reliable) JW More complicated than expected. Not for 7.4.0.

Of course, there is a lot more we all want. Most should move to the new 7.5.x development line. Some ideas:

  • Project local package installation
  • Mode-directed tabling
  • Stability and leak issues that still affect SWISH
  • Consider Cmake for native building on MacOS, Windows, Android, etc.
  • Allow for true cross-compiled version.
  • Proper last-call optimization
Clone this wiki locally