[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Logs-devel] bug in latest Language/rdl.lisp
From: |
Vijay Lakshminarayanan |
Subject: |
Re: [Logs-devel] bug in latest Language/rdl.lisp |
Date: |
Thu, 3 Aug 2006 18:09:24 -0500 |
On 8/3/06, Jim Prewett <address@hidden> wrote:
I just committed a minor change to rdl.lisp; now, instead of letting the
RDL code come up with the name of an unnamed rule, I leave that to the
make-instance method in the :LoGS package for the RULE class.
I can see where you, Vijay, were going with it, I just can't figure out
how to quote that name if it is a symbol rather than trying to evaluate
it. I'm open to other suggestions :)
LANGUAGE> (let ((name 'rule-name))
(rule named name))
#<RULE name: RULE-NAME match: NIL delete-rule: NIL continuep: NIL
actions: NIL environment: NIL match-count: 0 match-try: 0 {AE40551}>
LANGUAGE> (let ((name 'rule-name))
(rule named 'name))
[warnings deleted]
#<RULE name: NAME match: NIL delete-rule: NIL continuep: NIL actions:
NIL environment: NIL match-count: 0 match-try: 0 {AF54D81}>
However, I prefer your current change. It makes more sense to
delegate the work to make-instance when we don't know the default
since it reduces the number of places where we must update our changes
(something RDL in general suffers from :-)
The problem was, as you noted, I'd forgotten to quote the gensym which
resulted in the enviomnent evaluating a freshly interned symbol
#:NAME1245. This is a lesson to me that I must once in a while try to
evaluate also, rather than just macroexpand-1'ing :-)
(defmethod get-rule-slot ((rule rule-macro) (slot (eql :name)))
(declare (ignore slot))
(or (rule-macro-name rule) `',(gensym "NAME")))
would have fixed it but I think you made the right choice to remove it.
All tests pass again with this (minor) change.
Jim
James E. Prewett address@hidden address@hidden
Systems Team Leader LoGS: http://www.hpc.unm.edu/~download/LoGS/
Designated Security Officer OpenPGP key: pub 1024D/31816D93
HPC Systems Engineer III UNM HPC 505.277.8210
On Thu, 3 Aug 2006, Jim Prewett wrote:
>
> Hi all,
>
> I've found a bug in the RDL code; I've not had a chance to find it yet.
>
> However, a rule that is created using the RDL without specifying a name
> throws an error as it tries to evaluate the symbol that is generated (that
> symbol should be used as the name).
>
> Under CMUCL 19 C, I get this for the simplest case (a new rule with no
> match, actions, etc. specified)
>
> * (rule)
>
>
> Error in KERNEL::UNBOUND-SYMBOL-ERROR-HANDLER: the variable #:NAME2396 is
> unbound.
> [Condition of type UNBOUND-VARIABLE]
>
> Restarts:
> 0: [ABORT] Return to Top-Level.
>
> Debug (type H for help)
>
> (EVAL #:NAME2396)
>
> Jim
>
>
> James E. Prewett address@hidden address@hidden
> Systems Team Leader LoGS: http://www.hpc.unm.edu/~download/LoGS/
> Designated Security Officer OpenPGP key: pub 1024D/31816D93
> HPC Systems Engineer III UNM HPC 505.277.8210
>
>
> _______________________________________________
> LoGS-devel mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/logs-devel
>
_______________________________________________
LoGS-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/logs-devel