[tbnl-devel] Re: TBNL/SBCL 0.9.16 problems

Juho Snellman jsnell at iki.fi
Tue Sep 5 17:37:44 UTC 2006


<edi at agharta.de> wrote:
> Hmm, SBCL's error message is not very helpful, I'm afraid.  My /guess/
> is that it looks at the macro-expansion of REGISTER-GROUPS-BIND and
> infers that NAME or INDEX-STRING could in theory be NIL and thus
> aren't valid arguments for STRING= or PARSE-INTEGER.  However, in this
> particular case it is perfectly clear that his won't happen - the body
> of the macro will only be executed if there's a match; and if there's
> a match, then all registers will match as well.
> 
> I'd propose that you ask the SBCL experts if my guess is right and if
> so how one can convince the compiler to be a bit less overzealous.

That guess is right. A couple of ways to decrease the zeal:

  * Just muffle the warning by adding the following declaration at the
    start of the function:

    #+sbcl (declare (sb-ext:muffle-conditions warning))
    
  * Ensure that the compiler also knows that it really can't happen by
    replacing:
  
     (when (string= name parameter-name)
       (parse-integer index-string))
       
    With:
       
     (when (and (string= name parameter-name)
                index-string)
       (parse-integer index-string))

-- 
Juho Snellman




More information about the Tbnl-devel mailing list