On 4/21/11, Joseph Wright <[log in to unmask]> wrote:
> On 21/04/2011 09:27, Will Robertson wrote:
>> Bruno has raised an issue  with \cs_new:Npn: it's slow.
>> : http://github.com/latex3/svn-mirror/issues/17
>> Around the time when the "\cs_" prefix was first introduced, Morten added
>> a check to \cs_new:Npn to ensure you weren't trying to use it to define a
>> command with a ":D" suffix, as they should be reserved for engine
>> This seemed like a good idea at the time, but considering how often
>> \cs_new:Npn is used in expl3, it has a definite performance hit to
>> performing this check each and every time it's used.
>> We'd like to propose dropping this check and moving it into the currently
>> defunct l3chk module, which is designed to "switch on" these optional
>> checks that are nice in theory but not efficient in practise. (l3chk
>> hasn't been maintained so much but at some point I'd like to revive it.)
>> Any thoughts for or against this idea?
> I am in favour of this: checking for 'free' functions should really just
> do that (after all, there are _lots_ of other mistakes that could be
> made that are not checked).
> On the l3chk module, I think it is clear we need to overhaul the
> 'checking' guards and so forth for a 'slower but more careful' version
> of expl3 for debugging. This check would fit in there, I guess.
Additionnal check that l3chk could perform (but should be disablable):
that the module only defines functions which belongs to it (i.e. the
part before the first "_" is good), with perhaps something to declare
what namespace the programmer wants to use.