GNU logs - #40855, boring messages


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#40855: integer-length 0 should be 1
Resent-From: Bengt Richter <bokr@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sat, 25 Apr 2020 21:17:01 +0000
Resent-Message-ID: <handler.40855.B.158784936828995 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 40855
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 40855 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
Reply-To: Bengt Richter <bokr@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.158784936828995
          (code B ref -1); Sat, 25 Apr 2020 21:17:01 +0000
Received: (at submit) by debbugs.gnu.org; 25 Apr 2020 21:16:08 +0000
Received: from localhost ([127.0.0.1]:60492 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jSS9f-0007Xa-W2
	for submit <at> debbugs.gnu.org; Sat, 25 Apr 2020 17:16:08 -0400
Received: from lists.gnu.org ([209.51.188.17]:39670)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bokr@HIDDEN>) id 1jSS9d-0007XQ-V0
 for submit <at> debbugs.gnu.org; Sat, 25 Apr 2020 17:16:06 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:51614)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <bokr@HIDDEN>) id 1jSS9d-0003NO-5E
 for bug-guile@HIDDEN; Sat, 25 Apr 2020 17:16:05 -0400
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,
 HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_LOW,SPF_PASS
 autolearn=unavailable autolearn_force=no version=3.4.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1)
 (envelope-from <bokr@HIDDEN>) id 1jSS9c-0007kL-20
 for bug-guile@HIDDEN; Sat, 25 Apr 2020 17:16:04 -0400
Received: from imta-37.everyone.net ([216.200.145.37]:52510
 helo=imta-38.everyone.net)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bokr@HIDDEN>) id 1jSS9b-0007gP-BF
 for bug-guile@HIDDEN; Sat, 25 Apr 2020 17:16:03 -0400
Received: from pps.filterd (localhost.localdomain [127.0.0.1])
 by imta-38.everyone.net (8.16.0.27/8.16.0.27) with SMTP id 03PLEpsE025276
 for <bug-guile@HIDDEN>; Sat, 25 Apr 2020 14:15:54 -0700
X-Eon-Originating-Account: GvtrA4CWB31DKDYPaXpK0cj_iskPsz-TZpyEirsFbqk
X-Eon-Dm: m0116293.ppops.net
Received: by m0116293.mta.everyone.net (EON-AUTHRELAY2 - 5a81c6e6) id
 m0116293.5e67f91c.41853c
 for <bug-guile@HIDDEN>; Sat, 25 Apr 2020 14:15:52 -0700
X-Eon-Sig: AQMHrIJepKiIKitHjAIAAAAB,25c1be2c3116f6932bf29f64b4041e7a
X-Eip: zypbXhRl0sG6PksXuoQmZDY18vZjJBQ87PQLQfYDzM8
Date: Sat, 25 Apr 2020 23:15:40 +0200
From: Bengt Richter <bokr@HIDDEN>
Message-ID: <20200425211540.GA10315@LionPure>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
User-Agent: Mutt/1.10.1 (2018-07-13)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676
 definitions=2020-04-25_13:2020-04-24,
 2020-04-25 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 malwarescore=0
 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1034
 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-2002250000
 definitions=main-2004250186
Received-SPF: pass client-ip=216.200.145.37; envelope-from=bokr@HIDDEN;
 helo=imta-38.everyone.net
X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/25 17:15:54
X-ACL-Warn: Detected OS   = Linux 3.x [generic]
X-Received-From: 216.200.145.37
X-Spam-Score: -1.1 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.1 (--)

I'm hoping this is the right place to report this bug :)

To reproduce, guile -c '(format #t "~s\n" (integer-length 0))'
Expected result if correct: 1
Observed result: 0

The following is to support the opinion that 1 is the correct result,
and to explore how integer "length" generalizes to other radixes and
also signed number writing other than sign-magnitude.

Feel free to skip the following if of no interest :)

The tl;dr is:
    (integer-length 0) should agree with:
    (string-length (number->string 0 2)) =-> 1
        -- and not:   (integer-length 0) =-> 0

The integer length in bits (short for binary digits :)
is the number digits required to write the integer value
in conventional big-endian digit order, signifying coefficients
of successive powers of the radix used.

