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