[cmucl-help] CMUCL 18c building on tru64 5.1
Fausto Saporito
fausto.saporito at gmail.com
Wed Sep 3 09:39:40 UTC 2014
Ohhhh ... BIG NeWS!
19c works! Cross compiling was fine.
Now if I understood well, I have to move all the alpha-target
directory in Tru64 and recompile... correct ?
Using src/tools/build-world.sh script ?
thanks
Fausto
2014-09-03 11:28 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
> Hello all,
>
> I saw there're some patches for 19c and 19d and I found how to apply them.
> The question is: how can I update the lisp.core ? Is it needed ? Or do
> I have to load each time those patches ?
>
> thanks,
> Fausto
>
>
> 2014-09-03 8:41 GMT+02:00 Fausto Saporito <fausto.saporito at gmail.com>:
>> 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