[comp.lang.scheme.c] Scheme on SGi machines

Tom.Emerson@UVM.EDU (Tom Emerson) (05/15/91)

Has anyone brought Scheme 7.1 on the SGi Iris under Irix 3.3.2?
The SGi is a MIPS machine, so I wouldn't think it would be difficult.

Thanks for your help.

Thomas
--
                                     Thomas Emerson
________________   Student Systems Programmer - EMBA Computer Facility
 /  /_) /_  /_                    University of Vermont
/  / \ /__ /__                     tree@newton.uvm.edu 
  "Lisp programmers know the value of everything and the cost of nothing."
								- Alan Perlis

jinx@altdorf.ai.mit.EDU ("Guillermo J. Rozas") (05/16/91)

   Date: Wed, 15 May 91 11:44:22 -0400
   From: Tom.Emerson@UVM.EDU (Tom Emerson)

   Has anyone brought Scheme 7.1 on the SGi Iris under Irix 3.3.2?
   The SGi is a MIPS machine, so I wouldn't think it would be difficult.

You are right, it should not be difficult, but...

The main issues are:

- Making sure that the microcode compiles and runs correctly.  Each
version of Unix is different from every other, and the
conditionalization may not work correctly for yours.
- Compiling the system sources for the Iris machine.

Note that if the Iris machine uses little-endian byte ordering, it
should be able to use the MIPS scheme binaries.  If it uses big-endian
byte ordering, it cannot.  The compiler is conditionalized to handle
both byte orderings, but no one has tried it on a big-endian machine.
We probably will shortly because we are getting some MIPS-based
machines that (we believe) use big-endian byte ordering.

nix@asd.sgi.com (Sold to the highest Buddha) (05/21/91)

jinx@altdorf.ai.mit.EDU ("Guillermo J. Rozas") writes:

   The main issues are:

   - Making sure that the microcode compiles and runs correctly.  Each
   version of Unix is different from every other, and the
   conditionalization may not work correctly for yours.

I've gotten this far without too much work.  There were a few things
in ux.* that had to be conditionalized on sgi to get the microcode to
compile.

   - Compiling the system sources for the Iris machine.

This is the toughie.  I used PsbToBin and the .bin files in psb.tar.Z
(wouldn't .psb be clearer?) to generate a set of .bin files to build
the runtime, and I used a slightly modified version of the
make_runtime script from the 7.0 distribution.  The build fails when
loading "record.bin" with the messages below, which I am unable to
decipher.

Interestingly enough, when I try to build from scratch on a
SPARCstation 2, record.bin also fails.  I'm not sure if the trace is
exactly the same, though.  On the SPARC I also tried using the
distributed binaries for the sun4 to recompile record.bin from
record.scm and had the same problems when trying to build the runtime
library.  Has anyone successfully built a 7.1 runtime from scratch?
Did you have any trouble with this file?

   Note that if the Iris machine uses little-endian byte ordering, it
   should be able to use the MIPS scheme binaries.

The IRIS is big-endian.

	-	-	-	-	-	-	-	-

record.bin
Microcode Error: No error handlers.
Error code 0x2 (UNASSIGNED-VARIABLE).

**** Stack Trace ****

Return code: [RETURN_CODE COMB_APPLY_FUNCTION]
Expression: [COMBINATION_1 0x7d0ec] (cmdl-message/active, #[unnamed-procedure])
  ...: [NULL 0x2]
  ...: ()
  ...: [PROCEDURE (#[unnamed-procedure]) 0x11a890]
Return code: [RETURN_CODE COMB_2_FIRST_OPERAND]
Expression: [COMBINATION_2 0x72708] (cmdl-message/append, [COMBINATION_1 0x7d0e4], [COMBINATION_1 0x7d0ec])
  ...: [ENVIRONMENT 0x11a884] (from gc-abort-test)
Return code: [RETURN_CODE COMB_1_PROCEDURE]
Expression: [COMBINATION_1 0x69f34] (abort->nearest, [COMBINATION_2 0x72708])
  ...: [ENVIRONMENT 0x11a884] (from gc-abort-test)
Return code: [RETURN_CODE SEQ_3_DO_2]
Expression: [SEQUENCE-3 0x2a728]
  ...: [ENVIRONMENT 0x11a878] (from #[let-procedure])
Return code: [RETURN_CODE RESTORE_INT_MASK]
Expression: 5
Return code: [RETURN_CODE RESTORE_DONT_COPY_HISTORY]
Expression: [HUNK3-A 0x27208]
  ...: 0
  ...: ()
Return code: [RETURN_CODE INTERNAL_APPLY]
Expression: ()
  ...: [NULL 0x2]
  ...: [PRIMITIVE BINARY-FASLOAD]
  ...: "record.bin"
Return code: [RETURN_CODE COMB_1_PROCEDURE]
Expression: [COMBINATION_1 0x27228] (#[let-procedure], [PCOMB1 0x27560])
  ...: [ENVIRONMENT 0x27230] (from fasload)
Return code: [RETURN_CODE COMB_2_PROCEDURE]
Expression: [COMBINATION_2 0x27240] (eval, [COMBINATION_2 0x2757c], environment)
  ...: [ENVIRONMENT 0x2724c] (from #[unnamed-procedure])
  ...: [ENVIRONMENT 0x2725c] (from [VECTOR 0x275ac])
Return code: [RETURN_CODE SEQ_2_DO_2]
Expression: [SEQUENCE-2 0x272a0]
  ...: [ENVIRONMENT 0x2724c] (from #[unnamed-procedure])
Return code: [RETURN_CODE SEQ_3_DO_3]
Expression: [SEQUENCE-3 0x272a8]
  ...: [ENVIRONMENT 0x272b4] (from #[let-procedure])
Return code: [RETURN_CODE SEQ_3_DO_2]
Expression: [SEQUENCE-3 0x272c0]
  ...: [ENVIRONMENT 0x272cc] (from #[internal-lambda])
Return code: [RETURN_CODE SEQ_3_DO_2]
Expression: [SEQUENCE-3 0x27398]
  ...: ()
Return code: [RETURN_CODE END_OF_COMPUTATION]
Expression: ()

No error handler.