[developers] PET on 64-bit Architectures

Eric Nichols eric-n at is.naist.jp
Thu Jan 12 17:24:05 CET 2006


Stephan,

Thank you for the reply and suggestions.

Regarding my mrs.h patch, it does the following:

    * Replaces all #include "rmrs.h" instances with #include mrs.h to
      remove the necessity of symlinking mrs.h --> rmrs.h.
    * Removes all instances of the now non-existent rmrs.h from the
      configure files and makefiles.
    * Creates a dummy rule in cheap's makefile to build libmrs.a
      whenever mrs.h is needed. Building libmrs.a creates the mrs.h file.

I do not think my problems are related to the (r)mrs.h file, because 
commenting out
the #include statement in petecl.c has no effect, and PET compiles as-is 
on 32 bit
platforms. Perhaps the problem has something to do with how ECL is 
called to build
the MRS library? I have reproduced the relevant snippet of makefile 
below. the libmrs.a
rule was already there; my patch just adds the alias to make sure it 
gets called when
mrs.h is linked to.

# Add build definition for "mrs.h" ... Eric Nichols 
<eric-n at is.naist.jp>, Jun. 18, 2005
mrs.h: libmrs.a

libmrs.a:
        ( \
          echo "(pushnew :i686 *features*)"; \
          echo ";;(pushnew :debug *features*)"; \
          echo "(load \"$(MRSDIR)/src/general/loadup\")"; \
          echo "(si::system (format nil \"cd ~a; find -type f -exec rm 
{} \;\" (get-binaries-dir \"mrs\")))"; \
          echo "(setq lib-dir (make-pathname :directory '(:relative)))"; \
          echo "(compile-system \"mrs\" :force t)"; \
        ) | $(ECL)

Does this information help any?

Eric Nichols <eric-n at is.naist.jp>

Stephan Oepen wrote:

>hi eric,
>
>  
>
>>I am applying a patch that I wrote to make the mrs.h file by calling
>>ECL which builds its from the RMRS source since rmrs.h is no longer
>>distributed with LKB.
>>    
>>
>
>i was not quite able to work out what exactly happens in your build (i
>have also not tried ECL versions newer than 0.9h, which worked), but i
>suspect you are maybe ending up including the wrong header file(s).
>
>here is how i usually build the MRS library and include file:
>
>  ECLROOT = /usr/local
>  LKBROOT = $$DELPHINHOME/lkb
>
>  [...]
>
>  #
>  # rebuild MRS and FSPP libraries, using an installed ECL binary
>  #
>  mrs:
>          ( \
>            echo "(load \"$(LKBROOT)/src/general/loadup.lisp\")"; \
>            echo "(compile-system \"mrs\" :force t)"; \
>          ) | $(ECLROOT)/bin/ecl
>          ${RM} -f rmrs.h
>          ${LN} -s $(LKBROOT)/include/mrs.h rmrs.h
>
>thus, both `mrs.h' (an ancient part of PET) and `rmrs.h' will be in the
>local `cheap' directory, and both should get included, the latter only
>in `petecl.c' though.  --- maybe sorting this out will help?
>
>bernd, i believe the original PET MRS code is defunct and could as well
>be removed, i.e. `mrs.cpp' and `mrs.h' deleted and call(s) purged.  the
>only users of related functionality i know of are the people at CST who
>(at least one year ago) were using the mrs_stamp_fs() functionality.
>
>but in case they are still using this, they are probably using the code
>in the older `oe' branch anyway, i.e. cleaning up `main' cannot hurt.
>
>                                                          best  -  oe
>
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>+++ Universitetet i Oslo (IFI); Boks 1080 Blindern; 0316 Oslo; (+47) 2285 7989
>+++     CSLI Stanford; Ventura Hall; Stanford, CA 94305; (+1 650) 723 0515
>+++       --- oe at csli.stanford.edu; oe at hf.uio.no; stephan at oepen.net ---
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  
>



More information about the developers mailing list