mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 01:13:30 +00:00
Estimated hours taken: 0.5 Update the documentation in preparation for the next release. BUGS: Remove entries for bugs that we have fixed. Point out that the bug with profiling & shared libraries on DEC Alpha is Digital's fault, not ours. LIMITATIONS: Remove the entry for a limitation that we have fixed (module qualifiers are fully implemented now, I think). Add a brief remark about limitations in type and mode inference. README: Mention man pages, README.Linux, and README.MS-Windows. Mention copyright on extras/graphics/Togl-1.2. Remove mention of copyright on runtime/timing.c. INSTALL: Fix a mistake (`mmake install_opt_library' should have been `mmake install_split_library'). Update the list of architectures for which we support gcc global registers.
106 lines
3.8 KiB
Plaintext
106 lines
3.8 KiB
Plaintext
Bug reports should be sent to mercury-bugs@cs.mu.oz.au.
|
|
If you're reporting more than one bug, please use separate emails
|
|
for each bug. Please include all the relevant information,
|
|
including which version of Mercury you're using, what operating
|
|
system you're using, and a complete source file that
|
|
demonstrates the problem. (If it's something that only shows
|
|
up in multi-module programs, send a shar archive or uuencoded
|
|
tar archive containing your source files.) Please try to ensure
|
|
that bug reports contain all the information that we need to be
|
|
able to reproduce the problem. Make sure that all bug reports are
|
|
fully self-contained.
|
|
|
|
Below is a list of the known outstanding bugs.
|
|
We'll try to record any other bugs that are discovered in 0.6
|
|
on our WWW page <http://www.cs.mu.oz.au/mercury>.
|
|
See also the LIMITATIONS file.
|
|
|
|
-----------------------------------------------------------------------------
|
|
Subject: bug report - Inf and NaN
|
|
Date: Wed, 4 Oct 1995 02:48:19 +1000 (EST)
|
|
|
|
The following module causes an "undefined variable Inf" error in the
|
|
generated C code, because 1E400 == Infinity, which gets printed as `Inf'.
|
|
|
|
:- module hello.
|
|
:- interface.
|
|
:- import_module io.
|
|
|
|
:- pred main(io__state::di, io__state::uo) is det.
|
|
|
|
:- implementation.
|
|
|
|
main -->
|
|
io__write_float(1E400),
|
|
io__write_string("\n").
|
|
|
|
-----------------------------------------------------------------------------
|
|
Subject: map__lookup failed in profiler
|
|
Date: Tue, 7 May 1996 11:58:08 +1000 (EST)
|
|
|
|
When profiling programs that have been compiled on the Alpha using
|
|
shared libraries, the profiler will abort with a "Software Error:
|
|
map__lookup failed" message. The work-around is to link with
|
|
`--static'.
|
|
|
|
This is actually due to a bug in the Alpha shared library mechanism,
|
|
which does not conform to the ANSI C standard. So we do not plan to
|
|
fix this one.
|
|
|
|
-----------------------------------------------------------------------------
|
|
Subject: nit in error msg
|
|
Date: Thu, 16 May 1996 10:25:42 +1000 (EST)
|
|
|
|
Here's another small error in an error message. If you comment out
|
|
the [] clause for the functions car/1 or cdr/1, you get this message:
|
|
|
|
fntest.m:023: In `car(in) = out':
|
|
fntest.m:023: Error: determinism declaration not satisfied.
|
|
fntest.m:023: Declared `det', inferred `semidet'.
|
|
fntest.m:023: in argument 1 of clause head:
|
|
fntest.m:023: unification of `HeadVar__1' and `[X | V_4]' can fail.
|
|
|
|
It says Declared `det', inferred `semidet', but I never declared it at
|
|
all. It's a bit misleading. Certainly not a major problem, and the
|
|
later part of the message makes it quite clear what the problem is,
|
|
but I thought I'd point it out to you before I forgot it.
|
|
|
|
-----------------------------------------------------------------------------
|
|
Subject: missed mode error
|
|
Date: Tue, 28 May 1996 02:27:34 +1000 (EST)
|
|
|
|
Another one for the bug report file:
|
|
|
|
The goal `some [X, Y] X \= Y' should be a mode error,
|
|
but the current mode checker doesn't report an error.
|
|
Instead, the compiler goes on to generate code which gives
|
|
the wrong answer. For example, the following program prints out `no'.
|
|
The same problem also occurs with `some [X, Y] (X = Y -> fail ; true)'.
|
|
|
|
:- module bug.
|
|
:- interface.
|
|
:- import_module io.
|
|
|
|
:- pred main(io__state::di, io__state::uo) is det.
|
|
|
|
:- implementation.
|
|
|
|
main -->
|
|
( { p } -> io__write_string("yes\n") ; io__write_string("no\n") ).
|
|
|
|
:- pred p is semidet.
|
|
p :-
|
|
some [X, Y] X \= Y.
|
|
|
|
The bug occurs only when the variables being unified inside a negated
|
|
context are not live, i.e. when it is the last occurrence of those variables.
|
|
|
|
-----------------------------------------------------------------------------
|
|
Subject: bug with PC values on Alpha
|
|
Date: Wed, 12 Jun 1996 15:45:59 +1000
|
|
|
|
On the alpha, if the Mercury runtime catches a signal, it
|
|
sometimes prints out the wrong value for the PC.
|
|
|
|
-----------------------------------------------------------------------------
|