X-Loop: help-debbugs@HIDDEN Subject: bug#26106: Defining a method named '-' with one parameter Resent-From: Alejandro Sanchez <hiphish@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Wed, 15 Mar 2017 13:36:01 +0000 Resent-Message-ID: <handler.26106.B.148958494114610 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 26106 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 26106 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-guile@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.148958494114610 (code B ref -1); Wed, 15 Mar 2017 13:36:01 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2017 13:35:41 +0000 Received: from localhost ([127.0.0.1]:56418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1co95Z-0003na-Fn for submit <at> debbugs.gnu.org; Wed, 15 Mar 2017 09:35:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:57807) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <hiphish@HIDDEN>) id 1co95W-0003nI-O9 for submit <at> debbugs.gnu.org; Wed, 15 Mar 2017 09:35:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <hiphish@HIDDEN>) id 1co95L-0005Bk-Up for submit <at> debbugs.gnu.org; Wed, 15 Mar 2017 09:35:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:50010) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <hiphish@HIDDEN>) id 1co95L-0005Bg-SN for submit <at> debbugs.gnu.org; Wed, 15 Mar 2017 09:35:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48755) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <hiphish@HIDDEN>) id 1co95K-0000PE-QB for bug-guile@HIDDEN; Wed, 15 Mar 2017 09:35:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <hiphish@HIDDEN>) id 1co95H-0005Ai-O1 for bug-guile@HIDDEN; Wed, 15 Mar 2017 09:35:26 -0400 Received: from lb1.openmailbox.org ([5.79.108.160]:39390 helo=mail.openmailbox.org) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from <hiphish@HIDDEN>) id 1co95H-00059g-G9 for bug-guile@HIDDEN; Wed, 15 Mar 2017 09:35:23 -0400 Received: by mail.openmailbox.org (Postfix, from userid 20002) id 9E1C2501F91; Wed, 15 Mar 2017 14:35:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=openmailbox.org; s=openmailbox; t=1489584920; bh=kciHN1U75kjh7/uxXa4uZ1rzOM+MU8JAsXE4SQwzfa4=; h=From:Subject:Date:To:From; b=ZBeqhOJsEGieyEWNNbvIUIdbU1U8sdb4AcCoYA1kaYlRTY291E2bBqc2lbpTfyn9G dfZnLCyCpae0uHKYMQNzmQUr7LUAe4UVbTC13yLdTbO+ZHTPescmCSmdBfbT53fY/T NQP2IcBwzZTJTvr9ZxhfMhM5TClkgVrCWFqaJG9c= From: Alejandro Sanchez <hiphish@HIDDEN> DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=openmailbox.org; s=openmailbox; t=1489584920; bh=kciHN1U75kjh7/uxXa4uZ1rzOM+MU8JAsXE4SQwzfa4=; h=From:Subject:Date:To:From; b=ZBeqhOJsEGieyEWNNbvIUIdbU1U8sdb4AcCoYA1kaYlRTY291E2bBqc2lbpTfyn9G dfZnLCyCpae0uHKYMQNzmQUr7LUAe4UVbTC13yLdTbO+ZHTPescmCSmdBfbT53fY/T NQP2IcBwzZTJTvr9ZxhfMhM5TClkgVrCWFqaJG9c= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Message-Id: <F7542921-8F39-4B4E-B8ED-B6E8F53DAD10@HIDDEN> Date: Wed, 15 Mar 2017 14:35:18 +0100 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) X-Mailer: Apple Mail (2.3124) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) 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: -4.0 (----) If I define a method named =E2=80=98-=E2=80=98 which only takes in one = parameter, the expression =E2=80=98(- v)=E2=80=99 gets rewritten to = =E2=80=98(- 0 v)=E2=80=99. Here is a minimal example: (use-modules (oop goops)) =09 (define-class <vector2> () (x #:init-value 0 #:getter get-x #:init-keyword #:x) (y #:init-value 0 #:getter get-y #:init-keyword #:y)) =09 (define-method (* (n <number>) (v <vector2>)) (make <vector2> #:x (* n (get-x v)) #:y (* n (get-y v)))) =09 (define-method (- (v <vector2>)) (* -1 v)) =09 (define v (make <vector2> #:x 1 #:y 2)) (* -1 v) ; Works fine (- v) ; Throws error Here is the error message: scheme@(guile-user)> (- v) ERROR: In procedure scm-error: ERROR: No applicable method for #<<generic> - (2)> in call (- 0 = #<<vector2> 10a8e4020>) =09 Entering a new prompt. Type `,bt' for a backtrace or `,q' to = continue. scheme@(guile-user) [1]> ,bt In current input: 23:0 2 (_) In oop/goops.scm: 1438:4 1 (cache-miss 0 #<<vector2> 10a8e4020>) In unknown file: 0 (scm-error goops-error #f "No applicable method for = ~S in call ~S" (#<<generic> - (2)> (- 0 #<<vec=E2=80=A6>)) #)
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: Alejandro Sanchez <hiphish@HIDDEN> Subject: bug#26106: Acknowledgement (Defining a method named '-' with one parameter) Message-ID: <handler.26106.B.148958494114610.ack <at> debbugs.gnu.org> References: <F7542921-8F39-4B4E-B8ED-B6E8F53DAD10@HIDDEN> X-Gnu-PR-Message: ack 26106 X-Gnu-PR-Package: guile Reply-To: 26106 <at> debbugs.gnu.org Date: Wed, 15 Mar 2017 13:36:02 +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 26106 <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 26106: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D26106 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#26106: Defining a method named '-' with one parameter Resent-From: Andy Wingo <wingo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Wed, 19 Apr 2017 15:01:02 +0000 Resent-Message-ID: <handler.26106.B26106.14926140369488 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 26106 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: Alejandro Sanchez <hiphish@HIDDEN> Cc: 26106 <at> debbugs.gnu.org Received: via spool by 26106-submit <at> debbugs.gnu.org id=B26106.14926140369488 (code B ref 26106); Wed, 19 Apr 2017 15:01:02 +0000 Received: (at 26106) by debbugs.gnu.org; 19 Apr 2017 15:00:36 +0000 Received: from localhost ([127.0.0.1]:57041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1d0r5v-0002Sy-H2 for submit <at> debbugs.gnu.org; Wed, 19 Apr 2017 11:00:35 -0400 Received: from pb-sasl1.pobox.com ([64.147.108.66]:59204 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <wingo@HIDDEN>) id 1d0r5u-0002Sr-Gg for 26106 <at> debbugs.gnu.org; Wed, 19 Apr 2017 11:00:34 -0400 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 2DF1381BCA; Wed, 19 Apr 2017 11:00:33 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=kWhDKxxiyflh LDkKfbWd0mKOWyM=; b=pMM4Eyi9ALliR+BUQvjXpALmvzyOW9ZEUBOBIQP6lCM9 DkHck4+yhK2CG//SDnXa5Xrb/iuX9AbTID7OeCTw82bnGQjpJfj2o3YQyJ+gWsFc 0YOMm8PLWqKATQnbPllpSh/HRULl1OUUBC7AORlTv51CDyRBYb8Oe/zEFxmTguY= Received: from pb-sasl1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 2619A81BC9; Wed, 19 Apr 2017 11:00:33 -0400 (EDT) Received: from rusty (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id 598C881BC8; Wed, 19 Apr 2017 11:00:32 -0400 (EDT) From: Andy Wingo <wingo@HIDDEN> References: <F7542921-8F39-4B4E-B8ED-B6E8F53DAD10@HIDDEN> Date: Wed, 19 Apr 2017 17:00:25 +0200 In-Reply-To: <F7542921-8F39-4B4E-B8ED-B6E8F53DAD10@HIDDEN> (Alejandro Sanchez's message of "Wed, 15 Mar 2017 14:35:18 +0100") Message-ID: <87vaq0l9x2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Pobox-Relay-ID: EF708538-2510-11E7-B362-07D2064AB293-02397024!pb-sasl1.pobox.com X-Spam-Score: 0.7 (/) 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.7 (/) On Wed 15 Mar 2017 14:35, Alejandro Sanchez <hiphish@HIDDEN> write= s: > If I define a method named =E2=80=98-=E2=80=98 which only takes in one pa= rameter, the expression =E2=80=98(- v)=E2=80=99 gets rewritten to =E2=80=98= (- 0 v)=E2=80=99. Here is a minimal example: > > (use-modules (oop goops)) >=20=09 > (define-class <vector2> () > (x #:init-value 0 #:getter get-x #:init-keyword #:x) > (y #:init-value 0 #:getter get-y #:init-keyword #:y)) >=20=09 > (define-method (* (n <number>) (v <vector2>)) > (make <vector2> #:x (* n (get-x v)) #:y (* n (get-y v)))) >=20=09 > (define-method (- (v <vector2>)) > (* -1 v)) >=20=09 > (define v (make <vector2> #:x 1 #:y 2)) > (* -1 v) ; Works fine > (- v) ; Throws error > > Here is the error message: > > scheme@(guile-user)> (- v) > ERROR: In procedure scm-error: > ERROR: No applicable method for #<<generic> - (2)> in call (- 0 #<<vecto= r2> 10a8e4020>) >=20=09 > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(guile-user) [1]> ,bt > In current input: > 23:0 2 (_) > In oop/goops.scm: > 1438:4 1 (cache-miss 0 #<<vector2> 10a8e4020>) > In unknown file: > 0 (scm-error goops-error #f "No applicable method for ~S in c= all ~S" (#<<generic> - (2)> (- 0 #<<vec=E2=80=A6>)) #) Is (- x) equivalent to (* x -1) ? Right now there are a few things happening. The "primitive expansion" phase in an early part of the compiler turns (- x) to (- 0 x), where obviously it should not be doing that. But can it turn it into (* x -1) ? Note that somewhat confusingly, a later part of the compiler that can detect when X is a real number will undo that transformation, turning it to (- 0 x) when X is real. So that sounds OK from an optimization point of view but is the (* x -1) tranformation correct from the math point of view? Andy
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.