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

Fausto Saporito fausto.saporito at gmail.com
Wed Sep 3 06:41:42 UTC 2014


Hello Ray,

no luck with 19d. But maybe it has the double-double support too...

I have the same errors, but instead of sigsegv at the end, I got a
stack overflow:

Control stack overflow
   [Condition of type STACK-OVERFLOW]

Restarts:
  0: [CONTINUE] Blow this file
  1:            Return NIL from load of "target:tools/worldcom".
  2: [ABORT   ] Return to Top-Level.

Debug  (type H for help)

(YELLOW-ZONE-HIT)
Source:
; File: target:code/interr.lisp
(ERROR 'STACK-OVERFLOW)

and in compile-compiler.log I found again a DOUBLE-DOUBLE reference:

; Comment: $Header:
/project/cmucl/cvsroot/src/compiler/new-assem.lisp,v 1.34 2004/08/02
16:04:42 cwang Exp $

; Compiling DEFUN SEGMENT-MAP-OUTPUT:

Bound is not *, a DOUBLE-DOUBLE-FLOAT or a list of a DOUBLE-DOUBLE-FLOAT: 0

Aborting...

I'll try with 19c

2014-09-03 8:29 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
> Hello Ray,
>
> I started with 19d, but I have this strange error:
>
> ; Error: (during macroexpansion)
> ;
> ; Error in function META-SC-OR-LOSE:
> ;    DOUBLE-DOUBLE-REG is not a defined storage class.
> ; ;
>
> ; Error: (during macroexpansion)
> ;
> ; Error in function META-SC-OR-LOSE:
> ;    COMPLEX-DOUBLE-DOUBLE-REG is not a defined storage class.
>
> but in 19d there shouldn't be support for DOUBLE-DOUBLE ... correct ?
>
> I'm using 19d binaries to cross-build 19d
>
> 2014-09-03 4:17 GMT+02:00 Raymond Toy <toy.raymond at gmail.com>:
>>
>>
>>
>> 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