This applies irrespective of the radix. Thus "11" in decimal is
  "1*10^1 + 1*10^0"
or hex is
  "11*16^0"
or binary is
  "1*2^1 + 1*2^0"

So, the crux of the argument is that it takes one digit to write
either 1 or 0:
--8<---------------cut here---------------start------------->8---
Inputs: 1 (radix 10, decimal value unsigned 1) (output radix 2)
  Number as radix-2 glyph{0..1} string (unsigned)
  "1"
  Number as glyphs representing coefficient values of radix polynomial for number value:
  ("1")
  (1) -- corresponding coefficient values
  Number as polynomial expression:
  "1*2^0"
  (1) -- corresponding term values
  1 -- sum of term values
  The following should be equal to guile's (integer-length 1):
  1 integer-digit (radix 2)
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
Inputs: 0 (radix 10, decimal value unsigned 0) (output radix 2)
  Number as radix-2 glyph{0..1} string (unsigned)
  "0"
  Number as glyphs representing coefficient values of radix polynomial for number value:
  ("0")
  (0) -- corresponding coefficient values
  Number as polynomial expression:
  "0*2^0"
  (0) -- corresponding term values
  0 -- sum of term values
  The following should be equal to guile's (integer-length 0):
  1 integer-digit (radix 2)
--8<---------------cut here---------------end--------------->8---

BTW, this works for signed numbers as well, if you use a complement
representation making the sign digit 0 for positive and radix-1 for
negative (thus 0 and 1 for radix 2, and e.g. 0 and f for radix 16).

Decimal is just another radix:

Inputs: -11 (radix 10, decimal value minus 11) (output radix 10)
  Number as radix-10 glyph{0..9} string (radix-complement -sign prefix)
  "989" (complement notation)
   ^--(note that 0 and "9" (radix10 -1) are sign digits for 0 and -1 coefficient values in the polynomial)
  Number as glyphs representing coefficient values of radix polynomial for number value:
  ("-1" "8" "9")
  (-1 8 9) -- corresponding coefficient values
  Number as polynomial expression:
  "-1*10^2 + 8*10^1 + 9*10^0"
  (-100 80 9) -- corresponding term values
  -11 -- sum of term values
  Tip: for guile integer-length, enter unsigned value with output radix 2
  3 integer-digits (radix 10)

The extreme for this version is radix 36:

Inputs: -11 (radix 36, decimal value minus 37) (output radix 36)
  Number as radix-36 glyph{0..z} string (radix-complement -sign prefix)
  "zyz" (complement notation)
   ^--(note that 0 and "z" (radix36 -1) are sign digits for 0 and -1 coefficient values in the polynomial)
  Number as glyphs representing coefficient values of radix polynomial for number value:
  ("-1" "y" "z")
  (-1 34 35) -- corresponding coefficient values
  Number as polynomial expression:
  "-1*36^2 + 34*36^1 + 35*36^0"
  (-1296 1224 35) -- corresponding term values
  -37 -- sum of term values
  Tip: for guile integer-length, enter unsigned value with output radix 2
  3 integer-digits (radix 36)

I got a little carried away exploring the complement notation, and wrote
a thing to explain the meanings. Please copy snip to int2poly and chmod 755 it.
Then run once without args for usage help.

I hope it will convince you that guile (integer-length 0) should be 1 ;-)

--8<---------------cut here---------------start------------->8---
#!/usr/bin/env -S guile -e main -s
!#
;; run without arguments for usage, or read below
;; int2poly-0.1.0 -- 2020-04-21 

(use-modules (ice-9 format)
	     (ice-9 regex))

