Compiler warnings

Hakan Stenholm <>
Tue Jan 15 13:37:45 CET 2002


I spent last week hunting stupid io_lib:format/2 and io:format/2 related bugs in 
the AXD301 code, the bugs where very simple - there was a missmatch between the 
number of arguments specified in the formating string and the number of 
parameters supplied in the parameter list e.g. io:format("~p ~p", [1]).

The current io code generates exit signals when this ocures, which in itself is 
good, as we get to know that things are wrong, the problem is that I had to 
restart the simulated AXD301 enviroment each time I found such an error - this 
takes a lot of time, so I would like to propouse that the compiler should check 
for these kind of missmatches.
There are several advantages to this:

* the fault is caught earlier, which means it will take less time to test and
  fix the error
  
* its easy to get inconsistency in the format string compared to the parameter
  list if io code is updated or 'copy & paste' is done

Notes:

* we should probably not issue a error but rather a warning about strange 
  looking code, othervise we would have to be able to verify things like:

  f(Args) ->
    io:format("~p ~p ~p",Args).
    
  or
 
  ...
  Args = [1,2,3,4],
  io:format("~p~p~p~p",Args),
  ...  
  




More information about the erlang-questions mailing list