Subject: bug#18299: closed (Re: bug#18299: Analyzer issues warning with ~:p expansion of ‘format’)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 26 Aug 2014 21:43:03 +0000

Your bug report

#18299: Analyzer issues warning with ~:p expansion of ‘format’

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
18299: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18299
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#18299: Analyzer issues warning with ~:p expansion of‘format’
From: [email-masked] (Ludovic Courtès)
To: Frank Terbeck <[email-masked]>
Cc: [email-masked]
Date: Tue, 26 Aug 2014 23:42:22 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Frank Terbeck <[email-masked]> skribis:

> I was trying this:
>
>   (use-modules (ice-9 format))
>   (format #t "~d block~:p~%" 1)   ;; and 0, and 2 etc...
>   
> This triggers a warning about the format-string argument count:
>
>   ;;; <stdin>:3:0: warning: "~d block~:p~%": wrong number of `format'
>       arguments: expected 2, got 1

I believe commit 8ac39b3 fixes it.  It will be in 2.0.12.

Thanks!

Ludo’.

Subject: Analyzer issues warning with ~:p expansion of ‘format’
From: Frank Terbeck <[email-masked]>
To: [email-masked]
Date: Wed, 20 Aug 2014 14:26:34 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guile developers,

I was trying this:

  (use-modules (ice-9 format))
  (format #t "~d block~:p~%" 1)   ;; and 0, and 2 etc...
  
This triggers a warning about the format-string argument count:

  ;;; <stdin>:3:0: warning: "~d block~:p~%": wrong number of `format'
      arguments: expected 2, got 1

The manual says this about "~:p":

  ~:p re-uses the preceding argument instead of taking a new
  one, which can be convenient when printing some sort of count.

      (format #t "~d cat~:p" 9)   ⊣ 9 cats
      (format #t "~d pupp~:@p" 5) ⊣ 5 puppies

I was looking at the code, and it appears that the warning is triggered
in "module/language/tree-il/analyze.scm" in ‘format-analysis’ and more
precisely in ‘check-format-args’, due to the lack of support for "~:p"
and presumably "~:@p" in ‘format-string-argument-count’.

Regards, Frank

-- 
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925