[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MacIvory conversion experience

We've had a MacIvory here for evaluation for about a day so far, and
I've been working on getting our site system to load on it.  I am
pleased to say that it was about as painless as I'd been led to believe
it would be.  So far I've compiled and loaded the 7.2 versions of
IP-TCP, ILA-NFS, the MIT X10 software, and our site system, which
contains lots of local patches to various levels of the system.  90% of
the problems I encountered were due to the use of #+3600.  In most cases
I was able to fix it by changing it to either #+(or 3600 imach) or
#+symbolics.  Except for these things, converting to 7.3 Ivory looks
like it should be easier than converting from 7.1 to 7.2 was.

One problem that has surprised me, though, is that Symbolics changed the
order of the implicit arguments to flavor methods.  On 3600's the first
two arguments to methods are SELF and SYS:SELF-MAPPING-TABLE, but on the
Ivory they are in the opposite order.  Why should I care about this
implementation detail, you ask?  Because I like to use
SI:ADVISE-PERMANENTLY to patch functions, and advice on a method needs
to know the layout of the arglist in order to access the arguments, and
it assumes that SELF is (CAR ARGLIST).  Was there something I should
have been using instead of CAR in order to be sure of compatibility?  Or
should I write my own function:

(defsubst arglist-self (arglist)
  #+imach (cadr arglist)
  #+3600 (car arglist)
  #-(or 3600 imach) (error "Unknown architecture type."))