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