[lltx] [luatexbase] Change in the behaviour of \newluatexattribute ?

Khaled Hosny khaledhosny at eglug.org
Fri May 21 15:02:54 CEST 2010

On Fri, May 21, 2010 at 02:53:30PM +0200, Manuel Pégourié-Gonnard wrote:
> Le 21/05/2010 14:42, Khaled Hosny a écrit :
> > After spending most of the day debugging why Arabic shaping is broken in
> > the luaotfload, it turned out to be an attribute issue. The first
> > allocated attribute by \newluatexattribute is 0 and ConTeXt code don't
> > seem to like that, it specifically expects attributes used in luaotfload
> > to be < 255 and > 127.
> > 
> IMHO, it shouldn't expect that. I tend to call that broken, unless someone
> provides me with a good explanation.

There are some comments in the code, but basically Hans doesn't allocate
attributes at TeX end, and in lua he reserves ranges for special uses.
The code has a function, attributes.private, that allocates attributes
in this range, but we override it sense it doesn't check if the
attribute is already allocated, our replacement hand allocate attributes
using \newluatexattribute.

> > The problem didn't show before switch to luatexbase, so I expect there
> > was some change in how \newluatexattribute allocates new attributes.
> There was a minor change, I don't remember the details right now, but indeed
> allocation didn't start at 0 previously for some reason. Since allocation should
> be a black box, I didn't expect the change to be noticeable, that's why I didn't
> announce it.

I can work around it by allocating a dummy attribute first if you don't
want to change it back, not a big deal.

> > Also, to avoid any other hidden surprises, is there a way for luaotfload
> > to assign attributes in the aforementioned range in a way that works
> > nicely with the attributes package?
> > 
> No. I can't see any nice way to to that. Well, if less than 127 attributes have
> been allocated, you could allocate dummy attributes up to 127, then start
> allocating your attributes. If more than 255 attributes have already been
> allocated, there's nothing you can do.

OK, I wanted to be on the safe side, but lets just assume there no other
problems beyond the one we just found.


 Khaled Hosny
 Arabic localiser and member of Arabeyes.org team
 Free font developer

More information about the lualatex-dev mailing list