From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Israelsson Tampe Newsgroups: gmane.lisp.guile.bugs Subject: bug#15330: defmacro and define-macros still remain in guile's sources Date: Tue, 10 Sep 2013 23:01:01 +0200 Message-ID: <3027761.QpFtufJQ6k@warperdoze> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit X-Trace: ger.gmane.org 1378846949 25652 80.91.229.3 (10 Sep 2013 21:02:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 10 Sep 2013 21:02:29 +0000 (UTC) To: 15330@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Tue Sep 10 23:02:31 2013 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 1VJV4r-0003TK-Jd for guile-bugs@m.gmane.org; Tue, 10 Sep 2013 23:02:25 +0200 Original-Received: from localhost ([::1]:59974 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJV4r-0004Qe-8W for guile-bugs@m.gmane.org; Tue, 10 Sep 2013 17:02:25 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJV4f-0004KN-7q for bug-guile@gnu.org; Tue, 10 Sep 2013 17:02:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJV4U-0002uf-H0 for bug-guile@gnu.org; Tue, 10 Sep 2013 17:02:13 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45103) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJV4U-0002ub-Cx for bug-guile@gnu.org; Tue, 10 Sep 2013 17:02:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1VJV4T-0006L7-O3 for bug-guile@gnu.org; Tue, 10 Sep 2013 17:02:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Israelsson Tampe Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Tue, 10 Sep 2013 21:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 15330 X-GNU-PR-Package: guile X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-guile@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.137884691424354 (code B ref -1); Tue, 10 Sep 2013 21:02:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Sep 2013 21:01:54 +0000 Original-Received: from localhost ([127.0.0.1]:53395 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJV4L-0006Kj-Ae for submit@debbugs.gnu.org; Tue, 10 Sep 2013 17:01:53 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:53055) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJV4I-0006KR-Ub for submit@debbugs.gnu.org; Tue, 10 Sep 2013 17:01:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJV45-0002r6-8n for submit@debbugs.gnu.org; Tue, 10 Sep 2013 17:01:45 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:35964) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJV45-0002r1-5j for submit@debbugs.gnu.org; Tue, 10 Sep 2013 17:01:37 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54719) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJV3w-0004J2-N2 for bug-guile@gnu.org; Tue, 10 Sep 2013 17:01:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJV3g-0002m2-Eg for bug-guile@gnu.org; Tue, 10 Sep 2013 17:01:28 -0400 Original-Received: from mail-lb0-x235.google.com ([2a00:1450:4010:c04::235]:56970) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJV3g-0002lq-0u for bug-guile@gnu.org; Tue, 10 Sep 2013 17:01:12 -0400 Original-Received: by mail-lb0-f181.google.com with SMTP id u14so6593179lbd.26 for ; Tue, 10 Sep 2013 14:01:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:user-agent:mime-version :content-transfer-encoding:content-type; bh=7AZW1ztodUuRP5osK1Dbpy9LkvqeOtDboeqlkDh52TY=; b=jAgoof6k5LiKFPB3G/caKhxpkpuWM6ortO7Wh7BW60n+aabYaVJwZprv9/r19dbnCl gQUT6wGPoHa5s8nuLpBQ9bQQPvmAXuuGHkUQHpY8brqXNZx664ImkecXU/KU8FHsVGNn /Kjmc078FNG8RlzWipC1SF7sU9C2Ck6Nv+luo13zoc5b2VOOg2wHYq9USdJitqZP3AEX 3vZiztXYjmafjf3hQkkWfzAcLDz8+1r3EgnSYBkUN2Wc1BK/6sWSRQ1EcNmaxQhLXcwy PQZjDq/u/kahgMCIL0mOKNs1WkW81o21XK907MEuKE/L5N+w6eSUIVyNtWqtCIXieaPu m6eQ== X-Received: by 10.112.167.3 with SMTP id zk3mr12361186lbb.23.1378846870162; Tue, 10 Sep 2013 14:01:10 -0700 (PDT) Original-Received: from warperdoze.localnet (1-1-1-39a.veo.vs.bostream.se. [82.182.254.46]) by mx.google.com with ESMTPSA id pw4sm9542275lbb.9.1969.12.31.16.00.00 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 10 Sep 2013 14:01:08 -0700 (PDT) User-Agent: KMail/4.9.5 (Linux/3.5.0-30-generic; KDE/4.9.5; x86_64; ; ) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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:7274 Archived-At: Hi, Prompted with issues caused by the old and-let* behavor due to beeing defined with a defmacro I scaned guiles sources for similar problems that we should clean up (This is a good newbie exercise) The findings that need to be cleared are, DEFINE-MACRO CALL SITES: ======================== module/srfi/srfi-4.scm: (define-macro (define-bytevector-type tag infix size) ...) module/srfi/srfi-69.scm: (define-macro (hashx-invoke hashx-proc ht-var . args) ...) (define-macro (with-hashx-values bindings ht-var . body-forms) ...) module/srfi/srfi-4/gnu.scm: (define-macro (define-bytevector-type tag infix size) ...) (define-macro (define-any->vector . tags) ...) module/system/base/syntax.scm: (define-macro (define-type name . rest) ...) (define-macro (define-record name-form . slots) ...) (define-macro (define-record/keywords name-form . slots) ...) (define-macro (transform-record type-and-common record . clauses) ...) module/system/base/language.scm: (define-macro (define-language name . spec) ...) module/system/base/lalr.upstream.scm: THIS IS A TRICKY ONE; UPSTREAM IS USING DEFINE_MACRO ;; -- Guile (guile (use-modules (ice-9 pretty-print)) (use-modules (srfi srfi-9)) (define pprint pretty-print) (define lalr-keyword? symbol?) (define-macro (BITS-PER-WORD) 30) (define-macro (logical-or x . y) `(logior ,x ,@y)) (define-macro (lalr-error msg obj) `(error ,msg ,obj))) (define-macro (lalr-parser . arguments) ...) module/statprof.scm: (define-macro (accumulate-time stop-time) ...) (define-macro (with-statprof . args) ...) module/oop/goops.scm: (define-macro (class supers . slots) ...) (define-macro (define-generic name) ...) (define-macro (define-extended-generic name val) ...) (define-macro (define-extended-generics names . args) ...) (define-macro (define-standard-accessor-method form . body) ...) module/oop/goops/save.scm: (define-macro (readable exp) ...) (define-macro (write-component object patcher file env) ...) (define-macro (restore class slots . exps) ...) module/oop/goops/accessors.scm: (define-macro (define-class-with-accessors name supers . slots) ...) (define-macro (define-class-with-accessors-keywords name supers . slots) ...) module/texinfo/plain-text.scm: (define-macro (with-indent n . body) ...) (define-macro (with-itemizer itemizer . body) ...) module/ice-9/i18n.scm: (define-macro (define-vector-langinfo-mapping name nl-items) ...) (define-macro (define-simple-langinfo-mapping name item default) ...) (define-macro (define-monetary-langinfo-mapping name local-item intl-item default/local default/intl) ...) module/ice-9/time.scm: (define-macro (time exp) ...) module/ice-9/serialize.scm: (define-macro (serialize . forms) ...) (define-macro (parallelize . forms) ...) module/ice-9/session.scm: (define-macro (help . exp) ...) module/ice-9/deprecated.scm: (define-macro (eval-case . clauses) ...) module/scripts/snarf-check-and-output-texi.scm: (define-macro (when cond . body) `(if ,cond (begin ,@body))) (define-macro (unless cond . body) `(if (not ,cond) (begin ,@body))) module/sxml/ssax/input-parse.scm: (define-macro (define-opt bindings body . body-rest) ...) module/sxml/transform.scm: (define-macro (let*-values bindings . body) ...) TEH FOLLOWING IS UPSTREAM CODE TRICKY WHAT TO DO HERE module/sxml/upstream/SXPath-old.scm:; module/sxml/upstream/SSAX.scm:;(define-macro module/sxml/upstream/SSAX.scm:; module/language/tree-il/primitives.scm:(define-macro ;;; I actually did spend about 10 minutes trying to redo this with ;;; syntax-rules. Patches appreciated. ;;; (define-macro (define-primitive-expander sym . clauses) module/language/ecmascript/base.scm: (define-macro (call/this this f . args) `(with-fluid* *this* ,this (lambda () (,f . ,args)))) (define-macro (lambda/this formals . body) `(lambda ,formals (let ((this (fluid-ref *this*))) . ,body))) (define-macro (define-js-method object name-and-args . body) `(pput ,object ',(car name-and-args) (lambda/this ,(cdr name-and-args) . ,body))) module/language/assembly/disassemble.scm: (define-macro (unless test . body) `(if (not ,test) (begin ,@body))) module/rnrs/bytevectors.scm: (define-macro (endianness sym) ...) DEFMACRO CALL SITES =================== module/ice-9/calling.scm: (defmacro with-excursion-function (vars proc) `(,proc ,(excursion-function-syntax vars))) (defmacro with-getter-and-setter (vars proc) `(,proc ,@ (getter-and-setter-syntax vars))) (defmacro with-getter (vars proc) `(,proc ,(car (getter-and-setter-syntax vars)))) defmacro with-delegating-getter-and-setter (vars get-delegate set-delegate proc) ...) (defmacro with-excursion-getter-and-setter (vars proc) `(,proc ,(excursion-function-syntax vars) ,@ (getter-and-setter-syntax vars))) (defmacro with-configuration-getter-and-setter (vars-etc proc) ...) (defmacro with-delegating-configuration-getter-and-setter (vars-etc delegate-get delegate-set proc) ...) (defmacro let-with-configuration-getter-and-setter (vars-etc proc) ...) module/ice-9/expect.scm: (defmacro expect clauses ...) (defmacro expect-strings clauses ...) /Regards Stefan