On Thu, Oct 15, 2009 at 4:09 PM, Matthijs Kooijman
Hi,
luatex: ../../../source/texk/web2c/luatexdir/tex/printing.c:266: print: Assertion `c < 256' failed. [329.327MTXrun | fatal error, no return code, message: luatex: execution interrupted
A quick glance at the code, shows it's in the following part:
/* An entire string is output by calling |print|. Note that if we are outputting the single standard ASCII character \.c, we could call |print("c")|, since |"c"=99| is the number of a single-character string, as explained above. But |print_char("c")| is quicker, so \TeX\ goes directly to the |print_char| routine when it knows that this is safe. (The present implementation assumes that it is always safe to print a visible ASCII character.) @^system dependencies@>
The first 256 entries above the 17th unicode plane are used for a special trick: when \TeX\ has to print items in that range, it will instead print the character that results from substracting 0x110000 from that value. This allows byte-oriented output to things like \.{\\specials} and \.{\\pdfliterals}. Todo: Perhaps it would be useful to do the same substraction while typesetting. */
void print(integer s) { /* prints string |s| */ ... } else if (s >= 0x110000) { int c = s - 0x110000; assert(c < 256); print_char(c); } else { ... }
It seems the second comment block talks about the code in which the error occurs. It also seems that this is either caused by some very high unicode character that's printed, or some invalid (uninitialized?) value is passed to print().
Do you think you could compile luatex with CFLAGS=-g, and run it in gdb to get a backtrace? That might help to see where this comes from...
changing STRIP_LUATEX=TRUE in STRIP_LUATEX=FALSE in build.sh isn't enough ? -- luigi