comparison bugs.md @ 94:e8fc61e077fc

Merged closed branch "kai" into default.
author Kai T. Ohlhus <k.ohlhus@gmail.com>
date Tue, 01 Nov 2016 01:06:10 +0100
parents 7609e2a6faef
children 25149c27c794
comparison
equal deleted inserted replaced
92:7609e2a6faef 94:e8fc61e077fc
1 --- 1 ---
2 layout: page 2 layout: page
3 title: Bugs 3 title: Bugs
4 permalink: /bugs/ 4 menu: true
5 --- 5 ---
6
7 GNU Octave uses the bug tracker at [Savannah][1].
8 There you can [report a new bug][2], [browse recent bugs][1],
9 or [search for bugs][3].
10
11 [1]: {{ site.bugs_url }}
12 [2]: {{ site.bugs_url }}&func=additem
13 [3]: {{ site.bugs_url }}&func=search
14
15 <p>
16 <div class="alert">
17 {% octicon stop class:"octicon-stop-octave" %}
18 Please do <strong>not</strong> send any bug reports to the
19 <samp>{{ site.help_email }}</samp> mailing list.
20 Most Octave users do not want to receive bug reports.
21 </div>
22 </p>
23
24 <p>
25 <div class="alert">
26 {% octicon stop class:"octicon-stop-octave" %}
27 <strong>Before</strong> reporting a new bug, please read the guidelines below.
28 </div>
29 </p>
6 30
7 31
8 32
9 <ul class="button-group"> 33 # Is the bug already known?
10 <li><a href="http://savannah.gnu.org/bugs/?func=additem&group=octave" class="button">Report</a></li>
11 <li><a href="http://savannah.gnu.org/bugs/?func=search&group=octave" class="button">Search</a></li>
12 <li><a href="http://savannah.gnu.org/bugs/?group=octave" class="button">Browse</a></li>
13 </ul>
14 34
15 Your bug reports play an essential role in making Octave reliable. You can make fixing problems easier by following the guidelines below. 35 When you encounter a problem,
36 the first thing to do is to see if it is already known.
37 Therefore,
16 38
17 ### Where and How to Send Bug Reports 39 - [search for already reported bugs at the bug tracker][3],
18 40
19 To report a bug in Octave, [submit](http://savannah.gnu.org/bugs/?func=additem&group=octave) a bug report using the [bug tracker](http://savannah.gnu.org/bugs/?group=octave). 41 - look at the [list of known causes of trouble][4] in the Octave manual.
20 42
21 <div class="panel"> 43 If you your problem does not appear to be known,
22 Please do not send bug reports to the help-octave mailing list. Most users of Octave do not want to receive bug reports. 44 then you should report the problem.
23 </div>
24 45
25 When you encounter a problem, the first thing to do is to see if it is already known. The best place to look for reported problems is the Octave [bug tracker](http://savannah.gnu.org/bugs/?group=octave). 46 Reporting a bug may help you by bringing a solution to your problem,
47 or it may not. In any case, the principal function of a bug report is
48 to help the entire community by making the next version of Octave work
49 better, so you can contribute to the maintenance of Octave.
26 50
27 The Octave reference manual also contains a list of [known causes of trouble](http://www.gnu.org/software/octave/doc/interpreter/Trouble.html#Trouble). 51 [4]: {{ site.docs_url }}/Trouble.html#Trouble
28 52
29 If you your problem does not appear to be known, then you should report the problem.
30 53
31 Reporting a bug may help you by bringing a solution to your problem, or it may not. In any case, the principal function of a bug report is to help the entire community by making the next version of Octave work better, so you can contribute to the maintenance of Octave.
32 54
33 ### Have You Found a Bug? 55 # Is it really a bug?
34 56
35 If you are not sure whether you have found a bug, here are some guidelines: 57 If you are not sure whether you have found a bug, here are some guidelines:
36 58
37 - If Octave gets a fatal signal, for any input whatever, that is a bug. Reliable interpreters never crash. 59 - If Octave gets a fatal signal, for any input whatever, that is a bug.
60 Reliable interpreters never crash.
61
38 - If Octave produces incorrect results, for any input whatever, that is a bug. 62 - If Octave produces incorrect results, for any input whatever, that is a bug.
39 - Some output may appear to be incorrect when it is in fact due to a program whose behavior is undefined, which happened by chance to give the desired results on another system. For example, trigonometric functions may produce different results because of differences in the math library or the way floating point arithmetic is handled on various systems. 63
64 - Some output may appear to be incorrect when it is in fact due to a
65 program whose behavior is undefined, which happened by chance to give
66 the desired results on another system. For example, trigonometric
67 functions may produce different results because of differences in the
68 math library or the way floating point arithmetic is handled on various
69 systems.
70
40 - If Octave produces an error message for valid input, that is a bug. 71 - If Octave produces an error message for valid input, that is a bug.
41 - If Octave does not produce an error message for invalid input, that is a bug. However, you should note that your idea of "invalid input" might be my idea of "an extension" or "support for traditional practice".
42 - If you are an experienced user of programs like Octave, your suggestions for improvement are welcome in any case.
43 72
44 ### Making Your Bug Report Count 73 - If Octave does not produce an error message for invalid input, that is
74 a bug. However, you should note that your idea of "invalid input"
75 might be my idea of "an extension" or "support for traditional practice".
45 76
46 In order for a bug report to serve its purpose, you must include the information that makes it possible to fix the bug. 77 - If you are an experienced user of programs like Octave, your
78 suggestions for improvement are welcome in any case.
47 79
48 The fundamental principle of reporting bugs usefully is this: **report all the facts**. If you are not sure whether to state a fact or leave it out, state it.
49 80
50 Often people omit facts because they think they know what causes the problem and they conclude that some details don't matter. Thus, you might assume that the name of the variable you use in an example does not matter. Well, probably it doesn't, but one cannot be sure. Perhaps the bug is a stray memory reference which happens to fetch from the location where that name is stored in memory; perhaps, if the name were different, the contents of that location would fool the interpreter into doing the right thing despite the bug. Play it safe and give a specific, complete example.
51 81
52 Keep in mind that the purpose of a bug report is to enable someone to fix the bug if it is not known. Always write your bug reports on the assumption that the bug is not known. 82 # Make your bug report count
53 83
54 Sometimes people give a few sketchy facts and ask, "Does this ring a bell?" This cannot help us fix a bug. It is better to send a complete bug report to begin with. 84 In order for a bug report to serve its purpose, you must include the
85 information that makes it possible to fix the bug.
55 86
56 Try to make your bug report self-contained. If we have to ask you for more information, it is best if you include all the previous information in your response, as well as the information that was missing. 87 The fundamental principle of reporting bugs usefully is this:
88 **report all the facts**. If you are not sure whether to
89 state a fact or leave it out, state it.
57 90
58 The bug tracker will prompt you for some basic information like the version of Octave and the operating system you are using. You also need to include the following to enable someone to investigate the bug: 91 Often people omit facts because they think they know what causes the
92 problem and they conclude that some details don't matter. Thus, you
93 might assume that the name of the variable you use in an example does
94 not matter. Well, probably it doesn't, but one cannot be sure.
95 Perhaps the bug is a stray memory reference which happens to fetch
96 from the location where that name is stored in memory; perhaps, if the
97 name were different, the contents of that location would fool the
98 interpreter into doing the right thing despite the bug. Play it safe
99 and give a specific, complete example.
59 100
60 - A complete input file that will reproduce the bug. A single statement may not be enough of an example--the bug might depend on other details that are missing from the single statement where the error finally occurs. 101 Keep in mind that the purpose of a bug report is to enable someone to
61 - The command arguments you gave Octave to execute that example and observe the bug. To guarantee you won't omit something important, list all the options. If we were to try to guess the arguments, we would probably guess wrong and then we would not encounter the bug. 102 fix the bug if it is not known. Always write your bug reports on
62 - A description of what behavior you observe that you believe is incorrect. For example, "The interpreter gets a fatal signal," or, "The output produced at line 208 is incorrect." 103 the assumption that the bug is not known.
63 - The output you expected to see. Although it might seem obvious to you, someone examining the problem might not know what result you consider correct.
64 - If you wish to suggest changes to the Octave source, send them as context diffs. If you discuss something in the Octave source, refer to it by context, not by line number, because the line numbers in the development sources probably won't match those in your sources.
65 104
66 ### Sending Patches for Octave 105 Sometimes people give a few sketchy facts and ask, "Does this ring a
106 bell?" This cannot help us fix a bug. It is better to send a complete
107 bug report to begin with.
67 108
68 If you have a suggested fix for a bug, please attach it to your report in the tracker. Your patch is more likely to be reviewed if you follow the guidelines in the Octave manual about to [generate a changeset](http://www.gnu.org/software/octave/doc/interpreter/Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset) and submit patches for Octave. 109 Try to make your bug report self-contained. If we have to ask you for
110 more information, it is best if you include all the previous information
111 in your response, as well as the information that was missing.
69 112
113 The bug tracker will prompt you for some basic information like
114 the version of Octave and the operating system you are using. You
115 also need to include the following to enable someone to
116 investigate the bug:
117
118 - A complete input file that will reproduce the bug.
119
120 A single statement may not be enough of an example--the bug might
121 depend on other details that are missing from the single statement where
122 the error finally occurs.
123
124 - The command arguments you gave Octave to execute that example
125 and observe the bug. To guarantee you won't omit something important,
126 list all the options.
127
128 If we were to try to guess the arguments, we would probably guess wrong
129 and then we would not encounter the bug.
130
131 - A description of what behavior you observe that you believe is incorrect.
132 For example, "The interpreter gets a fatal signal," or, "The output produced
133 at line 208 is incorrect."
134
135 - The output you expected to see. Although it might seem obvious to you,
136 someone examining the problem might not know what result you consider
137 correct.
138
139 - If you wish to suggest changes to the Octave source, send them as context
140 diffs. If you discuss something in the Octave source, refer to it by
141 context, not by line number, because the line numbers in the development
142 sources probably won't match those in your sources.
143
144
145
146 # Sending Patches for Octave
147
148 If you have a suggested fix for a bug, please attach it to your report in
149 the tracker. Your patch is more likely to be reviewed if you follow the
150 guidelines in the Octave manual about to [generate a changeset][5]
151 and submit patches for Octave.
152
153 [5]: {{ site.docs_url }}/Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset