Package: guile;
Reported by: Stefan Israelsson Tampe <stefan.itampe <at> gmail.com>
Date: Tue, 10 Sep 2013 21:02:01 UTC
Severity: minor
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Stefan Israelsson Tampe <stefan.itampe <at> gmail.com> To: bug-guile <at> gnu.org Subject: defmacro and define-macros still remain in guile's sources Date: Tue, 10 Sep 2013 23:01:01 +0200
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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.