All tests passed. At this point we're in good shape to begin developing sparc64.
Like sparc64-dev-checkpoint-1, but we've set a new fasl file implementation value and changed the fasl file type to "sparc64f". Cross-compile works and the resulting binary builds itself successfully and pass all tests.
Updated word-bits to 64, adjusting new-genesis to byte-swap
64-bit values if needed.
Updated Config.sparc64_sunc to build a 64-bit binary, but using
the abs32 memory model for now to keep things simple.
Cross compile works but loading the world (on sparc)
fails. (Issues with the core file)
Updated new-genesis.lisp to create 64-bit core files. This
includes 64-bit values for space addresses and sizes and
such. (Probably much more work needed.)
The cross-compiled result will loads the core file and at least
prints out the correct sizes of addresses of each space. We get
as far as running call_into_lisp to run the initial function,
but we get a segfault because we haven't implemented the v9 stack
Pad data blocks to dual-word (16-byte) boundaries. The static symbols like NIL, T, etc. appear to have the correct addresses and contents, as determined by call C print() to print the contents of the object.
The following steps indicate the general approach. Since we've never actually done this completely, there will be some variations and corrections over time.
Copy over the sparc-specific stuff to sparc64 and do a sparc build using these. This should result in a working sparc build.
Do a sparc64 cross-compile
Verify tests pass.
Fix alien-callback issue wherein the cross-compiled build won't successfully build itself if alien-callback.lisp is compiled.
Change fasl name and version
sparc64f instead of sparc
Update fasl implementation number
Update sparc64 code to 64-bit
Change sparc64/parms.lisp to use 64-bit.
Adjust new-genesis.lisp and load_core_file to dump 64-bit cores.
Update objdef.lisp to reflect the 64-bit properties.