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