[cmucl-help] CMUCL 18c building on tru64 5.1

Raymond Toy toy.raymond at gmail.com
Wed Sep 3 02:17:26 UTC 2014


On Tue, Sep 2, 2014 at 4:53 PM, Fausto Saporito <fausto.saporito at gmail.com>
wrote:

> Hello Raymond,
>
> thanks for these hints about cross.lisp
> I put in the proper section the unwanted feature.
>
> So, if I force the redefinition of those symbols at the end of
> alpha-cross compiling phase, alpha-target starts but I noticed this
> error among the others:
>
> ; File: /home/fausap/CMUCL/git-ver/cmucl/src/code/lispinit.lisp
>
> ; In: DEFUN SLEEP
>
> ;   (ERROR 'SIMPLE-TYPE-ERROR
> ;          :FORMAT-CONTROL "Invalid argument to SLEEP: ~S.~%~
> ;             Must be a non-negative, non-complex number."
> ;          :FORMAT-ARGUMENTS ...)
> ; Note: Deleting unreachable code.
> ;
>
> DOUBLE-DOUBLE-FLOAT fell through ECASE expression.
> Wanted one of (REAL FLOAT OR SINGLE-FLOAT DOUBLE-FLOAT RATIONAL INTEGER).
>
> it's very strange... I disabled double-double... why I have this error ?
>

​I think it's a mismatch between what the cross compiler has and what the
host compiler has. I've never figured this out.

So, I think it's best to start with a lisp without double-double support.​

​Support for double-double was apparently done by 19e, so your best bet is
to do a checkout from 19d.  I think everything that you've done up to now
still applies.

Once that is done, we can consider adding double-double for alpha. It's
relatively easy, but you'll have to write a bunch of vops. They can
probably be copied almost verbatim from the sparc or ppc ports with small
changes in the actual instructions.

​

>
> This is my features list in cross.lisp (I removed extern-alien-name,
> fixup, etc... I don't know what they are doing... so maybe I can put
> back later)
>
> ;;; Cross-compile script to build a alpha core using x86 as the
> ;;; compiling system.  This needs work!
>
> (in-package :cl-user)
>
> ;;; Rename the X86 package and backend so that new-backend does the
> ;;; right thing.
> (rename-package "X86" "OLD-X86" '("OLD-VM"))
> (setf (c:backend-name c:*native-backend*) "OLD-X86")
>
> (c::new-backend "ALPHA"
>    ;; Features to add here
>    '(:alpha
>      :relative-package-names            ; Relative package names from
> Allegro
>      :conservative-float-type
>      :hash-new
>      :random-mt19937                    ; MT-19937 generator
>      :cmu                               ; Announce this is CMUCL
>      :cmu20 :cmu20b                     ; Current version identifier
>      :osf1
>      :bsd
>      :unix
>      )
>    ;; Features to remove from current *features* here
>    '(:sparc-v8 :sparc-v7 :sparc-v9 :sparc
>      ;; Other architectures we aren't using.  Particularly important
>      ;; to get rid of sse2 and x87 so we don't accidentally try to
>      ;; compile the x87/sse2 float support on sparc, which won't work.
>      :x86 :x86-bootstrap :sse2 :x87 :i486
>      :mips :complex-fp-vops
>      ;; Really old stuff that should have been removed long ago.
>      :propagate-fun-type :propagate-float-type :constrain-float-type
>      :double-double
>      :linkage-table
>      :stack-checking                    ; Throw error if we run out of
> stack
>      :heap-overflow-check               ; Throw error if we run out of
>                                         ; heap (This requires gencgc!)
>      :gencgc                            ; Generational GC
>      :modular-arith                     ; Modular arithmetic
>      :executable
>      ;; Other OSes were not using
>      :openbsd :freebsd :glibc2 :linux :mach-o :darwin :sunos :svr4
>      :solaris :sun4
>      :pentium
>      :long-float
>      :new-random
>      :small
>      :mp))
>

​One last thing:  remove :alien-callback too. Alpha doesn't support that.
​

​Hopefully this will get us farther along....

--
Ray
​


More information about the cmucl-help mailing list