(define self (basename (car (command-line))))
(define verbose #f)

(define (usage)
  (begin
    (let*((selfxxx (basename (car (command-line)))))
      (begin
	(format (current-error-port)
		"Usage:
        ~a  [-v ] | NUMSTR  [out-radix] [inp-radix]
        where *-radix are entered in decimal, and
        out-radix defaults to 2 and inp-radix defaults to 10,
        but may set independently to 2..36 to demo generality.

        -v for verbose output explanations

        NUMSTR will be written in radix digits representing
        polynomial coefficients, which is presented in series terms
        and evaluated back to the original number.

        The NUMSTR character set is the same as for (number->string radix)
        but could be any chosen set of distinct glyphs for values {0..<radix -1>}.

        guile integer-length can be considered a special case of
        coefficient count for radix 2, which is  printed in the last
        line of output as \"N integer-digits (radix N)\n"
		self ))
      (if (= (integer-length 0) 0)
	  (begin
	  (format #t "\nGuile[1] bug:
    (integer-length 0) should agree with:
    (string-length (number->string 0 2)) =-> ~s
        -- and not:   (integer-length 0) =-> ~s
    And it should agree with integer-digits for ~a 1 and ~a 0
    Try ~a 0, and note that it is 1 for any radix 2-36
    and numstr is 10 for ~a radix radix also for any radix ;-)\n\n"
		  (string-length (number->string 0 2))
		  (integer-length 0)
		  self self self self)
	  (display "[1] ----\n")
	  (system "guile -v")
	  (display "----\n ")
	  )))))

