compilation.txt 12.7 KB
Newer Older
1
* Introduction  -*-compilation-*-       (Copyright information at end of file)
Stefan Monnier's avatar
Stefan Monnier committed
2 3 4 5 6 7

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.

8 9 10
Note that the following example line should NOT be highlighted:
Compilation started at Sat Jul  8 15:19:25

Stefan Monnier's avatar
Stefan Monnier committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
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
82 83
  File \lib\python\Products\PythonScripts\PythonScript.py, line 302, in _exec
  File "/tmp/foo.py", line 10
Stefan Monnier's avatar
Stefan Monnier committed
84 85 86 87 88 89 90 91 92 93 94 95 96


* 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.


97 98 99 100 101 102 103 104 105 106
* 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"


Stefan Monnier's avatar
Stefan Monnier committed
107 108 109 110 111 112 113
* EPC F90 compiler

symbol: epc

Error 24 at (2:progran.f90) : syntax error


114 115
* Fortran checker

116
symbols: ftnchek
117 118 119 120 121 122 123

    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


Stefan Monnier's avatar
Stefan Monnier committed
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
* 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.


141
* Ultrix MIPS RISC CC, DEC AXP OSF/1 cc, IRIX 5.2 & NAG Fortran
Stefan Monnier's avatar
Stefan Monnier committed
142 143 144 145

symbol: irix

ccom: Error: foo.c, line 2: syntax error
146
cc: Severe: /src/Python-2.3.3/Modules/_curses_panel.c, line 17: Cannot find file <panel.h> ...
147
cc: Info: foo.c, line 27: ...
Stefan Monnier's avatar
Stefan Monnier committed
148 149 150 151
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
Daniel Pfeiffer's avatar
Daniel Pfeiffer committed
152
foo bar: baz.f, line 27: ...
Stefan Monnier's avatar
Stefan Monnier committed
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221


* 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.
222
{standard input}:27041: Warning: end of file not at end of a line; newline inserted
Stefan Monnier's avatar
Stefan Monnier committed
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269


* 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

270 271
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
272 273
delete the newline (probably needs M-x toggle-read-only), the file name will
automatically be reparsed, so that you can then go there.
274

Stefan Monnier's avatar
Stefan Monnier committed
275
Semantic error at line 528, column 5, file erosacqdb.pc:
276 277 278 279 280
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:
Stefan Monnier's avatar
Stefan Monnier committed
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346


* 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 </geroup>, got </group>
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


347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
* 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:} 


Stefan Monnier's avatar
Stefan Monnier committed
373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
* 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
400

401 402 403 404
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
405 406
Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12
Compilation finished at Thu Jul 21 15:02:15
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426


Copyright (c) 2004, 2005, 2006
Free software Foundation, Inc.

COPYING PERMISSIONS:

    This document is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA