CTAN update: l3kernel, l3packages and l3experimental

CTAN Announcements ctan-ann at dante.de
Tue Jul 17 16:56:07 CEST 2012


the daemon sent 3 messages; i've conflated them here.

> Names of contributions: l3kernel, l3packages, l3experimental
> Author's name: The LaTeX3 Project
> Author's email: latex-team at latex-project.org
> Package version: SVN3990
> Location on CTAN: macros/latex/contrib/l3kernel/
> Summary description: LaTeX3 programming conventions
> License type: lppl
> 
> 
> Announcement text given by the package's contributor:
> ----------------------------------------------------------------------
> Snapshot of SVN 3990
> --------------------
> 
> This snapshot features a number of significant improvements to
> expl3.
> 
> *New FPU*
> 
> The entire l3fp module (the LaTeX3 floating point unit) has been
> rewritten to allow expandable floating point operations. This
> allows the introduction of 'floating point expressions', for
> example
> 
>   \fp_set:Nn \l_tmpa_fp { sin ( 3 / 4 ) }
> 
> The older non-expandable operations such as \fp_sin:Nn are
> therefore deprecated: \fp_add:Nn and \fp_sub:Nn are retained.
> 
> *Wider review of consistency*
> 
> The team have taken advantage of introduction of the new FPU to
> review consistency across the l3kernel modules. This has
> resulted in a number of functions being either renamed or
> deprecated. These changes have been detailed on the LaTeX-L
> list, along with a small number of other deprecations which
> reflect a general improvement in the logic of expl3. The
> removals are:
> 
>  - \ExplSyntaxNames(On|Off)
>  - \clist_if_eq:NN(TF)
>  - \clist_use:N, \seq_use:N
>  - \msg_two_newlines:
>  - \msg_class_set:nn
>  - \quark_if_recursion_tail_break:(N|n)
>  - \skip_if_infinite_glue:n(TF)
>  - \l_tmpc_int
>  - \<type>_length       => \<type>_count
>  - \if_num:w            => \if_int_compare:w
>  - \ior(_str)_(g)to:NN  => \ior_get(_str):NN
>  - \prg_case_<type>:nnn => \<type>_case:nnn
>  - \prg_stepwise_...    => \int_step_...
>  - \prop_del            => \prop_remove
>  - \msg_newline:        => \\ or \iow_newline:
> 
> The team have also reviewed the use of x-type arguments in
> kernel-defined functions. In some cases, functions had been
> given x-type arg specs even though the expansion carried out was
> not exactly of this form. This has led to the deprecation of a
> one function and renaming of three others:
> 
>  - \tl_if_empty:xTF
>  - \iow_wrap:xnnnN   => \iow_wrap:nnnN
>  - \str_case:xxn     => \str_case_x:nnn
>  - \str_if_eq:xx(TF) => \str_if_eq_x:nn(TF)
> 
> It also means that some functions have been revised so that the
> x-type versions are based on n-type base functions in the
> standard way. These are all within the message system.
> 
> *Improving status details*
> 
> The revisions above mean that some modules of l3kernel have now
> been reviewed carefully by the team. For those modules, we have
> removed the 'Experimental' statement from the description; thus
> for example l3int is now simply
> 
>   L3 Integers
> 
> rather than
> 
>   L3 Experimental integers
> 
> At the same time, there are more experimental additions to be
> made to l3kernel which we want to include in the distribution
> whilst allowing some flexibility. We also want programmers to be
> able to find which functions have this status by reading the
> documentation. A new l3candidates module has therefore been
> added, and all distributed experimental additions to the kernel
> have been moved here.
> 
> *Marking up internal code*
> 
> Separating out functions which are documented and thus generally
> usable from those for 'internal' use only is an important part
> of the LaTeX3 work. To aid this, the team have introduced a new
> convention to indicate all internal material using two
> underscore characters. At the same time, an 'extended DocStrip'
> program has been added to LaTeX3 to simplify this process. Full
> details are included in the documentation.
> 
> In general, making this change should not affect existing code
> from third parties. However, some kernel-internal functions may
> have been used by others as the status of these was not
> previously made clear. The renaming may therefore require
> adjustments. Issues in this area should as usual be raised on
> the LaTeX-L mailing list.
> 
> *General changes*
> 
> The snapshot includes the usual list of more general changes in l3kernel:
> 
>  - The && operator now binds more tightly in boolean expressions
>    than the || operator, as in other programming languages.
>  - Breaking mappings and similar structures has been improved so
>    that the break is always to the appropriate end point.
>  - Indexing of all structures is now from one, not zero. This
>    reflects the fact that LaTeX programming is used to support
>    'natural' lists and so forth, and so offset indexing is
>    inappropriate.
>  - Vertical coffins should now set \linewidth and \columnwidth
>    correctly.
>  - The \errorcontextlines primitive is now not altered in
>    package mode so that users setting are respected.
>  - Getting and popping from an empty sequence or comma list now
>    returns \q_no_value, consistent with property list behaviour.
>  - All get and pop operations on property lists, sequences and clists 
>    now support variants with TF branches (i.e., the check for 
>    \q_no_value is done internally and the appropriate branch 
>    selected). They are the recommended interfaces for normal use.
>  - New \tl_concat:NNN family of functions.
>  - Added experimental \(clist|seq)_use:Nnnn for more nuanced use
>    of list structures.
>  - Added .initial:(n|V) to l3keys
>  - Improved appearance of ...show:n functions at the terminal.
>  - Updated \box_show:N and new \box_show:Nnn to provide more
>    information, including full box contents with \box_show:N,
>    also new \box_log:N and \box_log:Nnn for writing to the log.
>  - Remove a number of 'expired' functions.
>  - Native drivers improved to now support pdfTeX 1.30 onward,
>    matching engine coverage stated for expl3 in general
>  - Drop loading of color package and load graphics as late as
>    possible, to avoid option clashes.
>  - Protected all variants involving an x-type expansion, and
>    made \cs_generate_variant:Nn, the \cs_(new|set|gset):Nn
>    family of functions, and \prg_new_protected_conditional:Npnn
>    more resilient against invalid input.
>  - Provide two local and two global scratch variables for each
>    type.
> 
> *xparse*
> 
>  - Bug in expandable functions fixed so that they will
>    correctly accept \par tokens is the argument signature is
>    appropriate.
>  - Revise definition of 'NoValue' such that it does not use a
>    document-level token at all.
> 
> ----------------------------------------------------------------------
> 
> 
> Users may view the package catalogue entries at
>   http://mirror.ctan.org/help/Catalogue/entries/l3kernel.html
>   http://mirror.ctan.org/help/Catalogue/entries/l3packages.html
>   http://mirror.ctan.org/help/Catalogue/entries/l3experimental.html
> or they may browse the packages' directories at
>   http://mirror.ctan.org/macros/latex/contrib/l3kernel/
>   http://mirror.ctan.org/macros/latex/contrib/l3packages/
>   http://mirror.ctan.org/macros/latex/contrib/l3experimental/

thanks for the upload; i've installed the new version, and updated the
catalogue repository.

Robin Fairbairns

For the CTAN team



More information about the Ctan-ann mailing list