(define (main argl)
  (begin
    (set! argl (cdr argl))
    (if (not (pair? argl)) (begin (usage) (exit)))
    (if (string=? "-v" (car argl)) (begin (set! verbose #t) (set! argl (cdr argl))))
    (if (not (pair? argl)) (begin (usage) (exit)))
    (let*((matstr (string-match "[0-9a-z]+" (string-join argl " "))) ;; for <prefix><substring><suffix>
	  (sgnstr (match:prefix matstr))    ;; [<sign>]
	  (absstr (match:substring matstr)) ;;         <inpnum> [<out-radix>] [<in-radix>] 

	  (matst2 (string-match "[0-9]+" (match:suffix matstr))) ;; demo radix (spec in decimal)  [<out-radix>] [<inp-radix>]
          (radix (if matst2 (string->number (match:substring matst2)) 2)) ;; default demo radix is 2

	  (matst3 (if matst2 (string-match "[0-9]+" (match:suffix matst2)) #f)) ;;                                [<inp-radix>]
	  (iradix (if matst3 (string->number (match:substring matst3)) 10)) ;; default input radix 10

	  (absnum (string->number absstr iradix)) ;; abs math value of input
	  (abswid (string-length (number->string absnum radix)))
	  (radixp (integer-expt radix (+ 1 abswid))) ;; 2nd bit above msb of absnum
	  (usenum (if (string=? "-" sgnstr) (- radixp absnum) (+ radixp absnum))) ;; 10abs or 10000-abs
	                                                                          ;;          _1xyx
	                                                                          ;;      or  10000 if abs=0
	  (numstr1 (number->string usenum radix))
	  (numoff (if (string=? "" sgnstr)
		      2
		      (- (string-length numstr1) (+ 1 abswid))))

	  (numstr (substring numstr1 numoff))
	  (coeffs (map match:substring  (list-matches "(.)" numstr)))
	  (coeffs (if (string=? "" sgnstr)
		      coeffs
		      (begin
			(if (char=? (string-ref numstr 0)
				    (string-ref (number->string (- radix 1) radix) 0))
			    (cons "-1" (cdr coeffs))
			    coeffs))))
	  (coeffv (map (lambda (s) (string->number s radix)) coeffs))
	  (ncoeff (length coeffs))
	  (terms (string-join (reverse (map (lambda (coeff power)
				 (begin (format #f "~d*~d^~d" coeff radix power))) (reverse coeffv) (iota ncoeff))) " + "))
	  (termv (reverse (map (lambda (coeff power)
				 (begin (* coeff (integer-expt radix power)))) (reverse coeffv) (iota ncoeff))))
	  (polyv (apply + termv))

	  (signword (begin (cond
			    ((string=? "" sgnstr) "unsigned")
			    ((string=? "+" sgnstr) "plus")
			    ((string=? "-" sgnstr) "minus")
			    (else (throw 'int2poly "bad sign:" sgnstr)))))
	  (sgnnote (begin (cond
			    ((string=? "" sgnstr) "(unsigned)")
			    ((string=? "+" sgnstr) "(radix-complement +sign prefix)")
			    ((string=? "-" sgnstr) "(radix-complement -sign prefix)")
			    (else (throw 'int2poly "bad sign:" sgnstr)))))
	  )
      (begin
	(format #t "Inputs: ~a~a (radix ~s, decimal value ~a ~s) (output radix ~s)\n" sgnstr absstr iradix signword absnum radix)
        (if verbose (format #t "  Number as radix-~s glyph{~a..~a} string ~a\n"
	 		    radix  (number->string 0 radix) (number->string (- radix 1) radix)  sgnnote))
	(format #t "  ~s~a\n" numstr (if (string=? "" sgnstr) "" " (complement notation)"))
	(if (and verbose (not (string=? sgnstr "")))
	    (format #t "   ^--(note that 0 and ~s (radix~a -1) are sign digits for 0 and -1 coefficient values in the polynomial)\n"
							     (number->string (- radix 1) radix) radix))
	(format #t "~a  ~s\n" (if verbose "  Number as glyphs representing coefficient values of radix polynomial for number value:\n" "") coeffs)
	(format #t "  ~s~a\n" coeffv (if verbose  " -- corresponding coefficient values" ""))
	(format #t "~a  ~s\n" (if verbose "  Number as polynomial expression:\n" "") terms)
	(format #t "  ~s~a\n" termv (if verbose " -- corresponding term values" ""))
	(format #t "  ~s~a\n" polyv (if verbose " -- sum of term values" ""))
	(if verbose
	    (if (and (= radix 2) (string=? sgnstr ""))
		(format #t "  The following should be equal to guile's (integer-length ~s):\n" absnum)
		(format #t "  Tip: for guile integer-length, enter unsigned value with output radix 2\n")))
	(format #t "  ~s integer-digit~a (radix ~a)\n" ncoeff (if (> ncoeff 1) "s" "") radix))
      )))
--8<---------------cut here---------------end--------------->8---

-- 
Regards,
Bengt Richter




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Bengt Richter <bokr@HIDDEN>
Subject: bug#40855: Acknowledgement (integer-length 0 should be 1)
Message-ID: <handler.40855.B.158784936828995.ack <at> debbugs.gnu.org>
References: <20200425211540.GA10315@LionPure>
X-Gnu-PR-Message: ack 40855
X-Gnu-PR-Package: guile
Reply-To: 40855 <at> debbugs.gnu.org
Date: Sat, 25 Apr 2020 21:17:01 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-guile@HIDDEN

If you wish to submit further information on this problem, please
send it to 40855 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
40855: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D40855
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 25 Apr 2020 23:28:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 25 19:28:17 2020
Received: from localhost ([127.0.0.1]:60552 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jSUDY-0002Uf-Ut
	for submit <at> debbugs.gnu.org; Sat, 25 Apr 2020 19:28:17 -0400
Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:33261)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <leo@HIDDEN>) id 1jSUDR-0002UA-Ij
 for control <at> debbugs.gnu.org; Sat, 25 Apr 2020 19:28:09 -0400
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
 by mailout.west.internal (Postfix) with ESMTP id 0147D1990;
 Sat, 25 Apr 2020 19:28:03 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Sat, 25 Apr 2020 19:28:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name;
 h=date:from:to:message-id:mime-version:content-type; s=mesmtp;
 bh=5qxWaFsJyu8eyWny7fEgJ+z1PzLZ0w/NCFGyDz1lCSk=; b=tSZQ0aFjP0nY
 B3geHw12MJsAGPedexb3yXoFcQ8yIsn4OjI8/x11Scuy4HxXCTobxIkHMsiETZ9b
 7NDagPE5/31g4NDkRIRxWJVSX25IQpVa33kCq2mIKuCwaEYi/FlU+S5MBkQdsrup
 TGws7z7Ity9dGXFDcnW78AtWwB+Wr0I=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=content-type:date:from:message-id
 :mime-version:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
 :x-sasl-enc; s=fm2; bh=5qxWaFsJyu8eyWny7fEgJ+z1PzLZ0w/NCFGyDz1lC
 Sk=; b=sOhri/J+T+QZ+Yk9Ck/5sS0Jx9KAANAGXR7MEeCtagUVJG9EpK6hOrsYW
 aZIId+urvuvh/k/rYarM1UaxSX+0dkDKw4aNmAhqAy9xtc5Do4RR2/dt396OjP6N
 mSnT1CjhKer+JyrCON3LiSYcjTtDzyqa3WVRWFdWYZr53Nri+nc4R1LyYJYYOdfj
 Rdrzk+6fupE8mwHYsam1QSkSymX3j0LEMvKj4IHmD/jXcA63qDEThxiumpOAdTue
 Q8+mzEn3obSL2S6AkQ08AWqA4PzgAu41iMLHpXm9ohd7VbfqNUlKxFdulWd8AgvF
 P0EwE/QWMX3DwiIT1wT18EpK7+PWQ==
X-ME-Sender: <xms:g8ekXsSHZW2TqyZ6jNd5SbnBg4oXTkHG2_zV1ehB2KoRGC9HCHuTkg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrheehgddvudcutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecugfhmphhthicushhusghjvggtthculddutddmnecujf
 gurhepfffhvffkgggtugesthdtredttddtvdenucfhrhhomhepnfgvohcuhfgrmhhulhgr
 rhhiuceolhgvohesfhgrmhhulhgrrhhirdhnrghmvgeqnecukfhppeejiedruddvgedrud
 efkedrieefnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhho
 mheplhgvohesfhgrmhhulhgrrhhirdhnrghmvg
X-ME-Proxy: <xmx:g8ekXt0pmUU2CZImRXf46FOXkRe53jMaIGSnqRGQJ8p5_nRney5tmw>
 <xmx:g8ekXq9G2PEAU8SVb1NzTuKBhpQIqPkpFGm-dRiMx12skT-4D2vZvQ>
 <xmx:g8ekXpaw01SVETQhode3MO9SC6OviKWZXd5FlspjtOTO_Vv55HmWtQ>
 <xmx:g8ekXtrUupsC6lj5h4XIqWs3WOlegOtozYIzl-I3C7N8iM54TZq5qw>
Received: from localhost (c-76-124-138-63.hsd1.pa.comcast.net [76.124.138.63])
 by mail.messagingengine.com (Postfix) with ESMTPA id 5B19B328005A
 for <control <at> debbugs.gnu.org>; Sat, 25 Apr 2020 19:28:03 -0400 (EDT)
Date: Sat, 25 Apr 2020 19:28:01 -0400
From: Leo Famulari <leo@HIDDEN>
To: control <at> debbugs.gnu.org
Message-ID: <20200425232801.GB2829@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Spam-Score: 1.3 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  merge 40744 40855 
 Content analysis details:   (1.3 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: famulari.name]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [64.147.123.20 listed in list.dnswl.org]
 1.8 MISSING_SUBJECT        Missing Subject: header
 0.2 NO_SUBJECT             Extra score for no subject
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.3 (/)

merge 40744 40855




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#40855: integer-length 0 should be 1
Resent-From: <tomas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sun, 26 Apr 2020 08:24:02 +0000
Resent-Message-ID: <handler.40855.B.15878894145322 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 40855
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 40855 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.15878894145322
          (code B ref -1); Sun, 26 Apr 2020 08:24:02 +0000
Received: (at submit) by debbugs.gnu.org; 26 Apr 2020 08:23:34 +0000
Received: from localhost ([127.0.0.1]:60816 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jScZZ-0001Nl-U4
	for submit <at> debbugs.gnu.org; Sun, 26 Apr 2020 04:23:34 -0400
Received: from lists.gnu.org ([209.51.188.17]:39147)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <tomas@HIDDEN>) id 1jScZX-0001Nc-MJ
 for submit <at> debbugs.gnu.org; Sun, 26 Apr 2020 04:23:32 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:32950)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <tomas@HIDDEN>) id 1jScZW-0007UT-1o
 for bug-guile@HIDDEN; Sun, 26 Apr 2020 04:23:30 -0400
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,
 DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,SPF_PASS,
 URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1)
 (envelope-from <tomas@HIDDEN>) id 1jScZS-0005BQ-0c
 for bug-guile@HIDDEN; Sun, 26 Apr 2020 04:23:29 -0400
Received: from mail.tuxteam.de ([5.199.139.25]:49246)
 by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128)
 (Exim 4.90_1) (envelope-from <tomas@HIDDEN>) id 1jScZR-0004b7-3F
 for bug-guile@HIDDEN; Sun, 26 Apr 2020 04:23:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de;
 s=mail; 
 h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:To:Date;
 bh=YVl9KG+t8jdTnuXVBOhohlBazRYdA++lZT1vG0GaChA=; 
 b=dujlECxGvVY+kZIT0FoyJid22t0WZ9yvgnnjsGFh5ifyprSTg2NkZe+WzcecTSo99vC+l2dCeC/cAvb/39MsS9QBCh/XO3jOGmOw2785PNSyqPUcLpocCu1sTYmyMpajThBZQyocCCBJxrkaPVehaTCD9+NivTGUEJgXNbxoc+txiNAnSOGBJ83c/h4Up7kAA655ebbHUroo/i9o8ZO+z5T0AHBVjFNn3dHjW87cf2XKNlIoccl783EaiSFdddbaadgjzwn4n7cW7DIiCeP79RVyFdOiLXkn1geG4PwXeF7XD5Sn0f6z2A1n1KwROynR07oMp2V+SzPP5Rzx0yPdxA==;
Received: from tomas by mail.tuxteam.de with local (Exim 4.80)
 (envelope-from <tomas@HIDDEN>) id 1jScZH-0001H1-Fm
 for bug-guile@HIDDEN; Sun, 26 Apr 2020 10:23:15 +0200
Date: Sun, 26 Apr 2020 10:23:15 +0200
Message-ID: <20200426082315.GA3611@HIDDEN>
References: <20200425211540.GA10315@LionPure>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
 protocol="application/pgp-signature"; boundary="cNdxnHkX5QqsyA0e"
Content-Disposition: inline
In-Reply-To: <20200425211540.GA10315@LionPure>
User-Agent: Mutt/1.5.21 (2010-09-15)
From: <tomas@HIDDEN>
Received-SPF: pass client-ip=5.199.139.25; envelope-from=tomas@HIDDEN;
 helo=mail.tuxteam.de
X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/26 04:23:15
X-ACL-Warn: Detected OS   = Linux 3.1-3.10 [fuzzy]
X-Received-From: 5.199.139.25
X-Spam-Score: -1.3 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


--cNdxnHkX5QqsyA0e
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Apr 25, 2020 at 11:15:40PM +0200, Bengt Richter wrote:
> I'm hoping this is the right place to report this bug :)
>=20
> To reproduce, guile -c '(format #t "~s\n" (integer-length 0))'
> Expected result if correct: 1
> Observed result: 0
>=20
> The following is to support the opinion that 1 is the correct result,
> and to explore how integer "length" generalizes to other radixes and
> also signed number writing other than sign-magnitude.

Hm. This is a tough one. The problem is that there are several
possible extensions to zero, and no one is quite right. For example,
one could interpret (integer-length n) as one plus the base-two
logarithm of n (well, its integer part). Or, in mathy jargon,
1 + floor(log2 n).

In this case, the integer-length of zero would be minus infinity!

And for negative n, we'd be in hot water (or in complex analysis or
something :)

Thus, the simple definition given in the doc "For positive N this
is how many bits to the most significant one bit" looks like a wise
choice to me -- and this leads to a value of 0 for 0 (or some
infinity, if you keep searching for the one bit you'll never find,
if you insist to find an one.

Cheers
-- tom=C3=A1s

--cNdxnHkX5QqsyA0e
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAl6lRPMACgkQBcgs9XrR2kZzrQCeKg8s0p9kgyf9DLO6FQmYHyTu
CBkAn198RkVkHMnox9y8obE4AXZJtUBr
=arWN
-----END PGP SIGNATURE-----

--cNdxnHkX5QqsyA0e--




Message received at fakecontrol@fakecontrolmessage:


Received: (at fakecontrol) by fakecontrolmessage;
To: internal_control <at> debbugs.gnu.org
From: Debbugs Internal Request <help-debbugs@HIDDEN>
Subject: Internal Control
Message-Id: Did not alter fixed versions and reopened.
Date: Tue, 28 Apr 2020 18:38:01 +0000
User-Agent: Fakemail v42.6.9

# This is a fake control message.
#
# The action:
# Did not alter fixed versions and reopened.
thanks
# This fakemail brought to you by your local debbugs
# administrator



Last modified: Tue, 28 Apr 2020 18:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.