]> code.delx.au - gnu-emacs/blob - etc/compilation.txt
Adjust to new names for x-(lost|sent)-selection-functions.
[gnu-emacs] / etc / compilation.txt
1 * Introduction -*-compilation-*-
2
3 This shows the different kinds of messages compile recognizes by default and
4 how they are rendered. It is intended both to help you decide which matchers
5 you need and as a test of the matchers. Move the mouse over a colored part or
6 use `compilation-message-face', to see how much text was actually matched.
7
8 The important part is the symbol(s) line at the beginning of each entry.
9 These are the symbols you can customize `compilation-error-regexp-alist' for,
10 to match the messages shown in that entry. A few complex cases have more than
11 one symbol, which should be selected together.
12
13
14 * Absoft FORTRAN 77 Compiler 3.1.3
15
16 symbol: absoft
17
18 Error on line 3 of t.f: Execution error unclassifiable statement
19 Line 45 of "foo.c": bloofle undefined
20 error on line 19 of fplot.f: spelling error?
21 warning on line 17 of fplot.f: data type is undefined for variable d
22
23
24 * Ada & Mpatrol (memory leak debugger)
25
26 symbol: ada
27
28 This matches only the end of line, the beginning is covered by GNU style.
29
30 foo.adb:61:11: [...] in call to size declared at foo.ads:11
31 0x8008621 main+16 at error.c:17
32
33
34 * IBM AIX PS/2 C version 1.1
35
36 symbol: aix
37
38 ****** Error number 140 in line 8 of file errors.c ******
39
40
41 * Ant Java: works at least for jikes and javac
42
43 symbol: ant
44
45 The regexps found on http://ant.apache.org/faq.html, and since integrated in
46 both Emacsen, were hairy. Why so many numbers for jikes -- is one a column
47 number?
48
49 [javac] /src/DataBaseTestCase.java:27: unreported exception ...
50 [javac] /src/DataBaseTestCase.java:49: warning: finally clause cannot complete normally
51 [jikes] foo.java:3:5:7:9: blah blah
52
53
54 * Bash v2
55
56 symbol: bash
57
58 a.sh: line 1: ls-l: command not found
59
60
61 * Borland C++, C++Builder
62
63 symbol: borland
64
65 Error ping.c 15: Unable to open include file 'sys/types.h'
66 Warning ping.c 68: Call to function 'func' with no prototype
67 Error E2010 ping.c 15: Unable to open include file 'sys/types.h'
68 Warning W1022 ping.c 68: Call to function 'func' with no prototype
69
70
71 * Caml & Python
72
73 symbol: caml
74
75 File "foobar.ml", lines 5-8, characters 20-155: blah blah
76 File "F:\ocaml\sorting.ml", line 65, characters 2-145:
77 Warning: this expression should have type unit.
78 File "/usr/share/gdesklets/display/TargetGauge.py", line 41, in add_children
79 File \lib\python\Products\PythonScripts\PythonScript.py, line 302, in _exec
80 File "/tmp/foo.py", line 10
81
82
83 * Apollo cc, 4.3BSD fc & IBM RS6000/AIX xlc compiler & Microtec mcc68k & GNAT (July 94)
84
85 symbol: comma
86
87 "foo.f", line 3: Error: syntax error near end of statement
88 "vvouch.c", line 19.5: 1506-046 (S) Syntax error.
89 "foo.c", line 32 pos 1; (E) syntax error; unexpected symbol: "lossage"
90 "foo.adb", line 2(11): warning: file name does not match ...
91 "src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment.
92
93
94 * EDG C/C++
95
96 symbol: edg-1 edg-2
97
98 build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined
99 build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ...
100 build/intel/debug/../../../iptr.h(302): remark #981: operands are evaluated in unspecified order
101 detected during ... at line 62 of "build/intel/debug/../../../trace.h"
102
103
104 * EPC F90 compiler
105
106 symbol: epc
107
108 Error 24 at (2:progran.f90) : syntax error
109
110
111 * Fortran checker
112
113 symbols: ftnchek-file ftnchek-line-file ftnchek-line
114
115 File average.f:
116
117 Warning in module COMPAV: Variables may be used before set:
118 SUM used at line 14
119 SUM set at line 14
120
121 Warning near line 16 col 20: integer quotient expr I/J converted to real
122
123 Dummy arg W in module SUBA line 8 file arrayclash.f is array
124 L4 used at line 55 file test/assign.f; never set
125 Warning near line 10 file arrayclash.f: Module contains no executable
126 Nonportable usage near line 31 col 9 file assign.f: mixed default and explicit
127
128
129 * IAR Systems C Compiler
130
131 symbol: iar
132
133 "foo.c",3 Error[32]: Error message
134 "foo.c",3 Warning[32]: Error message
135
136
137 * IBM C/C++ Tools 2.01
138
139 symbol: ibm
140
141 foo.c(2:0) : informational EDC0804: Function foo is not referenced.
142 foo.c(3:8) : warning EDC0833: Implicit return statement encountered.
143 foo.c(5:5) : error EDC0350: Syntax error.
144
145
146 * Ultrix MIPS RISC CC, DEC AXP OSF/1 cc, IRIX 5.2 & NAG Fortran
147
148 symbol: irix
149
150 ccom: Error: foo.c, line 2: syntax error
151 cc: Severe: /src/Python-2.3.3/Modules/_curses_panel.c, line 17: Cannot find file <panel.h> ...
152 cc: Info: foo.c, line 27: ...
153 cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ...
154 cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ...
155 /usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah
156 /usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah
157 foo bar: baz.f, line 27: ...
158
159
160 * Java Exception & Valgrind (memory debugger for x86 GNU/Linux)
161
162 symbol: java
163
164 Register 6 contains wrong type
165 at org.foo.ComponentGateway.doGet(ComponentGateway.java:172)
166 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
167 ==1332== Invalid write of size 1
168 ==1332== at 0x4040743C: System::getErrorString() (../src/Lib/System.cpp:217)
169 ==1332== by 0x8008621: main (vtest.c:180)
170
171
172 * IBM jikes
173
174 symbols: jikes-file jikes-line
175
176 Jikes separates file names from the actual error messages. For visual
177 feedback the underline and the word "Error" on the 3rd line is fontified like
178 a file name would be.
179
180 Found 2 semantic errors compiling "../javax/swing/BorderFactory.java":
181
182 150. case '{':
183 <->
184 *** Error: The type of this expression, "char", is not ...
185
186 312. return new CompoundBorder(outside, inside);
187 <--------------------------------->
188 *** Error: No match was found for constructor ...
189
190 Issued 1 semantic warning compiling "java/awt/Toolkit.java":
191
192 504. void imgProduceImage( ImageNativeProducer prod, Ptr imgData);
193 <----------------->
194 *** Warning: The type "ImageNativeProducer" is defined ...
195
196
197 * GCC include message
198
199 symbol: gcc-include
200
201 The last file, i.e. the one you are compiling, is the interesting one.
202
203 In file included from /usr/include/c++/3.3/backward/warn.h:4,
204 from /usr/include/c++/3.3/backward/iostream.h:31,
205 from test_clt.cc:1:
206
207
208 * GNU style
209
210 symbol: gnu
211
212 foo.c:8: message
213 ../foo.c:8: W: message
214 /tmp/foo.c:8:warning message
215 foo/bar.py:8: FutureWarning message
216 foo.py:8: RuntimeWarning message
217 foo.c:8:I: message
218 foo.c:8.23: info: message
219 foo.c:8:23:information: message
220 foo.c:8.23-45: Informational: message
221 foo.c:8-23: message
222 foo.c:8-45.3: message
223 foo.c:8.23-9.1: message
224 jade:dbcommon.dsl:133:17:E: missing argument for function call
225 G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
226 file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
227 {standard input}:27041: Warning: end of file not at end of a line; newline inserted
228
229
230 * Lucid Compiler, lcc 3.x
231
232 symbol: lcc
233
234 E, file.cc(35,52) Illegal operation on pointers
235 W, file.cc(36,52) blah blah
236
237
238 * makepp 1.20
239
240 symbol: makepp
241
242 makepp: Scanning `/foo/bar.c'
243 makepp: warning: bla bla `/foo/bar.c' and `/foo/bar.h'
244 makepp: bla bla `/foo/Makeppfile:12' bla
245 makepp: bla bla `/foo/bar.c' and `/foo/bar.h'
246
247
248 * MIPS lint; looks good for SunPro lint also
249
250 symbols: mips-1 mips-2
251
252 This can match multiple times on a line.
253
254 TrimMask (255) in solomon.c may be indistinguishable from TrimMasks (93) in solomon.c due to truncation
255 name defined but never used: LinInt in cmap_calc.c(199)
256
257
258 * Microsoft C/C++
259
260 symbol: msft
261
262 This used to be less selective and allowed characters other than parens around
263 the line number, but that caused confusion for GNU-style error messages. This
264 used to reject spaces and dashes in file names, but they are valid now; so I
265 made it more strict about the error message that follows.
266
267 keyboard handler.c(537) : warning C4005: 'min' : macro redefinition
268 d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if'
269
270
271 * Oracle pro*c
272
273 symbol: oracle
274
275 This stupid precompiler wraps lines at column 80 in the middle of a file name.
276 There is no obvious way of detecting this or turning it off. But if you
277 delete the newline, the file name will automatically be reparsed, so that you
278 can then go there.
279
280 Semantic error at line 528, column 5, file erosacqdb.pc:
281 Error at line 41, column 10 in file /usr/src/sb/ODBI_BHP.hpp
282 PCC-02150: error at line 49, column 27 in file /usr/src/sb/ODBI_dxfgh.pc
283 PCC-00003: invalid SQL Identifier at column name in line 12 of file /usr/src/sb/ODBI_BHP.hpp
284 PCC-00004: mismatched IF/ELSE/ENDIF block at line 27 in file /usr/src/sb/ODBI_BHP.hpp
285 PCC-02151: line 21 column 40 file /usr/src/sb/ODBI_BHP.hpp:
286
287
288 * Perl
289
290 symbol: perl
291
292 syntax error at automake line 922, near "':'"
293 Died at test.pl line 27.
294 store::odrecall('File_A', 'x2') called at store.pm line 90
295
296
297 * RXP
298
299 symbol: rxp
300
301 GPL XML validator at http://www.cogsci.ed.ac.uk/~richard/rxp.html
302
303 Error: Mismatched end tag: expected </geroup>, got </group>
304 in unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml
305 Warning: Start tag for undeclared element geroup
306 in unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml
307
308
309 * Sparc Pascal
310
311 symbols: sparc-pascal-file sparc-pascal-line sparc-pascal-example
312
313 These messages don't contain a file name. Instead the compiler gives a
314 message whenever the file being compiled is changed. For visual feedback the
315 error code is fontified like a file name would be.
316
317 Thu May 14 10:46:12 1992 mom3.p:
318 20 linjer : array[1..4] of linje;
319 w 18480-----------^--- Inserted ';'
320 20 linjer : array[1..4] of linje;
321 e 18480-----------^--- Inserted ';'
322 w 18520 line 61 - 0 is undefined
323 E 18520 line 61 - 0 is undefined
324
325
326 * SGI IRIX MipsPro 7.3 & Sun F90 & Cray C
327
328 symbol: sun
329
330 cc-1020 CC: REMARK File = CUI_App.h, Line = 735
331 cc-1070 cc: WARNING File = linkl.c, Line = 38
332 cf90-113 f90comp: ERROR NSE, File = Hoved.f90, Line = 16, Column = 3
333
334
335 * Sun Ada (VADS, Solaris)
336
337 symbol: sun-ada
338
339 /home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted
340
341
342 * 4.3BSD grep, cc, lint
343
344 symbol: 4bsd
345
346 /usr/src/foo/foo.c(8): warning: w may be used before set
347 /usr/src/foo/foo.c(9): error: w is used before set
348 strcmp: variable # of args. llib-lc(359) :: /usr/src/foo/foo.c(8)
349 bloofle defined( /users/wolfgang/foo.c(4) ), but never used
350
351
352 * Directory tracking
353
354 Directories are matched via `compilation-directory-matcher'. Files which are
355 not shown as full paths are searched for relative to the directory where the
356 message was issued.
357
358 Entering directory `/a/b/c'
359 Leaving directory `/a/b/c'
360 gmake[2]: Entering directory `/a/b/c'
361 makepp: Leaving directory `/a/b/c'
362
363
364 * Miscellaneous
365
366 These are not messages that can be gone to. They are only highlighted via
367 `compilation-mode-font-lock-keywords' to recognize some useful information at
368 a glance.
369
370 checking dynamic linker characteristics... GNU/Linux ld.so
371 checking if libtool supports shared libraries... yes
372 checking whether to build shared libraries... yes
373 checking whether -lc should be explicitly linked in... (cached) no
374 checking For GLIB - version >= 2.0.0... yes (version 2.1.0)
375 checking FONTCONFIG_CFLAGS...
376 g++ -o foo.o foo.cc
377 tool1 -output=foo foo.x
378 tool2 --outfile foo foo.y