Update the BUG submission guidlines.
This commit is contained in:
parent
26e1693b2f
commit
b9272f750d
130
BUGS.txt
130
BUGS.txt
|
|
@ -4,23 +4,24 @@ HOW TO REPORT BUGS
|
||||||
Before I can fix an error, I need to understand what the problem
|
Before I can fix an error, I need to understand what the problem
|
||||||
is. Try to explain what is wrong and why you think it is wrong. Please
|
is. Try to explain what is wrong and why you think it is wrong. Please
|
||||||
try to include sample code that demonstrates the problem. Include a
|
try to include sample code that demonstrates the problem. Include a
|
||||||
description of what ivl does that is wrong, and what you expect should
|
description of what Icarus Verilog does that is wrong, and what you
|
||||||
happen. And include the command line flags passed to the compiler to make
|
expect should happen. And include the command line flags passed to the
|
||||||
the error happen. (This is often overlooked, and sometimes important.)
|
compiler to make the error happen. (This is often overlooked, and
|
||||||
|
sometimes important.)
|
||||||
|
|
||||||
* The Compiler Doesn't Compile
|
* The Compiler Doesn't Compile
|
||||||
|
|
||||||
If the Icarus Verilog don't compile, I need to know about the
|
If Icarus Verilog doesn't compile, I need to know about the
|
||||||
compilation tools you are using. Specifically, I need to know:
|
compilation tools you are using. Specifically, I need to know:
|
||||||
|
|
||||||
- Operating system and processor type,
|
- Operating system and processor type,
|
||||||
- Compiler w/ version,
|
- Compiler w/ version,
|
||||||
- Library version, and
|
- Versions of any libraries being linked, and
|
||||||
- anything else you think relevant.
|
- anything else you think relevant.
|
||||||
|
|
||||||
Be aware that I do not have at my disposal a porting lab. I have the
|
Be aware that I do not have at my disposal a porting lab. I have the
|
||||||
alpha on my desk, and the Linux/Intel box with a logic analyzer and
|
workstation on my desk, a Mac laptop, and the Linux/Intel box with a
|
||||||
'scope hanging off it.
|
logic analyzer and 'scope hanging off it.
|
||||||
|
|
||||||
* The Compiler Crashes
|
* The Compiler Crashes
|
||||||
|
|
||||||
|
|
@ -28,26 +29,26 @@ No compiler should crash, no matter what kind of garbage is fed to
|
||||||
it. If the compiler crashes, you definitely found a bug and I need to
|
it. If the compiler crashes, you definitely found a bug and I need to
|
||||||
know about it.
|
know about it.
|
||||||
|
|
||||||
Ivl internally checks its state while it works, and if it detects
|
Icarus Verilog internally checks its state while it works, and if it
|
||||||
something wrong that it cannot recover from, it will abort
|
detects something wrong that it cannot recover from, it will abort
|
||||||
intentionally. The "assertion failure" message that the program
|
intentionally. The "assertion failure" message that the program
|
||||||
prints in the process of dying is very important. It tells me where in
|
prints in the process of dying is very important. It tells me where in
|
||||||
the source the bad thing happened. Include that message in the bug
|
the source the bad thing happened. Include that message in the bug
|
||||||
report.
|
report.
|
||||||
|
|
||||||
If there are not assertion messages, I need to know that as well.
|
If there are no assertion messages, I need to know that as well.
|
||||||
|
|
||||||
I also need a complete test program that demonstrates the crash.
|
I also need a complete test program that demonstrates the crash.
|
||||||
|
|
||||||
* It Doesn't Like My Perfectly Valid Program(tm)
|
* It Doesn't Like My Perfectly Valid Program(tm)
|
||||||
|
|
||||||
I need to know what you think is right that ivl gets wrong. Does it
|
I need to know what you think is right that Icarus Verilog gets
|
||||||
reject your "Perfectly Valid Program(tm)" or does it compile it but
|
wrong. Does it reject your "Perfectly Valid Program(tm)" or does it
|
||||||
give incorrect results? The latter is the most insidious as it doesn't
|
compile it but give incorrect results? The latter is the most
|
||||||
scream out to be fixed unless someone is watching closely. However, if
|
insidious as it doesn't scream out to be fixed unless someone is
|
||||||
I get a sample program from you, and I can compile it, and I run it
|
watching closely. However, if I get a sample program from you, and I
|
||||||
and nuclear junk doesn't fall from the sky, I'm moving on to the next
|
can compile it, and I run it and nuclear junk doesn't fall from the
|
||||||
problem.
|
sky, I'm moving on to the next problem.
|
||||||
|
|
||||||
So, if your program doesn't compile, tell me so, tell me where the
|
So, if your program doesn't compile, tell me so, tell me where the
|
||||||
error occurs, and include a complete Perfectly Valid Test Program(tm).
|
error occurs, and include a complete Perfectly Valid Test Program(tm).
|
||||||
|
|
@ -57,24 +58,25 @@ know. What's on my disk is more recent then the latest snapshot.
|
||||||
|
|
||||||
If your program does compile, but generates incorrect output, I need
|
If your program does compile, but generates incorrect output, I need
|
||||||
to know what it says and what you think it should say. From this I can
|
to know what it says and what you think it should say. From this I can
|
||||||
take your sample program and work on ivl until it gets the proper
|
take your sample program and work on Icarus Verilog until it gets the
|
||||||
results. For this to work, of course, I first need to know what is
|
proper results. For this to work, of course, I first need to know what
|
||||||
wrong with the output. Spell it out, because I've been known to miss
|
is wrong with the output. Spell it out, because I've been known to
|
||||||
the obvious. Compiler writers often get buried in the details of the
|
miss the obvious. Compiler writers often get buried in the details of
|
||||||
wrong problem.
|
the wrong problem.
|
||||||
|
|
||||||
* It Generates Incorrect Target Code (XNF, EDIF/LPM, etc.)
|
* It Generates Incorrect Target Code
|
||||||
|
|
||||||
As ivl adds target code generators, there will be cases where errors
|
As Icarus Verilog adds target code generators, there will be cases
|
||||||
in the output netlist format occur. This is a tough nut because I
|
where errors in the output netlist format occur. This is a tough nut
|
||||||
might not have all the tools to test the target format you are
|
because I might not have all the tools to test the target format you
|
||||||
reporting problems with. However, if you clearly explain what is right
|
are reporting problems with. However, if you clearly explain what is
|
||||||
and wrong about the generated netlist, I will probably be able to fix
|
right and wrong about the generated output, I will probably be able
|
||||||
the problem. It may take a few iterations.
|
to fix the problem. It may take a few iterations.
|
||||||
|
|
||||||
In this case, if possible include not only the sample Verilog program,
|
In this case, if possible include not only the sample Verilog program,
|
||||||
but the generated netlist file(s) and a clear indication of what went
|
but the generated netlist file(s) and a clear indication of what went
|
||||||
wrong. If it is not clear to me, I will ask for clarification.
|
wrong or what is expected. If it is not clear to me, I will ask for
|
||||||
|
clarification.
|
||||||
|
|
||||||
* The Output is Correct, But Less Than Ideal
|
* The Output is Correct, But Less Than Ideal
|
||||||
|
|
||||||
|
|
@ -91,13 +93,13 @@ demonstrates the problem. If the error occurs after elaboration,
|
||||||
please include a top level module in the program that is suitable for
|
please include a top level module in the program that is suitable for
|
||||||
the target format. If I have to write the module myself, I might not
|
the target format. If I have to write the module myself, I might not
|
||||||
write it in a way that tickles the bug. So please, send all the
|
write it in a way that tickles the bug. So please, send all the
|
||||||
Verilog source (after preprocessing) that I need to invoke the error.
|
Verilog source that I need to invoke the error.
|
||||||
|
|
||||||
Also, include the command line you use to invoke the compiler. For
|
Also, include the command line you use to invoke the compiler. For
|
||||||
example:
|
example:
|
||||||
|
|
||||||
ivl foo.vl -o foo.cc -tvvm
|
iverilog -o foo.out -tvvp foo.v
|
||||||
ivl foo.vl -s starthere
|
iverilog foo.vl -s starthere
|
||||||
|
|
||||||
If the error occurs with the null target (``-tnull'') then a top level
|
If the error occurs with the null target (``-tnull'') then a top level
|
||||||
module may not be needed as long as the ``-s <name>'' switch is
|
module may not be needed as long as the ``-s <name>'' switch is
|
||||||
|
|
@ -108,15 +110,19 @@ invoke the error without any Verilog other than what is included?" And
|
||||||
while we are at it, please place a copyright notice in your test
|
while we are at it, please place a copyright notice in your test
|
||||||
program and include a GPL license statement if you can. Your test
|
program and include a GPL license statement if you can. Your test
|
||||||
program may find its way into the test suite, and the notices will
|
program may find its way into the test suite, and the notices will
|
||||||
make it all nice and legal.
|
make it all nice and legal. Please look at the existing tests in the
|
||||||
|
test suite <http://sourceforge.net/ivtest> for examples of good test
|
||||||
|
programs.
|
||||||
|
|
||||||
RESEARCHING EXISTING/PAST BUGS, AND FILING REPORTS
|
RESEARCHING EXISTING/PAST BUGS, AND FILING REPORTS
|
||||||
|
|
||||||
The URL <http://www.icarus.com/cgi-bin/ivl-bugs> is the main bug
|
The URL <http://sourceforge.net/tracker/?group_id=149850> is the main
|
||||||
tracking system. Once you believe you have found a bug, you may browse
|
bug tracking system. Once you believe you have found a bug, you may
|
||||||
the bugs database for existing bugs that may be related to yours. You
|
browse the bugs database for existing bugs that may be related to
|
||||||
might find that your bug has already been fixed in a later release or
|
yours. You might find that your bug has already been fixed in a later
|
||||||
snapshot. If that's the case, then you are set.
|
release or snapshot. If that's the case, then you are set. Also,
|
||||||
|
consider if you are reporting a bug or really asking for a new
|
||||||
|
feature, and use the appropriate tracker.
|
||||||
|
|
||||||
The bug database supports basic keyword searches, and you can
|
The bug database supports basic keyword searches, and you can
|
||||||
optionally limit your search to active bugs, or fixed bugs. You may
|
optionally limit your search to active bugs, or fixed bugs. You may
|
||||||
|
|
@ -125,8 +131,7 @@ broken. You may for example find a related bug that explains your
|
||||||
symptom.
|
symptom.
|
||||||
|
|
||||||
The root page of the bug report database describes how to submit your
|
The root page of the bug report database describes how to submit your
|
||||||
completed bug report. You may submit it via the web form, or via
|
completed bug report.
|
||||||
e-mail.
|
|
||||||
|
|
||||||
HOW TO SEND PATCHES
|
HOW TO SEND PATCHES
|
||||||
|
|
||||||
|
|
@ -134,21 +139,26 @@ Bug reports with patches are very welcome, especially if they are
|
||||||
formatted such that I can inspect them, decide that they are obviously
|
formatted such that I can inspect them, decide that they are obviously
|
||||||
correct, and apply them without worry.
|
correct, and apply them without worry.
|
||||||
|
|
||||||
I prefer context diffs as emitted by diff from GNU diffutils. Human
|
I prefer patches generated by the git source code tracking system. If
|
||||||
beings can read such things, and they are resilient to changing
|
you are editing the source, you really should be using the latest
|
||||||
originals. A good set of flags to diff are ``diff -cNB''. With such
|
version from git. Please see the developer documentation for more
|
||||||
diffs, I can look at the changes you are offering and probably tell at
|
detailed instructions -- <http://iverilog.wikia.com/wiki/>.
|
||||||
a glance that they are plausible. Then I can use patch(1) to apply
|
|
||||||
them. Or I can apply them by hand.
|
|
||||||
|
|
||||||
However, if you send patches, *please* tell me what this patch is
|
When you make a patch, submit it to the "Patches" tracker at
|
||||||
supposed to accomplish, and if appropriate include a test program that
|
<http://sourceforge.net/tracker/?group_id=149850>. Patches added to
|
||||||
demonstrates the efficacy of the patch. (If I have no idea what the
|
the "Patches" tracker enter the developer workflow, are checked,
|
||||||
patch is for, I will ask for clarification before applying it.)
|
applied to the appropriate git branch, and are pushed. Then the
|
||||||
|
tracker item is closed.
|
||||||
|
|
||||||
|
If you send patches, *please* tell me what this patch is supposed to
|
||||||
|
accomplish, which branch you intended to be patched, and if
|
||||||
|
appropriate include a test program that demonstrates the efficacy of
|
||||||
|
the patch. (If I have no idea what the patch is for, I will ask for
|
||||||
|
clarification before applying it.)
|
||||||
|
|
||||||
COPYRIGHT ISSUES
|
COPYRIGHT ISSUES
|
||||||
|
|
||||||
Icarus Verilog is Copyright (c) 1998-2003 Stephen Williams except
|
Icarus Verilog is Copyright (c) 1998-2008 Stephen Williams except
|
||||||
where otherwise noted. Minor patches are covered as derivative works
|
where otherwise noted. Minor patches are covered as derivative works
|
||||||
(or editorial comment or whatever the appropriate legal term is) and
|
(or editorial comment or whatever the appropriate legal term is) and
|
||||||
folded into the rest of ivl. However, if a submission can reasonably
|
folded into the rest of ivl. However, if a submission can reasonably
|
||||||
|
|
@ -158,19 +168,3 @@ then falls under the "otherwise noted" category.
|
||||||
|
|
||||||
I must insist that any copyright material submitted for inclusion
|
I must insist that any copyright material submitted for inclusion
|
||||||
include the GPL license notice as shown in the rest of the source.
|
include the GPL license notice as shown in the rest of the source.
|
||||||
|
|
||||||
|
|
||||||
$Id: BUGS.txt,v 1.5 2007/03/22 16:08:14 steve Exp $
|
|
||||||
$Log: BUGS.txt,v $
|
|
||||||
Revision 1.5 2007/03/22 16:08:14 steve
|
|
||||||
Spelling fixes from Larry
|
|
||||||
|
|
||||||
Revision 1.4 2003/02/19 04:36:31 steve
|
|
||||||
Notes on hte bug database.
|
|
||||||
|
|
||||||
Revision 1.3 2003/01/30 16:23:07 steve
|
|
||||||
Spelling fixes.
|
|
||||||
|
|
||||||
Revision 1.2 1999/08/06 04:05:28 steve
|
|
||||||
Handle scope of parameters.
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue