* Introduction -*-compilation-*- This shows the different kinds of messages compile recognizes by default and how they are rendered. It is intended both to help you decide which matchers you need and as a test of the matchers. Move the mouse over a colored part or use `compilation-message-face', to see how much text was actually matched. The important part is the symbol(s) line at the beginning of each entry. These are the symbols you can customize `compilation-error-regexp-alist' for, to match the messages shown in that entry. A few complex cases have more than one symbol, which should be selected together. * Absoft FORTRAN 77 Compiler 3.1.3 symbol: absoft Error on line 3 of t.f: Execution error unclassifiable statement Line 45 of "foo.c": bloofle undefined error on line 19 of fplot.f: spelling error? warning on line 17 of fplot.f: data type is undefined for variable d * Ada & Mpatrol (memory leak debugger) symbol: ada This matches only the end of line, the beginning is covered by GNU style. foo.adb:61:11: [...] in call to size declared at foo.ads:11 0x8008621 main+16 at error.c:17 * IBM AIX PS/2 C version 1.1 symbol: aix ****** Error number 140 in line 8 of file errors.c ****** * Ant Java: works at least for jikes and javac symbol: ant The regexps found on http://ant.apache.org/faq.html, and since integrated in both Emacsen, were hairy. Why so many numbers for jikes -- is one a column number? [javac] /src/DataBaseTestCase.java:27: unreported exception ... [javac] /src/DataBaseTestCase.java:49: warning: finally clause cannot complete normally [jikes] foo.java:3:5:7:9: blah blah * Bash v2 symbol: bash a.sh: line 1: ls-l: command not found * Borland C++, C++Builder symbol: borland Error ping.c 15: Unable to open include file 'sys/types.h' Warning ping.c 68: Call to function 'func' with no prototype Error E2010 ping.c 15: Unable to open include file 'sys/types.h' Warning W1022 ping.c 68: Call to function 'func' with no prototype * Caml & Python symbol: caml File "foobar.ml", lines 5-8, characters 20-155: blah blah File "F:\ocaml\sorting.ml", line 65, characters 2-145: Warning: this expression should have type unit. File "/usr/share/gdesklets/display/TargetGauge.py", line 41, in add_children File \lib\python\Products\PythonScripts\PythonScript.py, line 302, in _exec File "/tmp/foo.py", line 10 * Apollo cc, 4.3BSD fc & IBM RS6000/AIX xlc compiler & Microtec mcc68k & GNAT (July 94) symbol: comma "foo.f", line 3: Error: syntax error near end of statement "vvouch.c", line 19.5: 1506-046 (S) Syntax error. "foo.c", line 32 pos 1; (E) syntax error; unexpected symbol: "lossage" "foo.adb", line 2(11): warning: file name does not match ... "src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment. * EDG C/C++ symbol: edg-1 edg-2 build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ... build/intel/debug/../../../iptr.h(302): remark #981: operands are evaluated in unspecified order detected during ... at line 62 of "build/intel/debug/../../../trace.h" * EPC F90 compiler symbol: epc Error 24 at (2:progran.f90) : syntax error * Fortran checker symbols: ftnchek Dummy arg W in module SUBA line 8 file arrayclash.f is array L4 used at line 55 file test/assign.f; never set Warning near line 10 file arrayclash.f: Module contains no executable Nonportable usage near line 31 col 9 file assign.f: mixed default and explicit * IAR Systems C Compiler symbol: iar "foo.c",3 Error[32]: Error message "foo.c",3 Warning[32]: Error message * IBM C/C++ Tools 2.01 symbol: ibm foo.c(2:0) : informational EDC0804: Function foo is not referenced. foo.c(3:8) : warning EDC0833: Implicit return statement encountered. foo.c(5:5) : error EDC0350: Syntax error. * Ultrix MIPS RISC CC, DEC AXP OSF/1 cc, IRIX 5.2 & NAG Fortran symbol: irix ccom: Error: foo.c, line 2: syntax error cc: Severe: /src/Python-2.3.3/Modules/_curses_panel.c, line 17: Cannot find file ... cc: Info: foo.c, line 27: ... cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ... cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ... /usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah /usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah foo bar: baz.f, line 27: ... * Java Exception & Valgrind (memory debugger for x86 GNU/Linux) symbol: java Register 6 contains wrong type at org.foo.ComponentGateway.doGet(ComponentGateway.java:172) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) ==1332== Invalid write of size 1 ==1332== at 0x4040743C: System::getErrorString() (../src/Lib/System.cpp:217) ==1332== by 0x8008621: main (vtest.c:180) * IBM jikes symbols: jikes-file jikes-line Jikes separates file names from the actual error messages. For visual feedback the underline and the word "Error" on the 3rd line is fontified like a file name would be. Found 2 semantic errors compiling "../javax/swing/BorderFactory.java": 150. case '{': <-> *** Error: The type of this expression, "char", is not ... 312. return new CompoundBorder(outside, inside); <---------------------------------> *** Error: No match was found for constructor ... Issued 1 semantic warning compiling "java/awt/Toolkit.java": 504. void imgProduceImage( ImageNativeProducer prod, Ptr imgData); <-----------------> *** Warning: The type "ImageNativeProducer" is defined ... * GCC include message symbol: gcc-include The last file, i.e. the one you are compiling, is the interesting one. In file included from /usr/include/c++/3.3/backward/warn.h:4, from /usr/include/c++/3.3/backward/iostream.h:31, from test_clt.cc:1: * GNU style symbol: gnu foo.c:8: message ../foo.c:8: W: message /tmp/foo.c:8:warning message foo/bar.py:8: FutureWarning message foo.py:8: RuntimeWarning message foo.c:8:I: message foo.c:8.23: info: message foo.c:8:23:information: message foo.c:8.23-45: Informational: message foo.c:8-23: message foo.c:8-45.3: message foo.c:8.23-9.1: message jade:dbcommon.dsl:133:17:E: missing argument for function call G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. {standard input}:27041: Warning: end of file not at end of a line; newline inserted * Lucid Compiler, lcc 3.x symbol: lcc E, file.cc(35,52) Illegal operation on pointers W, file.cc(36,52) blah blah * makepp 1.20 symbol: makepp makepp: Scanning `/foo/bar.c' makepp: warning: bla bla `/foo/bar.c' and `/foo/bar.h' makepp: bla bla `/foo/Makeppfile:12' bla makepp: bla bla `/foo/bar.c' and `/foo/bar.h' * MIPS lint; looks good for SunPro lint also symbols: mips-1 mips-2 This can match multiple times on a line. TrimMask (255) in solomon.c may be indistinguishable from TrimMasks (93) in solomon.c due to truncation name defined but never used: LinInt in cmap_calc.c(199) * Microsoft C/C++ symbol: msft This used to be less selective and allowed characters other than parens around the line number, but that caused confusion for GNU-style error messages. This used to reject spaces and dashes in file names, but they are valid now; so I made it more strict about the error message that follows. keyboard handler.c(537) : warning C4005: 'min' : macro redefinition d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if' * Oracle pro*c symbol: oracle This stupid precompiler wraps lines at column 80 in the middle of a file name. There is no obvious way of detecting this or turning it off. But if you delete the newline (probably needs M-x toggle-read-only), the file name will automatically be reparsed, so that you can then go there. Semantic error at line 528, column 5, file erosacqdb.pc: Error at line 41, column 10 in file /usr/src/sb/ODBI_BHP.hpp PCC-02150: error at line 49, column 27 in file /usr/src/sb/ODBI_dxfgh.pc PCC-00003: invalid SQL Identifier at column name in line 12 of file /usr/src/sb/ODBI_BHP.hpp PCC-00004: mismatched IF/ELSE/ENDIF block at line 27 in file /usr/src/sb/ODBI_BHP.hpp PCC-02151: line 21 column 40 file /usr/src/sb/ODBI_BHP.hpp: * Perl symbol: perl syntax error at automake line 922, near "':'" Died at test.pl line 27. store::odrecall('File_A', 'x2') called at store.pm line 90 * RXP symbol: rxp GPL XML validator at http://www.cogsci.ed.ac.uk/~richard/rxp.html Error: Mismatched end tag: expected , got in unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml Warning: Start tag for undeclared element geroup in unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml * Sparc Pascal symbols: sparc-pascal-file sparc-pascal-line sparc-pascal-example These messages don't contain a file name. Instead the compiler gives a message whenever the file being compiled is changed. For visual feedback the error code is fontified like a file name would be. Thu May 14 10:46:12 1992 mom3.p: 20 linjer : array[1..4] of linje; w 18480-----------^--- Inserted ';' 20 linjer : array[1..4] of linje; e 18480-----------^--- Inserted ';' w 18520 line 61 - 0 is undefined E 18520 line 61 - 0 is undefined * SGI IRIX MipsPro 7.3 & Sun F90 & Cray C symbol: sun cc-1020 CC: REMARK File = CUI_App.h, Line = 735 cc-1070 cc: WARNING File = linkl.c, Line = 38 cf90-113 f90comp: ERROR NSE, File = Hoved.f90, Line = 16, Column = 3 * Sun Ada (VADS, Solaris) symbol: sun-ada /home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted * 4.3BSD grep, cc, lint symbol: 4bsd /usr/src/foo/foo.c(8): warning: w may be used before set /usr/src/foo/foo.c(9): error: w is used before set strcmp: variable # of args. llib-lc(359) :: /usr/src/foo/foo.c(8) bloofle defined( /users/wolfgang/foo.c(4) ), but never used * GCOV (test coverage program) symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line -: 0:Source:foo.c -: 0:Object:foo.bb -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c -: 2: $ ./a.out -: 3: $ gcov foo.c -: 4: LANG=C gcov foo.c -: 5: 62.50% of 8 lines executed in file foo.c -: 6: Creating foo.c.gcov.*/ -: 7:int -: 8:main(int argc, char ** argv) 1: 9:{ 1: 10: int r; 1: 11: if (argc == 1) 1: 12: r = 1; #####: 13: else if (argc == 2) #####: 14: r = 2; -: 15: else #####: 16: r = 0; 1: 17: return r; -: 18:} * Directory tracking Directories are matched via `compilation-directory-matcher'. Files which are not shown as full paths are searched for relative to the directory where the message was issued. Entering directory `/a/b/c' Leaving directory `/a/b/c' gmake[2]: Entering directory `/a/b/c' makepp: Leaving directory `/a/b/c' * Miscellaneous These are not messages that can be gone to. They are only highlighted via `compilation-mode-font-lock-keywords' to recognize some useful information at a glance. checking dynamic linker characteristics... GNU/Linux ld.so checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether -lc should be explicitly linked in... (cached) no checking For GLIB - version >= 2.0.0... yes (version 2.1.0) checking FONTCONFIG_CFLAGS... g++ -o foo.o foo.cc tool1 -output=foo foo.x tool2 --outfile foo foo.y Compilation started at Wed Jul 20 12:20:10 Compilation interrupt at Wed Jul 20 12:20:10 Compilation killed at Wed Jul 20 12:20:10 Compilation terminated at Wed Jul 20 12:20:10 Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12 Compilation finished at Thu Jul 21 15:02:15