* src/data.c (Flocal_variable_p): Handle variable aliases correctly.
[emacs.git] / etc / compilation.txt
blob2041b7f0acc26e8b7ef5c9b2e17bc9cb12ff9968
1 * Introduction  -*-compilation-*-       (Copyright information at end of file)
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 Note that the following example line should NOT be highlighted:
9 Compilation started at Sat Jul  8 15:19:25
11 The important part is the symbol(s) line at the beginning of each entry.
12 These are the symbols you can customize `compilation-error-regexp-alist' for,
13 to match the messages shown in that entry.  A few complex cases have more than
14 one symbol, which should be selected together.
17 * Absoft FORTRAN 77 Compiler 3.1.3
19 symbol: absoft
21 Error on line 3 of t.f: Execution error unclassifiable statement
22 Line 45 of "foo.c": bloofle undefined
23 error on line 19 of fplot.f: spelling error?
24 warning on line 17 of fplot.f: data type is undefined for variable d
27 * Ada & Mpatrol (memory leak debugger)
29 symbol: ada
31 This matches only the end of line, the beginning is covered by GNU style.
33 foo.adb:61:11:  [...] in call to size declared at foo.ads:11
34         0x8008621 main+16 at error.c:17
37 * IBM AIX PS/2 C version 1.1
39 symbol: aix
41 ****** Error number 140 in line 8 of file errors.c ******
44 * Ant Java: works at least for jikes and javac
46 symbol: ant
48 The regexps found on http://ant.apache.org/faq.html, and since integrated in
49 both Emacsen, were hairy.  Why so many numbers for jikes -- is one a column
50 number?
52     [javac] /src/DataBaseTestCase.java:27: unreported exception ...
53     [javac] /src/DataBaseTestCase.java:49: warning: finally clause cannot complete normally
54     [jikes]  foo.java:3:5:7:9: blah blah
57 * Bash v2
59 symbol: bash
61 a.sh: line 1: ls-l: command not found
64 * Borland C++, C++Builder
66 symbol: borland
68 Error ping.c 15: Unable to open include file 'sys/types.h'
69 Warning ping.c 68: Call to function 'func' with no prototype
70 Error E2010 ping.c 15: Unable to open include file 'sys/types.h'
71 Warning W1022 ping.c 68: Call to function 'func' with no prototype
74 * Caml & Python
76 symbol: caml
78 File "foobar.ml", lines 5-8, characters 20-155: blah blah
79 File "F:\ocaml\sorting.ml", line 65, characters 2-145:
80 Warning: this expression should have type unit.
81   File "/usr/share/gdesklets/display/TargetGauge.py", line 41, in add_children
82   File \lib\python\Products\PythonScripts\PythonScript.py, line 302, in _exec
83   File "/tmp/foo.py", line 10
86 * Apollo cc, 4.3BSD fc & IBM RS6000/AIX xlc compiler & Microtec mcc68k & GNAT (July 94)
88 symbol: comma
90 "foo.f", line 3: Error: syntax error near end of statement
91 "vvouch.c", line 19.5: 1506-046 (S) Syntax error.
92 "foo.c", line 32 pos 1; (E) syntax error; unexpected symbol: "lossage"
93 "foo.adb", line 2(11): warning: file name does not match ...
94 "src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment.
96 * Cucumber
98 symbol: cucumber
100 Feature: This is an example for backtrace.
102   Scenario: undefined step  # features/cucumber.feature:3
103     Given this is undefined # features/cucumber.feature:4
105   Scenario: assertion false (Test::Unit)    # features/cucumber.feature:6
106     Given this will generate 'assert false' # features/step_definitions/default_steps.rb:1
107       <false> is not true. (Test::Unit::AssertionFailedError)
108       /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:48:in `assert_block'
109       /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:500:in `_wrap_assertion'
110       /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:46:in `assert_block'
111       /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:63:in `assert'
112       /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:495:in `_wrap_assertion'
113       /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:61:in `assert'
114       ./features/step_definitions/default_steps.rb:2:in `/^this will generate 'assert false'$/'
115       features/cucumber.feature:7:in `Given this will generate 'assert false''
117   Scenario: assertion false (RSpec)           # features/cucumber.feature:9
118     Given this will generate 'should be_true' # features/step_definitions/default_steps.rb:5
119       expected true to be false (Spec::Expectations::ExpectationNotMetError)
120       ./features/step_definitions/default_steps.rb:6:in `/^this will generate 'should be_true'$/'
121       features/cucumber.feature:10:in `Given this will generate 'should be_true''
123   Scenario: backtrace in step definition # features/cucumber.feature:12
124     Given this will generate backtrace   # features/step_definitions/default_steps.rb:9
125        (RuntimeError)
126       ./features/step_definitions/default_steps.rb:10:in `/^this will generate backtrace$/'
127       features/cucumber.feature:13:in `Given this will generate backtrace'
129   Scenario: deeep backtrace in step definition # features/cucumber.feature:15
130     Given this will generate deep backtrace    # features/step_definitions/default_steps.rb:13
131        (RuntimeError)
132       ./features/step_definitions/default_steps.rb:18:in `deep'
133       ./features/step_definitions/default_steps.rb:14:in `/^this will generate deep backtrace$/'
134       features/cucumber.feature:16:in `Given this will generate deep backtrace'
136 Failing Scenarios:
137 cucumber features/cucumber.feature:6 # Scenario: assertion false (Test::Unit)
138 cucumber features/cucumber.feature:9 # Scenario: assertion false (RSpec)
139 cucumber features/cucumber.feature:12 # Scenario: backtrace in step definition
140 cucumber features/cucumber.feature:15 # Scenario: deeep backtrace in step definition
142 5 scenarios (4 failed, 1 undefined)
143 5 steps (4 failed, 1 undefined)
144 0m0.007s
146 * EDG C/C++
148 symbol: edg-1 edg-2
150 build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined
151 build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ...
152 build/intel/debug/../../../iptr.h(302): remark #981: operands are evaluated in unspecified order
153           detected during ... at line 62 of "build/intel/debug/../../../trace.h"
156 * EPC F90 compiler
158 symbol: epc
160 Error 24 at (2:progran.f90) : syntax error
163 * Fortran checker
165 symbols: ftnchek
167     Dummy arg W in module SUBA line 8 file arrayclash.f is array
168     L4 used at line 55 file test/assign.f; never set
169 Warning near line 10 file arrayclash.f: Module contains no executable
170 Nonportable usage near line 31 col 9 file assign.f: mixed default and explicit
173 * IAR Systems C Compiler
175 symbol: iar
177 "foo.c",3  Error[32]: Error message
178 "foo.c",3  Warning[32]: Error message
181 * IBM C/C++ Tools 2.01
183 symbol: ibm
185 foo.c(2:0) : informational EDC0804: Function foo is not referenced.
186 foo.c(3:8) : warning EDC0833: Implicit return statement encountered.
187 foo.c(5:5) : error EDC0350: Syntax error.
190 * Ultrix MIPS RISC CC, DEC AXP OSF/1 cc, IRIX 5.2 & NAG Fortran
192 symbol: irix
194 ccom: Error: foo.c, line 2: syntax error
195 cc: Severe: /src/Python-2.3.3/Modules/_curses_panel.c, line 17: Cannot find file <panel.h> ...
196 cc: Info: foo.c, line 27: ...
197 cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ...
198 cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ...
199 /usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah
200 /usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah
201 foo bar: baz.f, line 27: ...
204 * Java Exception & Valgrind (memory debugger for x86 GNU/Linux)
206 symbol: java
208 Register 6 contains wrong type
209         at org.foo.ComponentGateway.doGet(ComponentGateway.java:172)
210         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
211 ==1332== Invalid write of size 1
212 ==1332==    at 0x4040743C: System::getErrorString() (../src/Lib/System.cpp:217)
213 ==1332==    by 0x8008621: main (vtest.c:180)
216 * IBM jikes
218 symbols: jikes-file jikes-line
220 Jikes separates file names from the actual error messages.  For visual
221 feedback the underline and the word "Error" on the 3rd line is fontified like
222 a file name would be.
224 Found 2 semantic errors compiling "../javax/swing/BorderFactory.java":
226    150.               case '{':
227                            <->
228 *** Error: The type of this expression, "char", is not ...
230    312.     return new CompoundBorder(outside, inside);
231                    <--------------------------------->
232 *** Error: No match was found for constructor ...
234 Issued 1 semantic warning compiling "java/awt/Toolkit.java":
236    504. void imgProduceImage( ImageNativeProducer prod, Ptr imgData);
237                               <----------------->
238 *** Warning: The type "ImageNativeProducer" is defined ...
241 * GCC include message
243 symbol: gcc-include
245 The last file, i.e. the one you are compiling, is the interesting one.
247 In file included from /usr/include/c++/3.3/backward/warn.h:4,
248                  from /usr/include/c++/3.3/backward/iostream.h:31,
249                  from test_clt.cc:1:
252 * GNU style
254 symbol: gnu
256 foo.c:8: message
257 ../foo.c:8: W: message
258 /tmp/foo.c:8:warning message
259 foo/bar.py:8: FutureWarning message
260 foo.py:8: RuntimeWarning message
261 foo.c:8:I: message
262 foo.c:8.23: note: message
263 foo.c:8.23: info: message
264 foo.c:8:23:information: message
265 foo.c:8.23-45: Informational: message
266 foo.c:8-23: message
267 foo.c:8-45.3: message
268 foo.c:8.23-9.1: message
269 jade:dbcommon.dsl:133:17:E: missing argument for function call
270 G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
271 file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
272 {standard input}:27041: Warning: end of file not at end of a line; newline inserted
275 * Lucid Compiler, lcc 3.x
277 symbol: lcc
279 E, file.cc(35,52) Illegal operation on pointers
280 W, file.cc(36,52) blah blah
283 * makepp 1.20
285 symbol: makepp
287 makepp: Scanning `/foo/bar.c'
288 makepp: warning: bla bla `/foo/bar.c' and `/foo/bar.h'
289 makepp: bla bla `/foo/Makeppfile:12' bla
290 makepp: bla bla `/foo/bar.c' and `/foo/bar.h'
293 * maven 2.0.9
295 symbol: maven
297 FooBar.java:[111,53] no interface expected here
300 * MIPS lint; looks good for SunPro lint also
302 symbols: mips-1 mips-2
304 This can match multiple times on a line.
306 TrimMask (255) in solomon.c may be indistinguishable from TrimMasks (93) in solomon.c due to truncation
307 name defined but never used: LinInt in cmap_calc.c(199)
310 * Microsoft C/C++
312 symbol: msft
314 This used to be less selective and allowed characters other than parens around
315 the line number, but that caused confusion for GNU-style error messages.  This
316 used to reject spaces and dashes in file names, but they are valid now; so I
317 made it more strict about the error message that follows.
319 keyboard handler.c(537) : warning C4005: 'min' : macro redefinition
320 d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if'
321 d:\tmp\test.c(1145) : see declaration of 'nsRefPtr'
324 * Open Watcom
326 symbol: watcom
328 ..\src\ctrl\lister.c(109): Error! E1009: Expecting ';' but found '{'
329 ..\src\ctrl\lister.c(120): Warning! W201: Unreachable code
332 * Oracle pro*c
334 symbol: oracle
336 This stupid precompiler wraps lines at column 80 in the middle of a file name.
337 There is no obvious way of detecting this or turning it off.  But if you
338 delete the newline (probably needs M-x toggle-read-only), the file name will
339 automatically be reparsed, so that you can then go there.
341 Semantic error at line 528, column 5, file erosacqdb.pc:
342 Error at line 41, column 10 in file /usr/src/sb/ODBI_BHP.hpp
343 PCC-02150: error at line 49, column 27 in file /usr/src/sb/ODBI_dxfgh.pc
344 PCC-00003: invalid SQL Identifier at column name in line 12 of file /usr/src/sb/ODBI_BHP.hpp
345 PCC-00004: mismatched IF/ELSE/ENDIF block at line 27 in file /usr/src/sb/ODBI_BHP.hpp
346 PCC-02151: line 21 column 40 file /usr/src/sb/ODBI_BHP.hpp:
349 * Perl
351 symbol: perl
353 The second sample, from the Perl-Glib module, is a Glib message put
354 through Perl warn() to get "at FILENAME line N".
356 syntax error at automake line 922, near "':'"
357 Died at test.pl line 27.
358 store::odrecall('File_A', 'x2') called at store.pm line 90
359         (in cleanup) something bad at foo.pl line 3 during global destruction.
361 GLib-GObject-WARNING **: /build/buildd/glib2.0-2.14.5/gobject/gsignal.c:1741: instance `0x8206790' has no handler with id `1234' at t-compilation-perl-gtk.pl line 3.
363 * PHP
365 symbol: php
367 Parse error: parse error, unexpected $ in main.php on line 59
368 Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66
370 * Ruby
372 symbol: ruby
374 plain-exception.rb:7:in `fun': unhandled exception
375         from plain-exception.rb:3:in `proxy'
376         from plain-exception.rb:12
378 * Ruby (Test::Unit)
380 symbol: ruby-Test::Unit
382 Loaded suite examples/test-unit
383 Started
384 FFFE
385 Finished in 0.023173 seconds.
387   1) Failure:
388 test_a_deep_assert(BacktracesTest)
389     [examples/test-unit.rb:28:in `here_is_a_deep_assert'
390      examples/test-unit.rb:19:in `test_a_deep_assert']:
391 <false> is not true.
393   2) Failure:
394 test_assert(BacktracesTest) [examples/test-unit.rb:5]:
395 <false> is not true.
397   3) Failure:
398 test_assert_raise(BacktracesTest) [examples/test-unit.rb:9]:
399 Exception raised:
400 Class: <RuntimeError>
401 Message: <"">
402 ---Backtrace---
403 examples/test-unit.rb:10:in `test_assert_raise'
404 examples/test-unit.rb:9:in `test_assert_raise'
405 ---------------
407   4) Error:
408 test_backtrace(BacktracesTest):
409 NoMethodError: undefined method `not_exists' for nil:NilClass
410     examples/test-unit.rb:24:in `some_function_call_from_nil'
411     examples/test-unit.rb:15:in `test_backtrace'
413 4 tests, 3 assertions, 3 failures, 1 errors
415 * RXP
417 symbol: rxp
419 GPL XML validator at http://www.cogsci.ed.ac.uk/~richard/rxp.html
421 Error: Mismatched end tag: expected </geroup>, got </group>
422 in unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml
423 Warning: Start tag for undeclared element geroup
424 in unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml
427 * Sparc Pascal
429 symbols: sparc-pascal-file sparc-pascal-line sparc-pascal-example
431 These messages don't contain a file name.  Instead the compiler gives a
432 message whenever the file being compiled is changed.  For visual feedback the
433 error code is fontified like a file name would be.
435 Thu May 14 10:46:12 1992  mom3.p:
436           20      linjer      : array[1..4] of linje;
437 w 18480-----------^---  Inserted ';'
438           20      linjer      : array[1..4] of linje;
439 e 18480-----------^---  Inserted ';'
440 w 18520 line 61 -  0 is undefined
441 E 18520 line 61 -  0 is undefined
444 * SGI IRIX MipsPro 7.3 & Sun F90 & Cray C
446 symbol: sun
448 cc-1020 CC: REMARK File = CUI_App.h, Line = 735
449 cc-1070 cc: WARNING File = linkl.c, Line = 38
450 cf90-113 f90comp: ERROR NSE, File = Hoved.f90, Line = 16, Column = 3
453 * Sun Ada (VADS, Solaris)
455 symbol: sun-ada
457 /home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted
460 * 4.3BSD grep, cc, lint
462 symbol: 4bsd
464 /usr/src/foo/foo.c(8): warning: w may be used before set
465 /usr/src/foo/foo.c(9): error: w is used before set
466 strcmp: variable # of args. llib-lc(359)  ::  /usr/src/foo/foo.c(8)
467 bloofle defined( /users/wolfgang/foo.c(4) ), but never used
470 * GCOV (test coverage program)
472 symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line
474         -:    0:Source:foo.c
475         -:    0:Object:foo.bb
476         -:    1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c
477         -:    2:   $ ./a.out
478         -:    3:   $ gcov foo.c
479         -:    4:   LANG=C gcov foo.c
480         -:    5:   62.50% of 8 lines executed in file foo.c
481         -:    6:   Creating foo.c.gcov.*/
482         -:    7:int
483         -:    8:main(int argc, char ** argv)
484         1:    9:{
485         1:   10:  int r;
486         1:   11:  if (argc == 1)
487         1:   12:    r = 1;
488     #####:   13:  else if (argc == 2)
489     #####:   14:    r = 2;
490         -:   15:  else
491     #####:   16:    r = 0;
492         1:   17:  return r;
493         -:   18:}
496 * Podchecker error messages, per Pod::Checker
498 symbol: perl--Pod::Checker
500 *** ERROR: Spurious text after =cut at line 193 in file foo.pm
501 *** ERROR: =over on line 37 without closing =back at line EOF in file bar.pm
502 *** ERROR: =over on line 1 without closing =back (at head1) at line 3 in file x.pod
505 * Perl Test module error messages
507 symbol: perl--Test
509 # Failed test 1 in foo.t at line 6
512 * Perl Test::Harness output
514 symbol: perl--Test::Harness
516 NOK 1# Test 1 got: "1234" (t/foo.t at line 46)
519 * Perl HTML::Lint::Error::as_string()
521 symbol: weblint
523 index.html (13:1) Unknown element <fdjsk>
526 * Directory tracking
528 Directories are matched via `compilation-directory-matcher'.  Files which are
529 not shown as full paths are searched for relative to the directory where the
530 message was issued.
532 Entering directory `/a/b/c'
533 Leaving directory `/a/b/c'
534 gmake[2]: Entering directory `/a/b/c'
535 makepp: Leaving directory `/a/b/c'
538 * Miscellaneous
540 These are not messages that can be gone to.  They are only highlighted via
541 `compilation-mode-font-lock-keywords' to recognize some useful information at
542 a glance.
544 checking dynamic linker characteristics... GNU/Linux ld.so
545 checking if libtool supports shared libraries... yes
546 checking whether to build shared libraries... yes
547 checking whether -lc should be explicitly linked in... (cached) no
548 checking For GLIB - version >= 2.0.0... yes (version 2.1.0)
549 checking FONTCONFIG_CFLAGS...
550 g++ -o foo.o foo.cc
551 tool1 -output=foo foo.x
552 tool2 --outfile foo foo.y
554 Compilation started at Wed Jul 20 12:20:10
555 Compilation interrupt at Wed Jul 20 12:20:10
556 Compilation killed at Wed Jul 20 12:20:10
557 Compilation terminated at Wed Jul 20 12:20:10
558 Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12
559 Compilation segmentation fault at Thu Jul 13 10:55:49
560 Compilation finished at Thu Jul 21 15:02:15
563 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
564 Free Software Foundation, Inc.
566 COPYING PERMISSIONS:
568     This document is free software: you can redistribute it and/or modify
569     it under the terms of the GNU General Public License as published by
570     the Free Software Foundation, either version 3 of the License, or
571     (at your option) any later version.
573     This program is distributed in the hope that it will be useful,
574     but WITHOUT ANY WARRANTY; without even the implied warranty of
575     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
576     GNU General Public License for more details.
578     You should have received a copy of the GNU General Public License
579     along with this program.  If not, see <http://www.gnu.org/licenses/>.