Bug Reports If you find a bug, please report it to mira-bugs at the domain miranda.org.uk First check the list below, however, in case it is already known. Also check the downloads section of the website to see if there is a new version of Miranda in which your bug may be fixed. When sending a bug report, please state the version number of your Miranda system and the platform that it is running on. Send your report in plain text - no html, no attachments please. Bug reports are valued but will not always receive an individual reply. Suggestions for improvements to the Miranda language or system are also welcome. Note on error messages:- The error messages from the Miranda system are mostly self explanatory. Note however that any message of the form "impossible event ..." indicates that an unexpected internal error has occurred. Messages of this form should always be reported as bugs. Any segmentation faults or core dumps should also be reported, as these too should not occur. List of known bugs, deficiencies, and unimplemented features If there is not enough heap to compile the current script, mira exits after reporting this fact. The fix is to increase the heap size: mira -heap N [filename] where N is a bigger number than you had before. There ought to be a directive which can be placed in a script to suppress or modify the automatic inclusion of the standard environment. It is not currently permitted to give a type specification for an identifier defined locally, as part of a where clause. That is (see formal syntax) `spec' is not allowed after where. When abstract objects are tested for equality or order (under <, <= etc) the result is that obtained by applying the operation to the underlying representation type. In some cases this will be what you want, but in others it will be wrong - there ought to be a way of controlling this. The standard input cannot be accessed both as a list of characters (with $-) and as a list of values (with $+) at the same time. If $+ is in use, an occurrence of $- will evaluate to [], and vice versa. This is not referentially transparent - uses of $+ and $- ought to share data. Scripts with multiple occurrences of $+ also behave opaquely - each occurrence of $+ reads from the terminal independently, and they do not share data with each other. (Multiple occurrences of $+ in a single command-level expression behave transparently, however.) There is a subtle issue concerning `show' and %export. If you define a function which, internally, uses `show' on an object of algebraic type, and then %export that function to another scope, the format used by the `show' depends on the status of the algebraic type in the NEW scope. Thus if the type has been aliased the new constructor names will be used, and if the algebraic type is no longer in scope, it will show as "<unprintable>" (this latter case can arise if an abstract type based on the algebraic type is exported, and one of the signature identifiers invokes `show' on the base type). Although this behaviour is defensible, it might be better for each use of `show' at algebraic type to be frozen to use the constructor names in the scope where it occurs. [An analogous issue arises with `readvals'.] Implementation restrictions not mentioned elsewhere in the manual:- A shell command called from mira using `!' is limited to 1024 characters in length after any implied expansions (eg of `%') have been performed. The same restriction applies to the result of expanding out a `/e' command. The pathnames of Miranda scripts are limited to 200 characters in length, including the `.m' extension. The name of the editor supplied for the `/e' command, and the absolute pathnames of the miralib directory, and of the user's home directory, are also each limited to 200 characters in length. The name of a Miranda script may not contain spaces (but directory names with spaces are allowed in pathnames).