Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: latex3/latex3
base: 2019-08-25
head repository: latex3/latex3
compare: 2019-09-19
Commits on Aug 26, 2019
Commits on Sep 03, 2019
This works by pure expansion so is needed for upcoming
file function additions. At present, it may not be
available hence needing to retain the older non-expansion
code in a conditional.
The \pdffilesize primitive reports nothing for e.g.
/dev/null.
Commits on Sep 04, 2019
This doesn't actually cost a stream, only a csname,
so there is no real 'hit' in doing things the official way.
What's important is that for a non-existent file
This is a straight copy from the dvips driver:
not sure why it got missed!
Commits on Sep 18, 2019
Don't use \file_input:nT, which has been removed in commit
ecd4174. Use \file_input:n instead.
…-to-read-l3doc.cfg

l3doc.cls: fix bug when trying to read l3doc.cfg
Showing with 6,040 additions and 744 deletions.
  1. +12 −1 l3backend/CHANGELOG.md
  2. +1 −1 l3backend/README.md
  3. +8 −8 l3backend/l3backend-basics.dtx
  4. +1 −1 l3backend/l3backend-box.dtx
  5. +1 −1 l3backend/l3backend-color.dtx
  6. +2 −2 l3backend/l3backend-draw.dtx
  7. +51 −5 l3backend/l3backend-graphics.dtx
  8. +18 −18 l3backend/l3backend-pdf.dtx
  9. +8 −1 l3experimental/CHANGELOG.md
  10. +1 −1 l3experimental/README.md
  11. +2 −2 l3experimental/l3benchmark/l3benchmark.dtx
  12. +160 −26 l3experimental/l3cctab/l3cctab.dtx
  13. +1,301 −0 l3experimental/l3cctab/testfiles/m3cctab000.luatex.tlg
  14. +48 −0 l3experimental/l3cctab/testfiles/m3cctab000.lvt
  15. +1,300 −0 l3experimental/l3cctab/testfiles/m3cctab000.tlg
  16. +1,308 −0 l3experimental/l3cctab/testfiles/m3cctab000.xetex.tlg
  17. +107 −0 l3experimental/l3cctab/testfiles/m3cctab001.lvt
  18. +23 −0 l3experimental/l3cctab/testfiles/m3cctab001.tlg
  19. +44 −0 l3experimental/l3cctab/testfiles/m3cctab002.luatex.tlg
  20. +29 −0 l3experimental/l3cctab/testfiles/m3cctab002.lvt
  21. +39 −0 l3experimental/l3cctab/testfiles/m3cctab002.tlg
  22. +2 −2 l3experimental/l3color/l3color.dtx
  23. +1 −1 l3experimental/l3draw/l3draw-boxes.dtx
  24. +1 −1 l3experimental/l3draw/l3draw-layers.dtx
  25. +1 −1 l3experimental/l3draw/l3draw-paths.dtx
  26. +1 −1 l3experimental/l3draw/l3draw-points.dtx
  27. +1 −1 l3experimental/l3draw/l3draw-scopes.dtx
  28. +1 −1 l3experimental/l3draw/l3draw-softpath.dtx
  29. +1 −1 l3experimental/l3draw/l3draw-state.dtx
  30. +1 −1 l3experimental/l3draw/l3draw-transforms.dtx
  31. +2 −2 l3experimental/l3draw/l3draw.dtx
  32. +2 −2 l3experimental/l3graphics/l3graphics.dtx
  33. +2 −2 l3experimental/l3pdf/l3pdf.dtx
  34. +2 −2 l3experimental/l3str/l3str-format.dtx
  35. +2 −2 l3experimental/l3sys-shell/l3sys-shell.dtx
  36. +2 −2 l3experimental/xcoffins/xcoffins.dtx
  37. +2 −2 l3experimental/xgalley/l3galley.dtx
  38. +2 −2 l3experimental/xgalley/xgalley.dtx
  39. +30 −2 l3kernel/CHANGELOG.md
  40. +1 −1 l3kernel/README.md
  41. +2 −2 l3kernel/expl3.dtx
  42. +1 −1 l3kernel/interface3.tex
  43. +1 −1 l3kernel/l3alloc.dtx
  44. +2 −2 l3kernel/l3basics.dtx
  45. +1 −1 l3kernel/l3bootstrap.dtx
  46. +1 −1 l3kernel/l3box.dtx
  47. +66 −78 l3kernel/l3candidates.dtx
  48. +1 −1 l3kernel/l3clist.dtx
  49. +1 −1 l3kernel/l3coffins.dtx
  50. +1 −1 l3kernel/l3color-base.dtx
  51. +1 −1 l3kernel/l3deprecation.dtx
  52. +8 −7 l3kernel/l3doc.dtx
  53. +1 −1 l3kernel/l3docstrip.dtx
  54. +1 −1 l3kernel/l3expan.dtx
  55. +454 −162 l3kernel/l3file.dtx
  56. +1 −1 l3kernel/l3final.dtx
  57. +1 −1 l3kernel/l3flag.dtx
  58. +1 −1 l3kernel/l3fp-assign.dtx
  59. +1 −1 l3kernel/l3fp-aux.dtx
  60. +1 −1 l3kernel/l3fp-basics.dtx
  61. +1 −1 l3kernel/l3fp-convert.dtx
  62. +1 −1 l3kernel/l3fp-expo.dtx
  63. +1 −1 l3kernel/l3fp-extended.dtx
  64. +1 −1 l3kernel/l3fp-logic.dtx
  65. +1 −1 l3kernel/l3fp-parse.dtx
  66. +1 −1 l3kernel/l3fp-random.dtx
  67. +1 −1 l3kernel/l3fp-round.dtx
  68. +1 −1 l3kernel/l3fp-traps.dtx
  69. +1 −1 l3kernel/l3fp-trig.dtx
  70. +1 −1 l3kernel/l3fp.dtx
  71. +1 −1 l3kernel/l3fparray.dtx
  72. +1 −1 l3kernel/l3int.dtx
  73. +1 −1 l3kernel/l3intarray.dtx
  74. +1 −1 l3kernel/l3kernel-functions.dtx
  75. +1 −1 l3kernel/l3keys.dtx
  76. +1 −1 l3kernel/l3legacy.dtx
  77. +1 −1 l3kernel/l3luatex.dtx
  78. +1 −1 l3kernel/l3msg.dtx
  79. +1 −1 l3kernel/l3names.dtx
  80. +1 −0 l3kernel/l3prefixes.csv
  81. +1 −1 l3kernel/l3prg.dtx
  82. +49 −1 l3kernel/l3prop.dtx
  83. +1 −1 l3kernel/l3quark.dtx
  84. +8 −8 l3kernel/l3regex.dtx
  85. +45 −1 l3kernel/l3seq.dtx
  86. +1 −1 l3kernel/l3skip.dtx
  87. +1 −1 l3kernel/l3sort.dtx
  88. +4 −4 l3kernel/l3str-convert.dtx
  89. +6 −2 l3kernel/l3str.dtx
  90. +1 −1 l3kernel/l3styleguide.tex
  91. +1 −1 l3kernel/l3syntax-changes.tex
  92. +1 −1 l3kernel/l3sys.dtx
  93. +1 −1 l3kernel/l3term-glossary.tex
  94. +1 −1 l3kernel/l3tl-analysis.dtx
  95. +56 −11 l3kernel/l3tl.dtx
  96. +1 −1 l3kernel/l3token.dtx
  97. +26 −20 l3kernel/l3unicode.dtx
  98. +1 −1 l3kernel/source3.tex
  99. +2 −2 l3kernel/testfiles/m3char001.luatex.tlg
  100. +6 −6 l3kernel/testfiles/m3char001.ptex.tlg
  101. +6 −6 l3kernel/testfiles/m3char001.tlg
  102. +6 −6 l3kernel/testfiles/m3char001.uptex.tlg
  103. +2 −2 l3kernel/testfiles/m3char001.xetex.tlg
  104. +50 −15 l3kernel/testfiles/m3expl001.luatex.tlg
  105. +51 −15 l3kernel/testfiles/m3expl001.ptex.tlg
  106. +51 −15 l3kernel/testfiles/m3expl001.tlg
  107. +51 −15 l3kernel/testfiles/m3expl001.uptex.tlg
  108. +51 −15 l3kernel/testfiles/m3expl001.xetex.tlg
  109. +2 −2 l3kernel/testfiles/m3expl002.luatex.tlg
  110. +2 −2 l3kernel/testfiles/m3expl002.ptex.tlg
  111. +2 −2 l3kernel/testfiles/m3expl002.tlg
  112. +2 −2 l3kernel/testfiles/m3expl002.uptex.tlg
  113. +2 −2 l3kernel/testfiles/m3expl002.xetex.tlg
  114. +50 −15 l3kernel/testfiles/m3expl003.luatex.tlg
  115. +51 −15 l3kernel/testfiles/m3expl003.ptex.tlg
  116. +51 −15 l3kernel/testfiles/m3expl003.tlg
  117. +51 −15 l3kernel/testfiles/m3expl003.uptex.tlg
  118. +51 −15 l3kernel/testfiles/m3expl003.xetex.tlg
  119. +2 −2 l3kernel/testfiles/m3expl004.luatex.tlg
  120. +2 −2 l3kernel/testfiles/m3expl004.ptex.tlg
  121. +2 −2 l3kernel/testfiles/m3expl004.tlg
  122. +2 −2 l3kernel/testfiles/m3expl004.uptex.tlg
  123. +2 −2 l3kernel/testfiles/m3expl004.xetex.tlg
  124. +2 −2 l3kernel/testfiles/m3expl006.luatex.tlg
  125. +2 −2 l3kernel/testfiles/m3expl006.ptex.tlg
  126. +2 −2 l3kernel/testfiles/m3expl006.tlg
  127. +2 −2 l3kernel/testfiles/m3expl006.uptex.tlg
  128. +2 −2 l3kernel/testfiles/m3expl006.xetex.tlg
  129. +28 −18 l3kernel/testfiles/m3file001.luatex.tlg
  130. +14 −12 l3kernel/testfiles/m3file001.lvt
  131. +28 −18 l3kernel/testfiles/m3file001.ptex.tlg
  132. +28 −18 l3kernel/testfiles/m3file001.tlg
  133. +28 −18 l3kernel/testfiles/m3file001.uptex.tlg
  134. +28 −18 l3kernel/testfiles/m3file001.xetex.tlg
  135. +14 −1 l3kernel/testfiles/m3seq008.lvt
  136. +19 −0 l3kernel/testfiles/m3seq008.tlg
