The Mercury Project
Limitations of the current release

[Mercury Logo]
Home

News

Information

Documentation

Mailing Lists

Back-ends

Download
  Current Release
  Snapshot
  Old Releases

Related

Contact

Search

Bug Database

Implementation Limitations

The current implementation does not yet completely implement the Mercury language. The main limitations of the current implementation are the following:
  • We do not allow definite aliasing in the mode system. Without this, partially instantiated modes are unusable, and so are nested unique modes.
  • The compiler does not yet use structure reuse or compile-time garbage collection to exploit unique modes.
  • Type and mode inference are a bit imperfect.
In addition, design decisions in this implemenation have imposed the following limits:
  • Predicates and functions can have at most about 1000 arguments.
  • Higher-order terms can have at most about 500 arguments.
These limits can be lifted (with some effort), but would possibly incur performance penalties. Contact the Mercury team (mercury@csse.unimelb.edu.au) if you find these limits are affecting your application.