comparison bugs.md @ 193:8ec5df986ad3

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