guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Found a bug in guile 1.6.0


From: Roland Orre
Subject: Found a bug in guile 1.6.0
Date: 26 Dec 2002 22:30:32 +0100

I found a bug when a let clause only contains a macro.
When the clause also contains a lambda clause it works.

The procedures iserror1 and iserror2 below gives the following error message:
      : In procedure cadr in expression (cadr x):
      : Wrong type argument in position 1: (address@hidden stack vec)
but the procedure isworking below is working.

(define-public push!
  (procedure->macro
   (lambda(x env) `(set! ,(cadr x) (cons ,(caddr x) ,(cadr x))))))

(define stack '())

(define iserror1
  (lambda(size)
    (let ((vec (make-vector size #f)))
      (push! stack vec)
      vec)))

(define iserror2
  (lambda(size)
    (let ((vec (make-vector size #f)))
      ""
      (push! stack vec)
      vec)))

(define isworking
  (lambda(size)
    (let ((vec (make-vector size #f)))
      (lambda()#f)
      (push! stack vec)
      vec)))

(iserror1 1) 
(iserror2 1)
(isworking 1)

        Best regards
        Roland Orre




reply via email to

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