*** series.orig/series.lsp Sun Mar 22 14:26:48 1992 --- series.clisp/series.lsp Sat May 30 13:09:24 1992 *************** *** 877,882 **** --- 877,886 ---- (:print-function print-series)) image-fn image-base (image-datum nil)) + #+(or :CMU CLISP) ; handle multiple definition of ALTER-FN + (defstruct (foundation-series (:conc-name nil)) + (alter-fn nil)) + (defmacro make-phys (&key (gen-fn nil) (alter-fn nil) (data-list T)) `(make-basic-series :gen-fn ,gen-fn :alter-fn ,alter-fn :data-so-far (cons nil ,data-list))) *************** *** 1720,1726 **** ;depending on the exact syntactic form of the input. For instance ;note that INCF expands into a let in some lisps and this would force ;the let to be in a separate expression even though it does not look ! ;like it at first glance. ;As an example of all the above consider the following. #| --- 1724,1730 ---- ;depending on the exact syntactic form of the input. For instance ;note that INCF expands into a let in some lisps and this would force ;the let to be in a separate expression even though it does not look ! ;like it at first glance.) ;As an example of all the above consider the following. #| *************** *** 2472,2478 **** ; Further there is no trouble with the first frag as long as either (1) the ;second frag has no termination points other than the one in question (i.e., ;has no series inputs without off-line-exits other than possibly the ! ;one in question and cannot by itself terminate or (2) the first frag does ;not have any output points other than the one in question (i.e., has no ;other outputs, and does not have the must-run flag set) and this output is ;not used anywhere other than by the input in question. In case (1) running --- 2476,2482 ---- ; Further there is no trouble with the first frag as long as either (1) the ;second frag has no termination points other than the one in question (i.e., ;has no series inputs without off-line-exits other than possibly the ! ;one in question and cannot by itself terminate) or (2) the first frag does ;not have any output points other than the one in question (i.e., has no ;other outputs, and does not have the must-run flag set) and this output is ;not used anywhere other than by the input in question. In case (1) running *************** *** 4365,4370 **** --- 4369,4375 ---- (defS scan-hash (table) "Creates two series containing the keys and values in a hash table." + #-CLISP (fragL ((table)) ((keys T) (values T)) ((keys T) (values T) (lst list)) () ((setq lst nil) (maphash #'(lambda (key val) (push (cons key val) lst)) table)) *************** *** 4372,4378 **** (setq keys (caar lst)) (setq values (cdar lst)) (setq lst (cdr lst))) () ()) ! #+symbolics :optimizer #+symbolics (funcall-literal-frag `((((table)) ((keys T) (values T)) ((state T) (keys T) (values T)) () ((setq state nil)) --- 4377,4392 ---- (setq keys (caar lst)) (setq values (cdar lst)) (setq lst (cdr lst))) () ()) ! #+CLISP ! (fragL ((table)) ((keys T) (values T)) ((state T) (nextp T) (keys T) (values T)) () ! ((setq state (sys::hash-table-iterator table))) ! ((multiple-value-setq (nextp keys values) (sys::hash-table-iterate state)) ! (unless nextp (go END)) ! ) ! () ! () ! ) ! #+symbolics :optimizer #+symbolics (funcall-literal-frag `((((table)) ((keys T) (values T)) ((state T) (keys T) (values T)) () ((setq state nil))