[latex3-commits] [l3svn] branch master updated (66ca83c -> 0dfa6c8)

Joseph Wright joseph.wright at morningstar2.co.uk
Wed Nov 23 14:37:06 CET 2016


On 23/11/2016 12:36, Bruno Le Floch wrote:
> Good job Joseph, switching from prop to tl and adding inheritance.  That
> latter point seems interesting!

Yes, though not currently quite as clever or efficient and that in
options (which is where the idea is from). I guess I need to think about
it a bit more.

> - If I read the code correctly the cs { \c_@@_type_root_tl
> \l_keys_path_tl } can only be undefined or equal to "choice".  Would it
> make sense to have a boolean perhaps?  Maybe not, if the real
> distinction is between defined and undefined (it might be annoying to
> have to test separately if a key is defined and if that bool is true/false).

At the moment it's only used for choices, but it could hold other data:
again, see options. Hsving two tests gets slow, hence wanting to remove
the prop usage, etc.

> - Showing the key doesn't tell us all the information (such as whether
> it is a choice key) anymore it seems?

Yes, I guess I should fix that :)

> - Inherit looks interesting.  Could you expand the doc?  Are keys
> defined previously for bar/ clobbered by "bar .inherit:n = foo" (I guess
> yes, or error message perhaps)?  Can further keys be defined (I guess
> yes)? What if "foo" is a key rather than a module containing keys?
> Basically can I use it to copy a key name as in the following?
> 
> \keys_set:nn { mymodule }
>   {
>     a4paper .bool_set:N = \l_aivpaper_bool ,
>     standardeuropeanpaper .inherit:n = a4paper
>   }
> 
> Should I think of it as "cp", or "ln -s" namely if the original is
> altered afterward, is the inheriting also altered?

It's path-based, not key-based. I'll work on this a bit more: I'm still
working out how best to implement, etc., given our key model (which is
not quite the same as pgf/options).

> - In the corresponding test file, only "Defining key module/key-one on
> line ..." appears, not the corresponding line "Defining key
> module2/path/key-one on line ..." that could be helpful to determine
> what keys are defined.  Of course from the implementation point of view
> the way it currently is is more natural.

Ah, but they are not defined! It's a lookup based approach at point of
use. (Aside: options stores data to allow the full key tree to be
printed from any point. Do we want that?)

Joseph


More information about the latex3-commits mailing list