Removing the FIFO data structure, now that LIL has a better one.
authorFrancois-Rene Rideau <tunes@google.com>
Wed, 6 Mar 2013 15:30:44 +0000 (10:30 -0500)
committerFrancois-Rene Rideau <tunes@google.com>
Wed, 6 Mar 2013 15:30:44 +0000 (10:30 -0500)
Checked that noone in Quicklisp seems to be using it.

fare-utils.asd
stateful/fifo.lisp [deleted file]

index 5880f18..0d5f63a 100644 (file)
@@ -43,7 +43,6 @@ and Lisp extensions for memoization and reader interception."
      (:file "binary-heap" :depends-on ("container"))
      (:file "binomial-heap" :depends-on ("container"))
      |#
-     (:file "fifo" :depends-on ("container"))
      (:file "dllist" :depends-on ("container"))
      #|(:file "sorting" :depends-on ("binary-heap" "binomial-heap"))|#))))
 
diff --git a/stateful/fifo.lisp b/stateful/fifo.lisp
deleted file mode 100644 (file)
index ec1a35c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-;;; -*- Mode: Lisp ; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;;;; FIFO queues
-
-#+xcvb (module (:depends-on ("package" "base/utils" "stateful/package")))
-
-(in-package :fare-stateful)
-
-(exporting-definitions
-
-(defstruct fifo
-  (head nil)
-  (tail nil))
-
-(ensure-symbols-exported make-fifo fifo-head fifo-tail)
-
-(defun fifo-empty-p (fifo)
-  (null (fifo-head fifo)))
-
-(defun fifo-enqueue (obj fifo)
-  "Enqueue an object in a fifo. Return the fifo."
-  (let ((last (cons obj nil)))
-    (if (null (fifo-head fifo))
-       (setf (fifo-head fifo) last)
-      (setf (cdr (fifo-tail fifo)) last))
-    (setf (fifo-tail fifo) last))
-  fifo)
-
-(defun fifo-dequeue (fifo)
-  "Dequeue an object. Return the object dequeued."
-  (when (fifo-head fifo)
-    (prog1
-       (pop (fifo-head fifo))
-      (when (null (fifo-head fifo))
-       (setf (fifo-tail fifo) nil)))))
-
-(defun fifo-nconc2 (fifo1 fifo2)
-  "move objects from fifo1 to head of fifo2"
-  (psetf (fifo-head fifo1) nil
-        (fifo-tail fifo1) nil
-        (fifo-head fifo2) (nconc (fifo-head fifo1) (fifo-head fifo2))
-        (fifo-tail fifo2) (or (fifo-tail fifo2) (fifo-tail fifo1)))
-  fifo2)
-
-(defun fifo-dequeue-object (obj fifo)
-  (loop :with buffer = (make-fifo)
-    :with top = nil
-    :until (fifo-empty-p fifo)
-    :do (setf top (fifo-dequeue fifo))
-    :until (eql obj top)
-    :do (fifo-enqueue top buffer)
-    :finally (return (fifo-nconc2 buffer fifo))))
-
-(defun fifo-empty! (fifo)
-  (setf (fifo-head fifo) nil
-        (fifo-tail fifo) nil)
-  fifo)
-
-)
-
-(defmethod print-object ((x fifo) stream)
-  (print-unreadable-object (x stream :type t :identity t)
-    (write (fifo-head x) :stream stream)))