Oops, hit "send" too fast. Here's the patch.

Use SRFI-9 (Records)

From: Andreas Rottmann <[EMAIL PROTECTED]>


---

 languages/eclectus/compiler.scm       |    6 +++++-
 languages/eclectus/gauche/prelude.scm |   10 ----------
 languages/eclectus/guile/prelude.scm  |   10 ----------
 3 files changed, 5 insertions(+), 21 deletions(-)


diff --git a/languages/eclectus/compiler.scm b/languages/eclectus/compiler.scm
index 1d92761..a2a22f0 100644
--- a/languages/eclectus/compiler.scm
+++ b/languages/eclectus/compiler.scm
@@ -199,7 +199,11 @@
 
 ; Support for primitive functions
 
-(define-record primitive (arg-count emitter))
+(define-record-type primitive
+  (make-primitive arg-count emitter)
+  primitive?
+  (arg-count primitive-arg-count)
+  (emitter primitive-emitter))
 
 (define *primitives* (make-eq-hashtable))
 
diff --git a/languages/eclectus/gauche/prelude.scm b/languages/eclectus/gauche/prelude.scm
index 0919f03..c60e52d 100644
--- a/languages/eclectus/gauche/prelude.scm
+++ b/languages/eclectus/gauche/prelude.scm
@@ -8,16 +8,6 @@
      (if (not condition)
          (begin body1 body ...)))))
 
-(define-macro (define-record name fields)
-  (define (symbol-append . symbols)
-    (string->symbol (apply string-append (map symbol->string symbols))))
-  `(define-record-type name
-     (,(symbol-append 'make- name) ,@fields)
-     ,(symbol-append name '?)
-     ,@(map (lambda (field)
-              `(,field ,(symbol-append name '- field)))
-            fields)))
-
 (define (make-eq-hashtable)
   (make-hash-table))
 
diff --git a/languages/eclectus/guile/prelude.scm b/languages/eclectus/guile/prelude.scm
index b7b750f..24383ef 100644
--- a/languages/eclectus/guile/prelude.scm
+++ b/languages/eclectus/guile/prelude.scm
@@ -11,16 +11,6 @@
      (if (not condition)
          (begin body1 body ...)))))
 
-(define-macro (define-record name fields)
-  (define (symbol-append . symbols)
-    (string->symbol (apply string-append (map symbol->string symbols))))
-  `(define-record-type name
-     (,(symbol-append 'make- name) ,@fields)
-     ,(symbol-append name '?)
-     ,@(map (lambda (field)
-              `(,field ,(symbol-append name '- field)))
-            fields)))
-
 (define (make-eq-hashtable)
   (make-hash-table))
 
Regards, Rotty
-- 
Andreas Rottmann         | [EMAIL PROTECTED]      | [EMAIL PROTECTED] | [EMAIL 
PROTECTED]
http://rotty.uttx.net    | GnuPG Key: http://rotty.uttx.net/gpg.asc
Fingerprint              | C38A 39C5 16D7 B69F 33A3  6993 22C8 27F7 35A9 92E7
v2sw7MYChw5pr5OFma7u7Lw2m5g/l7Di6e6t5BSb7en6g3/5HZa2Xs6MSr1/2p7 hackerkey.com

Beware of bugs in the above code; I have only proved it correct,
not tried it.  -- Donald E. Knuth

Reply via email to