From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.bugs Subject: bug#17296: [PATCH] SRFI-1 'length+' raises an error unless passed a proper or circular list Date: Sun, 01 Jun 2014 20:56:21 -0400 Message-ID: <87bnuc2kp6.fsf@yeeloong.lan> References: <878ur25thj.fsf@yeeloong.lan> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1401670648 29052 80.91.229.3 (2 Jun 2014 00:57:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 2 Jun 2014 00:57:28 +0000 (UTC) To: 17296-done@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Mon Jun 02 02:57:21 2014 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WrGYw-0006w2-VV for guile-bugs@m.gmane.org; Mon, 02 Jun 2014 02:57:19 +0200 Original-Received: from localhost ([::1]:42502 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WrGYw-0000VB-L1 for guile-bugs@m.gmane.org; Sun, 01 Jun 2014 20:57:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45716) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WrGYo-0000Ls-2n for bug-guile@gnu.org; Sun, 01 Jun 2014 20:57:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WrGYg-000299-Jo for bug-guile@gnu.org; Sun, 01 Jun 2014 20:57:10 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:41263) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WrGYg-000295-Gj for bug-guile@gnu.org; Sun, 01 Jun 2014 20:57:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WrGYg-0001oV-7I for bug-guile@gnu.org; Sun, 01 Jun 2014 20:57:02 -0400 Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-To: bug-guile@gnu.org Resent-Date: Mon, 02 Jun 2014 00:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 17296 X-GNU-PR-Package: guile X-GNU-PR-Keywords: patch Mail-Followup-To: 17296@debbugs.gnu.org, mhw@netris.org, mhw@netris.org Original-Received: via spool by 17296-done@debbugs.gnu.org id=D17296.14016705976921 (code D ref 17296); Mon, 02 Jun 2014 00:57:01 +0000 Original-Received: (at 17296-done) by debbugs.gnu.org; 2 Jun 2014 00:56:37 +0000 Original-Received: from localhost ([127.0.0.1]:40138 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WrGYH-0001nX-AL for submit@debbugs.gnu.org; Sun, 01 Jun 2014 20:56:37 -0400 Original-Received: from world.peace.net ([96.39.62.75]:59842 ident=hope9) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WrGYF-0001nN-GE for 17296-done@debbugs.gnu.org; Sun, 01 Jun 2014 20:56:35 -0400 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=yeeloong.lan) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1WrGY8-0003bG-Mr; Sun, 01 Jun 2014 20:56:28 -0400 In-Reply-To: <878ur25thj.fsf@yeeloong.lan> (Mark H. Weaver's message of "Fri, 18 Apr 2014 15:26:48 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:7474 Archived-At: Mark H Weaver writes: > According to the SRFI-1 spec, 'length+' must be passed a proper or > circular list. It should raise an error when passed a non-pair or an > improper list, but instead it returns #f in such cases: > > scheme@(guile-user)> (use-modules (srfi srfi-1)) > scheme@(guile-user)> (length+ 5) > $1 = #f > scheme@(guile-user)> (length+ 'x) > $2 = #f > scheme@(guile-user)> (length+ '(x . y)) > $3 = #f > > One side effect of this is that SRFI-1 'map', which uses 'length+' to > validate the arguments and find the shortest length, accepts improper > lists and non-pairs as arguments as long as one of the arguments is a > proper list: > > scheme@(guile-user)> (map + '(1 2) '(1 2 3 . 4)) > $4 = (2 4) > scheme@(guile-user)> (map + '() 2) > $5 = () > scheme@(guile-user)> (map + '(1) 2) > ERROR: In procedure cdr: > ERROR: In procedure cdr: Wrong type (expecting pair): 2 > > The attached patch fixes these problems. Pushed to stable-2.0, commit a5186f506f69ef8a8accd234ca434efd13f302c9. I'm closing this bug. Mark