logs-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]