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

Re: CL-HTTP 59.26 PreRelease



   |
   |
   |    CL-HTTP 59.26 Pre-Release (MAC 2.4.0, ACL 1.5.19, LW 1.1.0 LCL, 4.2.4)
   |
   |Overview:
   |
   |A pre-release now CL-HTTP 59.26 is now available.  We would appreciate
   |learning if there are any significant bugs over the next week, at which point
   |the final release will issue. 

I wonder if someone could fix server/tokenizer.lisp

(defstruct (tokenizer)
  (test nil)
  (function nil)
  (top-level nil :type level)		<<<<< should be (or null level)
  (name "tokenizer" :type string)
  (documentation nil :type string))	<<<<< 

The indicated slots have incorrect type specifications. CMUCL
warns about that, and later, knowing that top-level can't be
NIL, removes the 'if top-level' and else branch of this code:

(defun %get-or-put-token (tokenizer string start end)
  (let ((*tokenizer* tokenizer)
        (top-level (tokenizer-top-level tokenizer)))
    (if top-level			<<<<< always T
        (with-fast-array-references ((string string string))
          (loop with previous-level = top-level

	.....

        (multiple-value-bind (new-entry token)	<<<<< optimized out
            (%make-level-entry string start start end)
          (setf (tokenizer-top-level tokenizer)
	 (make-level :entries (list new-entry)))
          (values token t)))))

In the case of the documentation slot, either the initializer
should be "" or the type (or null string).

Regards,
Paul Werkowski
pw@snoopy.mv.com


References: