Ar an chéad lá is fiche de mí Lúnasa, scríobh Mike FABIAN:
[...] I have attached a tentative patch which *might* fix the
problem, I
have not yet tested whether this really fixes the build of the packages.
You have changed XINT to XCHAR_OR_INT in several places.
But
XCHAR_OR_INT (ccl_prog[ic++])
apparently increments the instruction counter ‘ic’ twice whereas XINT
did it only once. When ic is wrong, it is probably not surprising that
something goes wrong with the CCL-program.
Right. And I don’t normally see it because I build with ERROR_CHECK_TYPE,
where the argument to XCHAR_OR_INT is only evaluated once. (It seems neither
of us looked at the CCL code in sufficient detail.)
Okay, since the argument to XCHAR_OR_INT is not an lvalue--which conflicts
with the macro writing guidelines--I’ve changed its non-ERROR_CHECK_TYPE
implementation to not evaluate it twice. I’ve also checked the package build
with this (both with your patch on its own, and with the lisp.h change too)
and it works fine. (Yes, anyone paying close attention will notice that the
change is redundant, but it doesn’t cost anything in execution speed, and
should eliminate the same error with this macro in the future.) Thank you
for tracking this down!
APPROVE COMMIT
NOTE: This patch has been committed.
src/ChangeLog addition:
2007-08-21 Aidan Kehoe <kehoea(a)parhasard.net>
* mule-ccl.c (ccl_driver): Don't pass XCHAR_OR_INT an argument of
* which the evaluation has side effects; thank you Mike
* Fabian. lisp.h: Redundantly, don't multiply evaluate the argument
* to XCHAR_OR_INT; this should prevent the same error in the future.
See
http://mid.gmane.org/18123.19416.411471.958967@parhasard.net for the
actual patch, which I sent a little earlier than intended.
--
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta