From 00f9d452a109fbb4d8695a60b6b7d9ea18f01cfa Mon Sep 17 00:00:00 2001 From: Douglas Katzman Date: Fri, 11 Dec 2015 16:52:36 -0500 Subject: [PATCH] Define INTERVAL struct earlier for float-tran. Flipping the order of float-tran and srctran in the build didn't work, otherwise that would maybe have been nicer. --- src/compiler/float-tran.lisp | 7 +++++++ src/compiler/srctran.lisp | 11 ++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/compiler/float-tran.lisp b/src/compiler/float-tran.lisp index b7edc34c3..2f80cf2a6 100644 --- a/src/compiler/float-tran.lisp +++ b/src/compiler/float-tran.lisp @@ -760,6 +760,13 @@ (eval-when (:compile-toplevel :execute) (setf *read-default-float-format* 'single-float)) +;;; The basic interval type. It can handle open and closed intervals. +;;; A bound is open if it is a list containing a number, just like +;;; Lisp says. NIL means unbounded. +(defstruct (interval (:constructor %make-interval (low high)) + (:copier nil)) + low high) + #-sb-xc-host ; (See CROSS-FLOAT-INFINITY-KLUDGE.) (progn diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index a97b1be57..1ca30dfa5 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -397,13 +397,6 @@ (def signed-zero-< <) (def signed-zero-<= <=)) -;;; The basic interval type. It can handle open and closed intervals. -;;; A bound is open if it is a list containing a number, just like -;;; Lisp says. NIL means unbounded. -(defstruct (interval (:constructor %make-interval) - (:copier nil)) - low high) - (defun make-interval (&key low high) (labels ((normalize-bound (val) (cond #-sb-xc-host @@ -426,8 +419,8 @@ (list new-val)))) (t (error "unknown bound type in MAKE-INTERVAL"))))) - (%make-interval :low (normalize-bound low) - :high (normalize-bound high)))) + (%make-interval (normalize-bound low) + (normalize-bound high)))) ;;; Apply the function F to a bound X. If X is an open bound and the ;;; function is declared strictly monotonic, then the result will be -- 2.11.4.GIT