Re: Verbosity Control

From: Philipp A. Hartmann <philipp.hartmann@offis.de>
Date: Fri Dec 03 2010 - 09:59:43 PST

John, Bishnupriya,

in general, I'm in favour of adding the verbosity proposal to the LRM.

I did a review of the refined proposal, sent by Bishnupriya earlier
today and found a couple of potential issues, though.

1) position of verbosity parameter / SC_IGNORE_VERBOSITY

  I think, if we choose an overload instead of a default parameter, we
  don't need the SC_IGNORE_VERBOSITY symbol. If we include it anyhow,
  we should define its meaning.

  Personally, I'd prefer the overload over the default parameter for no
  real technical reason.

2) sc_module::sc_report, sc_core::sc_report

   This is most likely an oversight, but there is already an
   sc_core::sc_report class defined in the LRM. While we technically
   _can_ overload the class name sc_core::sc_report with a function,
   I'd consider this quite bad style. This would also break any
   user-defined catch clauses, I think.

   So we need another name here, I guess.
     sc_do_report
     sc_create_report
     sc_make_report
     ...

3) SC_REPORT_XXX_V

   Bishnupriya says:
   "the macros expand to invoke the function sc_report(); if the macros
    are invoked from global scope, sc_report() will resolve to the
    global function, and if invoked from module scope, sc_report() will
    resolve to the module's sc_report() function;"

   I don't like this macro definition to perform an unqualified call to
   sc_report(). This won't work on the global scope, if the user only
   includes <systemc> (which is recommended, I guess). Secondly, it
   will resolve to the wrong function, if sc_module is inherited
   indirectly from a templated base class (sice sc_report is not a
   dependent name).

With 2) and 3), I think the module-specific verbosity might be too late
to include for now. I would vote to skip this and only add a global
function "sc_do_report" (better name?), with the signature:

namespace sc_core {
  void
  sc_do_report( sc_severity severity,
                const char* msg_type,
                const char* msg,
                int verbosity,
                const char* file = NULL,
                int line = 0 );
}

where file and line are optional for convenience.

Greetings from Oldenburg,
  Philipp

On 03/12/10 16:19, john.aynsley@doulos.com wrote:
> All,
>
> Do we want to get verbosity control into 1666? I ask because we only have a few days to go before the deadline, so everybody would have to accept the Cadence proposal more-or-less as it stands; we are not going to have time to debate the finer points. Would everyone please check out the proposal and "vote" yes or no.
>
> Thanks,
>
> John A
>
>
>

-- 
Philipp A. Hartmann
Hardware/Software Design Methodology Group
OFFIS Institute for Information Technology
R&D Division Transportation · FuE-Bereich Verkehr
Escherweg 2 · 26121 Oldenburg · Germany · http://www.offis.de/
Phone/Fax: +49-441-9722-420/282 · PGP: 0x9161A5C0 · Skype: phi.har

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Fri Dec 3 10:00:24 2010

This archive was generated by hypermail 2.1.8 : Fri Dec 03 2010 - 10:00:26 PST