@@ -6,6 +6,16 @@ this project uses date-based 'snapshot' version identifiers.

## [Unreleased]

## [2019-09-05]

### Added

- Support for EPS and PDF files with `dvisvgm` backend

### Fixed

- Some primitive use in the `dvips` backend

## [2019-08-25]

### Fixed
@@ -25,6 +35,7 @@ this project uses date-based 'snapshot' version identifiers.
- Include `l3backend` in file names
- Moved backend code to internal for each 'parent' module

[Unreleased]: https://github.com/latex3/latex3/compare/2019-08-25...HEAD
[Unreleased]: https://github.com/latex3/latex3/compare/2019-09-05...HEAD
[2019-09-05]: https://github.com/latex3/latex3/compare/2019-08-25...2019-09-05
[2019-08-25]: https://github.com/latex3/latex3/compare/2019-07-01...2019-08-25
[2019-07-01]: https://github.com/latex3/latex3/compare/2019-05-28...2019-07-01
@@ -1,7 +1,7 @@
LaTeX3 Backend Drivers
======================

Release 2019-08-25
Release 2019-09-05

This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
@@ -43,7 +43,7 @@
% }^^A
% }
%
% \date{Released 2019-08-25}
% \date{Released 2019-09-05}
%
% \maketitle
%
@@ -62,7 +62,7 @@
% Whilst there is a reasonable amount of code overlap between backends,
% it is much clearer to have the blocks more-or-less separated than run
% in together and DocStripped out in parts. As such, most of the following
% is set up on a per-backed basis, though there is some common code (again
% is set up on a per-backend basis, though there is some common code (again
% given in blocks not interspersed with other material).
%
% All the file identifiers are up-front so that they come out in the right
@@ -72,23 +72,23 @@
\ProvidesExplFile
%<*dvipdfmx>
{l3backend-dvipdfmx.def}{2019-04-06}{}
{L3 Experimental backend support: dvipdfmx}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
{l3backend-dvips.def}{2019-04-06}{}
{L3 Experimental backend support: dvips}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
{l3backend-dvisvgm.def}{2019-04-06}{}
{L3 Experimental backend support: dvisvgm}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*pdfmode>
{l3backend-pdfmode.def}{2019-04-06}{}
{L3 Experimental backend support: PDF mode}
{L3 backend support: PDF mode}
%</pdfmode>
%<*xdvipdfmx>
{l3backend-xdvipdfmx.def}{2019-04-06}{}
{L3 Experimental backend support: xdvipdfmx}
{L3 backend support: xdvipdfmx}
%</xdvipdfmx>
%</package>
% \end{macrocode}
@@ -176,7 +176,7 @@
% \__kernel_backend_align_begin:,
% \__kernel_backend_align_end:
% }
% In \texttt{dvips} there is no build-in saving of the current
% In \texttt{dvips} there is no built-in saving of the current
% position, and so some additional PostScript is required to set up the
% transformation matrix and also to restore it afterwards. Notice the use
% of the stack to save the current position \enquote{up front} and to
@@ -43,7 +43,7 @@
% }^^A
% }
%
% \date{Released 2019-08-25}
% \date{Released 2019-09-05}
%
% \maketitle
%
@@ -43,7 +43,7 @@
% }^^A
% }
%
% \date{Released 2019-08-25}
% \date{Released 2019-09-05}
%
% \maketitle
%
@@ -43,7 +43,7 @@
% }^^A
% }
%
% \date{Released 2019-08-25}
% \date{Released 2019-09-05}
%
% \maketitle
%
@@ -393,7 +393,7 @@
\cs_new_protected:Npn \@@_backend_color_fill:n #1
{
\__kernel_backend_postscript:n
{ SDict ~ begin ~ /color.fc ~ { #1 } ~ def ~ end }
{ /color.fc ~ { #1 } ~ def }
}
\cs_generate_variant:Nn \@@_backend_color_fill:n { x }
\cs_new_protected:Npn \@@_backend_color_stroke:n #1
@@ -43,7 +43,7 @@
% }^^A
% }
%
% \date{Released 2019-08-25}
% \date{Released 2019-09-05}
%
% \maketitle
%
@@ -557,22 +557,68 @@
%<*dvisvgm>
% \end{macrocode}
%
% \begin{macro}{\@@_backend_getbb_png:n, \@@_backend_getbb_jpg:n}
% These can be included by extracting the bounding box data.
% \begin{macro}{\@@_backend_getbb_eps:n}
% Simply use the generic function.
% \begin{macrocode}
%<*initex>
\use:n
%</initex>
%<*package>
\AtBeginDocument
%</package>
{ \cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_backend_getbb_png:n, \@@_backend_getbb_jpg:n}
% These can be included by extracting the bounding box data.
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_getbb_jpg:n #1
{
\int_zero:N \l_graphics_page_int
\tl_clear:N \l_graphics_pagebox_tl
\graphics_extract_bb:n {#1}
}
\cs_new_eq:NN \@@_backend_getbb_png:n \@@_backend_getbb_jpg:n
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_backend_getbb_pdf:n}
% Same as for \texttt{dvipdfmx}: use the generic function
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_getbb_pdf:n #1
{
\cs_new_eq:NN \@@_backend_getbb_png:n \graphics_extract_bb:n
\cs_new_eq:NN \@@_backend_getbb_jpg:n \graphics_extract_bb:n
\tl_clear:N \l_graphics_decodearray_tl
\bool_set_false:N \l_graphics_interpolate_bool
\graphics_extract_bb:n {#1}
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_backend_include_eps:n, \@@_backend_include_pdf:n}
% \begin{macro}{\@@_backend_include:nn}
% The special syntax is relatively clear here: remember we need PostScript
% sizes here. (This is the same as the \texttt{dvips} code.)
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_include_eps:n #1
{ @@_backend_include:nn { PSfile } {#1} }
\cs_new_protected:Npn \@@_backend_include_pdf:n #1
{ @@_backend_include:nn { pdffile } {#1} }
\cs_new_protected:Npn \@@_backend_include:nn #1#2
{
\__kernel_backend_literal:x
{
#1 = #2 \c_space_tl
llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
}
}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@@_backend_include_png:n, \@@_backend_include_jpg:n}
% \begin{macro}{\@@_backend_include_bitmap_quote:w}
% The backend here has built-in support for basic graphic inclusion (see
@@ -43,7 +43,7 @@
% }^^A
% }
%
% \date{Released 2019-08-25}
% \date{Released 2019-09-05}
%
% \maketitle
%
@@ -180,7 +180,7 @@
}
\cs_new_protected:Npn \@@_backend_object_write_stream:nnn #1#2#3
{
\@@_postscript:n
\__kernel_backend_postscript:n
{
[nobreak]
mark ~ #1 ~ ( #3 ) /PUT ~ pdfmark ~
@@ -809,14 +809,14 @@
\cs_new_protected:Npn \@@_backend_annotation_aux:nnnn #1#2#3#4
{
\box_move_down:nn {#3}
{ \hbox:n { \@@_postscript:n { pdf.save.ll } } }
{ \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } } }
\hbox:n {#4}
\box_move_up:nn {#2}
{
\hbox:n
{
\tex_kern:D \dim_eval:n {#1} \scan_stop:
\@@_postscript:n { pdf.save.ur }
\__kernel_backend_postscript:n { pdf.save.ur }
}
}
\int_gincr:N \g_@@_backend_object_int
@@ -948,7 +948,7 @@
\cs_new_protected:Npn \@@_backend_link_begin_aux:nw #1
{
\bool_gset_true:N \g_@@_backend_link_bool
\@@_postscript:n
\__kernel_backend_postscript:n
{ /pdf.link.dict ( #1 ) def }
\tl_gset:Nn \g_@@_backend_link_dict_tl {#1}
\@@_backend_link_sf_save:
@@ -985,18 +985,18 @@
%</package>
}
\box_move_down:nn { \box_dp:N \l_@@_backend_content_box }
{ \hbox:n { \@@_postscript:n { pdf.save.linkll } } }
{ \hbox:n { \__kernel_backend_postscript:n { pdf.save.linkll } } }
\@@_breaklink_postscript:n { pdf.bordertracking.begin }
\@@_breaklink_usebox:N \l_@@_backend_content_box
\@@_breaklink_postscript:n { pdf.bordertracking.end }
\box_move_up:nn { \box_ht:N \l_@@_backend_content_box }
{
\hbox:n
{ \@@_postscript:n { pdf.save.linkur } }
{ \__kernel_backend_postscript:n { pdf.save.linkur } }
}
\int_gincr:N \g_@@_backend_object_int
\int_gset_eq:NN \g_@@_backend_link_int \g_@@_backend_object_int
\@@_postscript:x
\__kernel_backend_postscript:x
{
mark
/_objdef { pdf.obj \int_use:N \g_@@_backend_link_int }
@@ -1010,7 +1010,7 @@
\cs_new_protected:Npn \@@_backend_link_minima:
{
\hbox_set:Nn \l_@@_backend_model_box { Gg }
\@@_postscript:x
\__kernel_backend_postscript:x
{
/pdf.linkdp.pad ~
\dim_to_decimal:n
@@ -1038,7 +1038,7 @@
}
\cs_new_protected:Npn \@@_backend_link_outerbox:n #1
{
\@@_postscript:x
\__kernel_backend_postscript:x
{
/pdf.outerbox
[
@@ -1103,20 +1103,20 @@
{
\vbox_set:Nn \@cclv
{
\@@_postscript:n
\__kernel_backend_postscript:n
{
pdf.globaldict /pdf.brokenlink.rect ~ known
{ pdf.bordertracking.continue }
if
}
\vbox_unpack_drop:N \@cclv
\@@_postscript:n
\__kernel_backend_postscript:n
{ pdf.bordertracking.endpage }
}
}
}
\tl_set:Nn \l_@@_breaklink_pdfmark_tl { pdf.pdfmark }
\cs_set_eq:NN \@@_breaklink_postscript:n \@@_postscript:n
\cs_set_eq:NN \@@_breaklink_postscript:n \__kernel_backend_postscript:n
\cs_set_eq:NN \@@_breaklink_usebox:N \hbox_unpack:N
}
}
@@ -1137,7 +1137,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_link_margin:n #1
{
\@@_postscript:x
\__kernel_backend_postscript:x
{
/pdf.linkmargin { \dim_to_decimal:n {#1} ~ pdf.pt.dvi } def
}
@@ -1152,7 +1152,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_destination:nn #1#2
{
\@@_postscript:n { pdf.dest.anchor }
\__kernel_backend_postscript:n { pdf.dest.anchor }
\@@_backend_pdfmark:x
{
/View
@@ -1181,11 +1181,11 @@
\hbox_set:Nn \l_@@_internal_box {#2}
\box_move_down:nn
{ \box_dp:N \l_@@_internal_box }
{ \hbox:n { \@@_postscript:n { pdf.save.ll } } }
{ \hbox:n { \__kernel_backend_postscript:n { pdf.save.ll } } }
\box_use:N \l_@@_internal_box
\box_move_up:nn
{ \box_ht:N \l_@@_internal_box }
{ \hbox:n { \@@_postscript:n { pdf.save.ur } } }
{ \hbox:n { \__kernel_backend_postscript:n { pdf.save.ur } } }
\@@_backend_pdfmark:n
{
/View
@@ -1838,7 +1838,7 @@
width ~ \dim_eval:n {#1} ~
height ~ \dim_eval:n {#2} ~
depth ~ \dim_eval:n {#3} ~
<< #4 >>
<</Type/Annot #4 >>
}
}
% \end{macrocode}
@@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers.

## [Unreleased]

## [2019-09-19]

### Changed

- Various improvements to `l3cctab`

## [2019-08-25]

### Changed
@@ -112,7 +118,8 @@ this project uses date-based 'snapshot' version identifiers.
- New `l3color` module using `xcolor`-like expression syntax
- New `l3draw` module, based on `pgf` layer of the TikZ system

[Unreleased]: https://github.com/latex3/latex3/compare/2019-08-25...HEAD
[Unreleased]: https://github.com/latex3/latex3/compare/2019-09-19...HEAD
[2019-09-19]: https://github.com/latex3/latex3/compare/2019-08-25...2019-09-19
[2019-08-25]: https://github.com/latex3/latex3/compare/2019-07-01...2019-08-25
[2019-07-01]: https://github.com/latex3/latex3/compare/2019-05-28...2019-07-01
[2019-05-28]: https://github.com/latex3/latex3/compare/2019-05-03...2019-05-28
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================

Release 2019-08-25
Release 2019-09-19

Overview
--------

No commit comments for this range