CTAN Comprehensive TeX Archive Network

CTAN update: l3kernel, l3packages and l3experimental

Date: July 17, 2012 3:56:07 PM CEST
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

l3experimental – Experimental 3 concepts

The l3experimental packages are a collection of experimental implementations for aspects of the 3 kernel, dealing with higher-level ideas such as the Designer Interface. Some of them work as stand alone packages, providing new functionality, and can be used on top of with no changes to the existing kernel.

The present release includes:

  • l3benchmark for measuring the time taken by to run certain code;
  • l3draw, a code-level interface for constructing drawings;
  • l3graphics, an interfaces for the inclusion of graphics files;
  • l3opacity, support for opacity in PDF output;
  • l3str, support for string manipulation;
  • xcoffins, which allows the alignment of boxes using a series of ‘handle’ positions, supplementing the simple reference point;
  • xgalley, which controls boxes receiving text for typesetting.

Packagel3experimental
Version 2024-03-14
Copyright1998–2004, 2008–2012, 2014–2024 The 3 Project
MaintainerThe Project Team

Announcements

more

Guest Book Sitemap Contact Contact Author