(buffer-stale-function): Doc fix.
[emacs.git] / etc / compilation.txt
blob54fb9efaf4d74828b68bf7e14ce58524d067cc45
1 * Introduction  -*-compilation-*-
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.
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.
14 * Absoft FORTRAN 77 Compiler 3.1.3
16 symbol: absoft
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
24 * Ada & Mpatrol (memory leak debugger)
26 symbol: ada
28 This matches only the end of line, the beginning is covered by GNU style.
30 foo.adb:61:11:  [...] in call to size declared at foo.ads:11
31         0x8008621 main+16 at error.c:17
34 * IBM AIX PS/2 C version 1.1
36 symbol: aix
38 ****** Error number 140 in line 8 of file errors.c ******
41 * Ant Java: works at least for jikes and javac
43 symbol: ant
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?
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
54 * Bash v2
56 symbol: bash
58 a.sh: line 1: ls-l: command not found
61 * Borland C++, C++Builder
63 symbol: borland
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
71 * Caml & Python
73 symbol: caml
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
81 * Apollo cc, 4.3BSD fc & IBM RS6000/AIX xlc compiler & Microtec mcc68k & GNAT (July 94)
83 symbol: comma
85 "foo.f", line 3: Error: syntax error near end of statement
86 "vvouch.c", line 19.5: 1506-046 (S) Syntax error.
87 "foo.c", line 32 pos 1; (E) syntax error; unexpected symbol: "lossage"
88 "foo.adb", line 2(11): warning: file name does not match ...
89 "src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment.
92 * EPC F90 compiler
94 symbol: epc
96 Error 24 at (2:progran.f90) : syntax error
99 * IAR Systems C Compiler
101 symbol: iar
103 "foo.c",3  Error[32]: Error message
104 "foo.c",3  Warning[32]: Error message
107 * IBM C/C++ Tools 2.01
109 symbol: ibm
111 foo.c(2:0) : informational EDC0804: Function foo is not referenced.
112 foo.c(3:8) : warning EDC0833: Implicit return statement encountered.
113 foo.c(5:5) : error EDC0350: Syntax error.
116 * Ultrix MIPS RISC CC & DEC AXP OSF/1 cc & IRIX 5.2
118 symbol: irix
120 ccom: Error: foo.c, line 2: syntax error
121 cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ...
122 cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ...
123 /usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah
124 /usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah
127 * Java Exception & Valgrind (memory debugger for x86 GNU/Linux)
129 symbol: java
131 Register 6 contains wrong type
132         at org.foo.ComponentGateway.doGet(ComponentGateway.java:172)
133         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
134 ==1332== Invalid write of size 1
135 ==1332==    at 0x4040743C: System::getErrorString() (../src/Lib/System.cpp:217)
136 ==1332==    by 0x8008621: main (vtest.c:180)
139 * IBM jikes
141 symbols: jikes-file jikes-line
143 Jikes separates file names from the actual error messages.  For visual
144 feedback the underline and the word "Error" on the 3rd line is fontified like
145 a file name would be.
147 Found 2 semantic errors compiling "../javax/swing/BorderFactory.java":
149    150.               case '{':
150                            <->
151 *** Error: The type of this expression, "char", is not ...
153    312.     return new CompoundBorder(outside, inside);
154                    <--------------------------------->
155 *** Error: No match was found for constructor ...
157 Issued 1 semantic warning compiling "java/awt/Toolkit.java":
159    504. void imgProduceImage( ImageNativeProducer prod, Ptr imgData);
160                               <----------------->
161 *** Warning: The type "ImageNativeProducer" is defined ...
164 * GCC include message
166 symbol: gcc-include
168 The last file, i.e. the one you are compiling, is the interesting one.
170 In file included from /usr/include/c++/3.3/backward/warn.h:4,
171                  from /usr/include/c++/3.3/backward/iostream.h:31,
172                  from test_clt.cc:1:
175 * GNU style
177 symbol: gnu
179 foo.c:8: message
180 ../foo.c:8: W: message
181 /tmp/foo.c:8:warning message
182 foo/bar.py:8: FutureWarning message
183 foo.py:8: RuntimeWarning message
184 foo.c:8:I: message
185 foo.c:8.23: info: message
186 foo.c:8:23:information: message
187 foo.c:8.23-45: Informational: message
188 foo.c:8-23: message
189 foo.c:8-45.3: message
190 foo.c:8.23-9.1: message
191 jade:dbcommon.dsl:133:17:E: missing argument for function call
192 G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
193 file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
196 * Lucid Compiler, lcc 3.x
198 symbol: lcc
200 E, file.cc(35,52) Illegal operation on pointers
201 W, file.cc(36,52) blah blah
204 * makepp 1.20
206 symbol: makepp
208 makepp: Scanning `/foo/bar.c'
209 makepp: warning: bla bla `/foo/bar.c' and `/foo/bar.h'
210 makepp: bla bla `/foo/Makeppfile:12' bla
211 makepp: bla bla `/foo/bar.c' and `/foo/bar.h'
214 * MIPS lint; looks good for SunPro lint also
216 symbols: mips-1 mips-2
218 This can match multiple times on a line.
220 TrimMask (255) in solomon.c may be indistinguishable from TrimMasks (93) in solomon.c due to truncation
221 name defined but never used: LinInt in cmap_calc.c(199)
224 * Microsoft C/C++
226 symbol: msft
228 This used to be less selective and allowed characters other than parens around
229 the line number, but that caused confusion for GNU-style error messages.  This
230 used to reject spaces and dashes in file names, but they are valid now; so I
231 made it more strict about the error message that follows.
233 keyboard handler.c(537) : warning C4005: 'min' : macro redefinition
234 d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if'
237 * Oracle pro*c
239 symbol: oracle
241 Semantic error at line 528, column 5, file erosacqdb.pc:
244 * Perl
246 symbol: perl
248 syntax error at automake line 922, near "':'"
249 Died at test.pl line 27.
250 store::odrecall('File_A', 'x2') called at store.pm line 90
253 * RXP
255 symbol: rxp
257 GPL XML validator at http://www.cogsci.ed.ac.uk/~richard/rxp.html
259 Error: Mismatched end tag: expected </geroup>, got </group>
260 in unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml
261 Warning: Start tag for undeclared element geroup
262 in unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml
265 * Sparc Pascal
267 symbols: sparc-pascal-file sparc-pascal-line sparc-pascal-example
269 These messages don't contain a file name.  Instead the compiler gives a
270 message whenever the file being compiled is changed.  For visual feedback the
271 error code is fontified like a file name would be.
273 Thu May 14 10:46:12 1992  mom3.p:
274           20      linjer      : array[1..4] of linje;
275 w 18480-----------^---  Inserted ';'
276           20      linjer      : array[1..4] of linje;
277 e 18480-----------^---  Inserted ';'
278 w 18520 line 61 -  0 is undefined
279 E 18520 line 61 -  0 is undefined
282 * SGI IRIX MipsPro 7.3 & Sun F90 & Cray C
284 symbol: sun
286 cc-1020 CC: REMARK File = CUI_App.h, Line = 735
287 cc-1070 cc: WARNING File = linkl.c, Line = 38
288 cf90-113 f90comp: ERROR NSE, File = Hoved.f90, Line = 16, Column = 3
291 * Sun Ada (VADS, Solaris)
293 symbol: sun-ada
295 /home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted
298 * Ultrix 3.0 f77 & Some SGI cc version
300 symbol: ultrix
302 fort: Severe: addstf.f, line 82: Missing operator or delimiter symbol
303 cfe: Warning 835: foo.c, line 2: something
306 * 4.3BSD grep, cc, lint
308 symbol: 4bsd
310 /usr/src/foo/foo.c(8): warning: w may be used before set
311 /usr/src/foo/foo.c(9): error: w is used before set
312 strcmp: variable # of args. llib-lc(359)  ::  /usr/src/foo/foo.c(8)
313 bloofle defined( /users/wolfgang/foo.c(4) ), but never used
316 * Directory tracking
318 Directories are matched via `compilation-directory-matcher'.  Files which are
319 not shown as full paths are searched for relative to the directory where the
320 message was issued.
322 Entering directory `/a/b/c'
323 Leaving directory `/a/b/c'
324 gmake[2]: Entering directory `/a/b/c'
325 makepp: Leaving directory `/a/b/c'
328 * Miscellaneous
330 These are not messages that can be gone to.  They are only highlighted via
331 `compilation-mode-font-lock-keywords' to recognize some useful information at
332 a glance.
334 checking dynamic linker characteristics... GNU/Linux ld.so
335 checking if libtool supports shared libraries... yes
336 checking whether to build shared libraries... yes
337 checking whether -lc should be explicitly linked in... (cached) no
338 checking For GLIB - version >= 2.0.0... yes (version 2.1.0)
339 checking FONTCONFIG_CFLAGS...
340 g++ -o foo.o foo.cc
341 tool1 -output=foo foo.x
342 tool2 --outfile foo foo.y