[latex3-commits] [l3svn] branch master updated: Update for TL'17

noreply at latex-project.org noreply at latex-project.org
Sun Jun 4 20:40:59 CEST 2017


This is an automated email from the git hooks/post-receive script.

joseph pushed a commit to branch master
in repository l3svn.

The following commit(s) were added to refs/heads/master by this push:
       new  3955a10   Update for TL'17
3955a10 is described below

commit 3955a102f97701b02a8de1110fc66e342fcb5127
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Sun Jun 4 19:40:26 2017 +0100

    Update for TL'17
    
    One change in normalisation (l3build).
---
 contrib/testfiles/ctex002.luatex.tlg               |    3 +-
 contrib/testfiles/ctex002.tlg                      |    3 +-
 contrib/testfiles/ctex002.xetex.tlg                |    3 +-
 contrib/testfiles/fontspec001.luatex.tlg           |    3 +-
 contrib/testfiles/fontspec001.xetex.tlg            |    3 +-
 contrib/testfiles/mhchem001.tlg                    |    3 +-
 contrib/testfiles/siunitx001.tlg                   |    3 +-
 contrib/testfiles/unicode-math001.luatex.tlg       |    3 +-
 contrib/testfiles/unicode-math001.xetex.tlg        |    3 +-
 l3build/l3build.lua                                |    1 +
 .../xcoffins/testfiles/xcoffins003.luatex.tlg      |  168 +++++-----
 l3kernel/testfiles/d3dvipdfmx.lvt                  |    4 +-
 l3kernel/testfiles/d3dvips.luatex.tlg              |   28 +-
 l3kernel/testfiles/d3dvips.lvt                     |    4 +-
 l3kernel/testfiles/d3dvisvgm.luatex.tlg            |   28 +-
 l3kernel/testfiles/d3dvisvgm.lvt                   |    4 +-
 l3kernel/testfiles/d3pdfmode.ptex.tlg              |   38 +--
 l3kernel/testfiles/d3pdfmode.uptex.tlg             |   38 +--
 l3kernel/testfiles/d3xdvipdfmx.ptex.tlg            |   38 +--
 l3kernel/testfiles/d3xdvipdfmx.uptex.tlg           |   38 +--
 l3kernel/testfiles/m3box003.luatex.tlg             |  350 --------------------
 l3kernel/testfiles/m3coffins001.luatex.tlg         |   14 +-
 l3kernel/testfiles/m3expl001.ptex.tlg              |   71 ++--
 l3kernel/testfiles/m3expl001.uptex.tlg             |   71 ++--
 l3kernel/testfiles/m3expl002.ptex.tlg              |   47 +--
 l3kernel/testfiles/m3expl002.uptex.tlg             |   47 +--
 l3kernel/testfiles/m3expl003.ptex.tlg              |   71 ++--
 l3kernel/testfiles/m3expl003.uptex.tlg             |   71 ++--
 l3kernel/testfiles/m3expl004.ptex.tlg              |   47 +--
 l3kernel/testfiles/m3expl004.uptex.tlg             |   47 +--
 l3kernel/testfiles/m3expl006.ptex.tlg              |   47 +--
 l3kernel/testfiles/m3expl006.uptex.tlg             |   47 +--
 l3kernel/testfiles/m3rand001.ptex.tlg              |  301 ++++-------------
 l3kernel/testfiles/m3rand001.uptex.tlg             |  301 ++++-------------
 l3trial/l3hooks/testfiles/m3hooks001.luatex.tlg    |  189 +++++------
 l3trial/xbox/testfiles/xbox001.luatex.tlg          |   14 +-
 support/regression-test.cfg                        |    4 +-
 37 files changed, 808 insertions(+), 1347 deletions(-)

diff --git a/contrib/testfiles/ctex002.luatex.tlg b/contrib/testfiles/ctex002.luatex.tlg
index c3f8bc2..094a4ab 100644
--- a/contrib/testfiles/ctex002.luatex.tlg
+++ b/contrib/testfiles/ctex002.luatex.tlg
@@ -17,7 +17,7 @@ Completed box being shipped out [1]
 ....\TU/lmr/m/n/10.53937 1
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 522.23804fil, direction TLT
+..\vbox(550.0+0.0)x345.0, glue set 523.50262fil, direction TLT
 ...\whatsit4=[]
 ...\write-{}
 ...\glue(\topskip) 0.72536
@@ -78,6 +78,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -1.26472
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/ctex002.tlg b/contrib/testfiles/ctex002.tlg
index 410e294..c6a3120 100644
--- a/contrib/testfiles/ctex002.tlg
+++ b/contrib/testfiles/ctex002.tlg
@@ -32,7 +32,7 @@ Completed box being shipped out [1]
 ....\OT1/cmr/m/n/10.53937 1
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 522.4488fil
+..\vbox(550.0+0.0)x345.0, glue set 523.50262fil
 ...\write-{}
 ...\glue(\topskip) 1.56851
 ...\hbox(8.43149+1.05394)x345.0, glue set 260.68488fil
@@ -89,6 +89,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -1.05394
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/ctex002.xetex.tlg b/contrib/testfiles/ctex002.xetex.tlg
index b8e14a1..cdf3bac 100644
--- a/contrib/testfiles/ctex002.xetex.tlg
+++ b/contrib/testfiles/ctex002.xetex.tlg
@@ -13,7 +13,7 @@ Completed box being shipped out [1]
 ....\kern 0.0002
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 522.81766fil
+..\vbox(550.0+0.0)x345.0, glue set 523.50262fil
 ...\write-{}
 ...\glue(\topskip) 1.88469
 ...\hbox(8.11531+2.03409)x345.0, glue set 268.03099fil
@@ -51,6 +51,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -0.68504
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/fontspec001.luatex.tlg b/contrib/testfiles/fontspec001.luatex.tlg
index 4bf2a10..001f5a7 100644
--- a/contrib/testfiles/fontspec001.luatex.tlg
+++ b/contrib/testfiles/fontspec001.luatex.tlg
@@ -9,7 +9,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0, direction TLT
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 539.83234fil, direction TLT
+..\vbox(550.0+0.0)x345.0, glue set 539.94232fil, direction TLT
 ...\write-{}
 ...\glue(\topskip) 3.06
 ...\hbox(6.94+0.11)x345.0, glue set 279.97fil, direction TLT
@@ -34,6 +34,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -0.11
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/fontspec001.xetex.tlg b/contrib/testfiles/fontspec001.xetex.tlg
index d391c6e..25b089b 100644
--- a/contrib/testfiles/fontspec001.xetex.tlg
+++ b/contrib/testfiles/fontspec001.xetex.tlg
@@ -9,7 +9,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 539.83235fil
+..\vbox(550.0+0.0)x345.0, glue set 539.94232fil
 ...\write-{}
 ...\glue(\topskip) 3.06
 ...\hbox(6.94+0.10999)x345.0, glue set 279.97fil
@@ -20,6 +20,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -0.10999
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/mhchem001.tlg b/contrib/testfiles/mhchem001.tlg
index c946cc6..c92f4ea 100644
--- a/contrib/testfiles/mhchem001.tlg
+++ b/contrib/testfiles/mhchem001.tlg
@@ -9,7 +9,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 526.44379fil
+..\vbox(550.0+0.0)x345.0, glue set 527.9436fil
 ...\write-{}
 ...\glue(\topskip) 3.16669
 ...\hbox(6.83331+1.49998)x345.0, glue set 196.22217fil
@@ -240,6 +240,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -1.49998
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/siunitx001.tlg b/contrib/testfiles/siunitx001.tlg
index 87e3b9a..2e42896 100644
--- a/contrib/testfiles/siunitx001.tlg
+++ b/contrib/testfiles/siunitx001.tlg
@@ -10,7 +10,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 489.94766fil
+..\vbox(550.0+0.0)x345.0, glue set 493.4473fil
 ...\write-{}
 ...\glue(\topskip) 1.85997
 ...\hbox(8.14003+0.0)x345.0, glue set 264.49985fil
@@ -351,6 +351,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -3.5
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/unicode-math001.luatex.tlg b/contrib/testfiles/unicode-math001.luatex.tlg
index 71d1d74..bc02795 100644
--- a/contrib/testfiles/unicode-math001.luatex.tlg
+++ b/contrib/testfiles/unicode-math001.luatex.tlg
@@ -21,7 +21,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0, direction TLT
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 537.89252fil, direction TLT
+..\vbox(550.0+0.0)x345.0, glue set 539.94232fil, direction TLT
 ...\write-{}
 ...\glue(\topskip) 3.05556
 ...\hbox(6.94444+2.05)x345.0, glue set 256.38202fil, direction TLT
@@ -56,6 +56,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -2.05
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/contrib/testfiles/unicode-math001.xetex.tlg b/contrib/testfiles/unicode-math001.xetex.tlg
index 3431789..15db656 100644
--- a/contrib/testfiles/unicode-math001.xetex.tlg
+++ b/contrib/testfiles/unicode-math001.xetex.tlg
@@ -21,7 +21,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 537.89255fil
+..\vbox(550.0+0.0)x345.0, glue set 539.94232fil
 ...\write-{}
 ...\glue(\topskip) 3.05556
 ...\hbox(6.94444+2.05)x345.0, glue set 256.16174fil
@@ -52,6 +52,7 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
+...\glue -2.05
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil
diff --git a/l3build/l3build.lua b/l3build/l3build.lua
index 44a4783..b1d9303 100644
--- a/l3build/l3build.lua
+++ b/l3build/l3build.lua
@@ -849,6 +849,7 @@ local function formatlog(logfile, newfile, engine)
     end
     -- Remove 'normal' direction information on boxes with (u)pTeX
     line = gsub(line, ",? yoko direction,?", "")
+    line = gsub(line, ",? yoko%(math%) direction,?", "")
     -- Remove the \special line that in DVI mode keeps PDFs comparable
     if match(line, "^%.*\\special%{pdf: docinfo << /Creator") then
       return ""
diff --git a/l3experimental/xcoffins/testfiles/xcoffins003.luatex.tlg b/l3experimental/xcoffins/testfiles/xcoffins003.luatex.tlg
index 6e22fd2..1a1fedf 100644
--- a/l3experimental/xcoffins/testfiles/xcoffins003.luatex.tlg
+++ b/l3experimental/xcoffins/testfiles/xcoffins003.luatex.tlg
@@ -55,35 +55,35 @@ TEST 1: Test 1: rotation
 .....\glue 0.0 plus 1.0fil
 .....\OT1/cmr/m/n/10 c
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 c
 .....\OT1/cmr/m/n/10 c
 .....\OT1/cmr/m/n/10 c
@@ -245,35 +245,35 @@ l. ...}
 ...........\glue 0.0 plus 1.0fil
 ...........\OT1/cmr/m/n/10 c
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
-...........\discretionary50|
-............\OT1/cmr/m/n/10 -
+...........\discretionary (penalty 50)
+............< \OT1/cmr/m/n/10 -
 ...........\OT1/cmr/m/n/10 c
 ...........\OT1/cmr/m/n/10 c
 ...........\OT1/cmr/m/n/10 c
@@ -446,35 +446,35 @@ l. ...}
 .................\glue 0.0 plus 1.0fil
 .................\OT1/cmr/m/n/10 c
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 c
 .................\OT1/cmr/m/n/10 c
 .................\OT1/cmr/m/n/10 c
@@ -665,35 +665,35 @@ TEST 2: Test 2: rotation+alignment
 ..........................\glue 0.0 plus 1.0fil
 ..........................\OT1/cmr/m/n/10 c
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
-..........................\discretionary50|
-...........................\OT1/cmr/m/n/10 -
+..........................\discretionary (penalty 50)
+...........................< \OT1/cmr/m/n/10 -
 ..........................\OT1/cmr/m/n/10 c
 ..........................\OT1/cmr/m/n/10 c
 ..........................\OT1/cmr/m/n/10 c
@@ -839,13 +839,13 @@ TEST 2: Test 2: rotation+alignment
 ................\OT1/cmr/m/n/10 s
 ................\OT1/cmr/m/n/10 a
 ................\OT1/cmr/m/n/10 m
-................\discretionary50|
-.................\OT1/cmr/m/n/10 -
+................\discretionary (penalty 50)
+.................< \OT1/cmr/m/n/10 -
 ................\OT1/cmr/m/n/10 p
 ................\OT1/cmr/m/n/10 l
 ................\OT1/cmr/m/n/10 e
-................\discretionary50|
-.................\OT1/cmr/m/n/10 -
+................\discretionary (penalty 50)
+.................< \OT1/cmr/m/n/10 -
 ................\OT1/cmr/m/n/10 T
 ................\kern-0.83334
 ................\OT1/cmr/m/n/10 e
diff --git a/l3kernel/testfiles/d3dvipdfmx.lvt b/l3kernel/testfiles/d3dvipdfmx.lvt
index 663994e..b69add3 100644
--- a/l3kernel/testfiles/d3dvipdfmx.lvt
+++ b/l3kernel/testfiles/d3dvipdfmx.lvt
@@ -12,13 +12,13 @@
 
 % (u)pLaTeX allocates additional registers: for this test, simply ignore them!
 \ifdefined\kanjiskip
-  \advance\count14 by -15 
+  \advance\count14 by -16 %
 \fi
 
 \RequirePackage[check-declarations,log-functions,driver=dvipdfmx]{expl3}
 
 \ifdefined\kanjiskip
-  \advance\count14 by 15 
+  \advance\count14 by 16 %
 \fi
 
 \input{driver.tex}
diff --git a/l3kernel/testfiles/d3dvips.luatex.tlg b/l3kernel/testfiles/d3dvips.luatex.tlg
index 614427d..883eba1 100644
--- a/l3kernel/testfiles/d3dvips.luatex.tlg
+++ b/l3kernel/testfiles/d3dvips.luatex.tlg
@@ -13,8 +13,8 @@ TEST 1: Clip box
 ..\hbox(6.94444+1.0)x86.45851, direction TLT
 ...\OT1/cmr/m/n/10 G
 ...\OT1/cmr/m/n/10 o
-...\discretionary50|
-....\OT1/cmr/m/n/10 -
+...\discretionary (penalty 50)
+....< \OT1/cmr/m/n/10 -
 ...\OT1/cmr/m/n/10 i
 ...\OT1/cmr/m/n/10 n
 ...\OT1/cmr/m/n/10 g
@@ -46,8 +46,8 @@ l. ...  }
 ..\hbox(6.94444+0.0)x86.45851, direction TLT
 ...\OT1/cmr/m/n/10 G
 ...\OT1/cmr/m/n/10 o
-...\discretionary50|
-....\OT1/cmr/m/n/10 -
+...\discretionary (penalty 50)
+....< \OT1/cmr/m/n/10 -
 ...\OT1/cmr/m/n/10 i
 ...\OT1/cmr/m/n/10 n
 ...\OT1/cmr/m/n/10 g
@@ -79,8 +79,8 @@ l. ...  }
 ..\hbox(6.94444+1.0)x86.45851, direction TLT
 ...\OT1/cmr/m/n/10 G
 ...\OT1/cmr/m/n/10 o
-...\discretionary50|
-....\OT1/cmr/m/n/10 -
+...\discretionary (penalty 50)
+....< \OT1/cmr/m/n/10 -
 ...\OT1/cmr/m/n/10 i
 ...\OT1/cmr/m/n/10 n
 ...\OT1/cmr/m/n/10 g
@@ -112,8 +112,8 @@ l. ...  }
 ..\hbox(6.94444+1.94444)x20.0, direction TLT
 ...\OT1/cmr/m/n/10 G
 ...\OT1/cmr/m/n/10 o
-...\discretionary50|
-....\OT1/cmr/m/n/10 -
+...\discretionary (penalty 50)
+....< \OT1/cmr/m/n/10 -
 ...\OT1/cmr/m/n/10 i
 ...\OT1/cmr/m/n/10 n
 ...\OT1/cmr/m/n/10 g
@@ -470,8 +470,8 @@ tr\ETC.}
 .....\OT1/cmr/m/n/10 t
 .....\OT1/cmr/m/n/10 g
 .....\OT1/cmr/m/n/10 o
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 i
 .....\OT1/cmr/m/n/10 n
 .....\OT1/cmr/m/n/10 g
@@ -511,8 +511,8 @@ tr\ETC.}
 .....\OT1/cmr/m/n/10 t
 .....\OT1/cmr/m/n/10 g
 .....\OT1/cmr/m/n/10 o
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 i
 .....\OT1/cmr/m/n/10 n
 .....\OT1/cmr/m/n/10 g
@@ -552,8 +552,8 @@ h \ETC.}
 .....\OT1/cmr/m/n/10 t
 .....\OT1/cmr/m/n/10 g
 .....\OT1/cmr/m/n/10 o
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 i
 .....\OT1/cmr/m/n/10 n
 .....\OT1/cmr/m/n/10 g
diff --git a/l3kernel/testfiles/d3dvips.lvt b/l3kernel/testfiles/d3dvips.lvt
index b9adb29..84bdef9 100644
--- a/l3kernel/testfiles/d3dvips.lvt
+++ b/l3kernel/testfiles/d3dvips.lvt
@@ -11,13 +11,13 @@
 
 % (u)pLaTeX allocates additional registers: for this test, simply ignore them!
 \ifdefined\kanjiskip
-  \advance\count14 by -15 
+  \advance\count14 by -16 %
 \fi
 
 \RequirePackage[check-declarations,log-functions,driver=dvips]{expl3}
 
 \ifdefined\kanjiskip
-  \advance\count14 by 15 
+  \advance\count14 by 16 %
 \fi
 
 \input{driver.tex}
diff --git a/l3kernel/testfiles/d3dvisvgm.luatex.tlg b/l3kernel/testfiles/d3dvisvgm.luatex.tlg
index deac2b5..b113899 100644
--- a/l3kernel/testfiles/d3dvisvgm.luatex.tlg
+++ b/l3kernel/testfiles/d3dvisvgm.luatex.tlg
@@ -17,8 +17,8 @@ TEST 1: Clip box
 .\hbox(6.94444+1.0)x86.45851, direction TLT
 ..\OT1/cmr/m/n/10 G
 ..\OT1/cmr/m/n/10 o
-..\discretionary50|
-...\OT1/cmr/m/n/10 -
+..\discretionary (penalty 50)
+...< \OT1/cmr/m/n/10 -
 ..\OT1/cmr/m/n/10 i
 ..\OT1/cmr/m/n/10 n
 ..\OT1/cmr/m/n/10 g
@@ -54,8 +54,8 @@ l. ...  }
 .\hbox(6.94444+0.0)x86.45851, direction TLT
 ..\OT1/cmr/m/n/10 G
 ..\OT1/cmr/m/n/10 o
-..\discretionary50|
-...\OT1/cmr/m/n/10 -
+..\discretionary (penalty 50)
+...< \OT1/cmr/m/n/10 -
 ..\OT1/cmr/m/n/10 i
 ..\OT1/cmr/m/n/10 n
 ..\OT1/cmr/m/n/10 g
@@ -91,8 +91,8 @@ l. ...  }
 .\hbox(6.94444+1.0)x86.45851, direction TLT
 ..\OT1/cmr/m/n/10 G
 ..\OT1/cmr/m/n/10 o
-..\discretionary50|
-...\OT1/cmr/m/n/10 -
+..\discretionary (penalty 50)
+...< \OT1/cmr/m/n/10 -
 ..\OT1/cmr/m/n/10 i
 ..\OT1/cmr/m/n/10 n
 ..\OT1/cmr/m/n/10 g
@@ -128,8 +128,8 @@ l. ...  }
 .\hbox(6.94444+1.94444)x20.0, direction TLT
 ..\OT1/cmr/m/n/10 G
 ..\OT1/cmr/m/n/10 o
-..\discretionary50|
-...\OT1/cmr/m/n/10 -
+..\discretionary (penalty 50)
+...< \OT1/cmr/m/n/10 -
 ..\OT1/cmr/m/n/10 i
 ..\OT1/cmr/m/n/10 n
 ..\OT1/cmr/m/n/10 g
@@ -466,8 +466,8 @@ te\ETC.}
 .....\OT1/cmr/m/n/10 t
 .....\OT1/cmr/m/n/10 g
 .....\OT1/cmr/m/n/10 o
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 i
 .....\OT1/cmr/m/n/10 n
 .....\OT1/cmr/m/n/10 g
@@ -506,8 +506,8 @@ te\ETC.}
 .....\OT1/cmr/m/n/10 t
 .....\OT1/cmr/m/n/10 g
 .....\OT1/cmr/m/n/10 o
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 i
 .....\OT1/cmr/m/n/10 n
 .....\OT1/cmr/m/n/10 g
@@ -546,8 +546,8 @@ l. ...  }
 .....\OT1/cmr/m/n/10 t
 .....\OT1/cmr/m/n/10 g
 .....\OT1/cmr/m/n/10 o
-.....\discretionary50|
-......\OT1/cmr/m/n/10 -
+.....\discretionary (penalty 50)
+......< \OT1/cmr/m/n/10 -
 .....\OT1/cmr/m/n/10 i
 .....\OT1/cmr/m/n/10 n
 .....\OT1/cmr/m/n/10 g
diff --git a/l3kernel/testfiles/d3dvisvgm.lvt b/l3kernel/testfiles/d3dvisvgm.lvt
index e7e88ce..5cad4a0 100644
--- a/l3kernel/testfiles/d3dvisvgm.lvt
+++ b/l3kernel/testfiles/d3dvisvgm.lvt
@@ -11,13 +11,13 @@
 
 % (u)pLaTeX allocates additional registers: for this test, simply ignore them!
 \ifdefined\kanjiskip
-  \advance\count14 by -15 
+  \advance\count14 by -16 % 
 \fi
 
 \RequirePackage[check-declarations,log-functions,driver=dvisvgm]{expl3}
 
 \ifdefined\kanjiskip
-  \advance\count14 by 15 
+  \advance\count14 by 16 %
 \fi
 
 \input{driver.tex}
diff --git a/l3kernel/testfiles/d3pdfmode.ptex.tlg b/l3kernel/testfiles/d3pdfmode.ptex.tlg
index ebe511b..53a82e4 100644
--- a/l3kernel/testfiles/d3pdfmode.ptex.tlg
+++ b/l3kernel/testfiles/d3pdfmode.ptex.tlg
@@ -4,7 +4,7 @@ Author: Joseph Wright
 ============================================================
 TEST 1: Clip box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -34,7 +34,7 @@ TEST 1: Clip box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -64,7 +64,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -94,7 +94,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x20.0
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -128,7 +128,7 @@ l. ...  }
 ============================================================
 TEST 2: Rotate box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -145,7 +145,7 @@ TEST 2: Rotate box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -170,7 +170,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(31.028+0.0)x46.79762
 .\hbox(31.028+0.0)x46.79762
 ..\kern 3.47223
@@ -195,7 +195,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(40.2855+0.0)x40.2855
 .\hbox(40.2855+0.0)x40.2855
 ..\kern 4.91046
@@ -220,7 +220,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(35.37505+4.91046)x40.2855
 .\hbox(35.37505+4.91046)x40.2855
 ..\kern 40.2855
@@ -245,7 +245,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(0.0+40.2855)x40.2855
 .\hbox(0.0+40.2855)x40.2855
 ..\kern 35.37505
@@ -270,7 +270,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(4.91046+35.37505)x40.2855
 .\hbox(4.91046+35.37505)x40.2855
 ..\kern 0.0
@@ -295,7 +295,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(56.9723+0.0)x56.97232
 .\hbox(56.9723+0.0)x56.97232
 ..\kern 28.48616
@@ -332,7 +332,7 @@ l. ...  }
 ============================================================
 TEST 3: Scale box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -349,7 +349,7 @@ TEST 3: Scale box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -376,7 +376,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x125.06966
 .\hbox(6.94444+0.0)x125.06966
 ..\kern 0.0
@@ -403,7 +403,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(2.31477+0.0)x50.02786
 .\hbox(2.31477+0.0)x50.02786
 ..\kern 0.0
@@ -430,7 +430,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x103.61133
 .\hbox(6.94444+1.94444)x103.61133
 ..\kern 0.0
@@ -468,7 +468,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(20.83333+5.83333)x310.83398
 .\hbox(20.83333+5.83333)x310.83398
 ..\kern 0.0
@@ -506,7 +506,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(5.83333+20.83333)x310.83398
 .\hbox(5.83333+20.83333)x310.83398
 ..\kern 310.83398
diff --git a/l3kernel/testfiles/d3pdfmode.uptex.tlg b/l3kernel/testfiles/d3pdfmode.uptex.tlg
index ebe511b..53a82e4 100644
--- a/l3kernel/testfiles/d3pdfmode.uptex.tlg
+++ b/l3kernel/testfiles/d3pdfmode.uptex.tlg
@@ -4,7 +4,7 @@ Author: Joseph Wright
 ============================================================
 TEST 1: Clip box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -34,7 +34,7 @@ TEST 1: Clip box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -64,7 +64,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -94,7 +94,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x20.0
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -128,7 +128,7 @@ l. ...  }
 ============================================================
 TEST 2: Rotate box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -145,7 +145,7 @@ TEST 2: Rotate box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -170,7 +170,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(31.028+0.0)x46.79762
 .\hbox(31.028+0.0)x46.79762
 ..\kern 3.47223
@@ -195,7 +195,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(40.2855+0.0)x40.2855
 .\hbox(40.2855+0.0)x40.2855
 ..\kern 4.91046
@@ -220,7 +220,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(35.37505+4.91046)x40.2855
 .\hbox(35.37505+4.91046)x40.2855
 ..\kern 40.2855
@@ -245,7 +245,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(0.0+40.2855)x40.2855
 .\hbox(0.0+40.2855)x40.2855
 ..\kern 35.37505
@@ -270,7 +270,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(4.91046+35.37505)x40.2855
 .\hbox(4.91046+35.37505)x40.2855
 ..\kern 0.0
@@ -295,7 +295,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(56.9723+0.0)x56.97232
 .\hbox(56.9723+0.0)x56.97232
 ..\kern 28.48616
@@ -332,7 +332,7 @@ l. ...  }
 ============================================================
 TEST 3: Scale box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -349,7 +349,7 @@ TEST 3: Scale box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -376,7 +376,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x125.06966
 .\hbox(6.94444+0.0)x125.06966
 ..\kern 0.0
@@ -403,7 +403,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(2.31477+0.0)x50.02786
 .\hbox(2.31477+0.0)x50.02786
 ..\kern 0.0
@@ -430,7 +430,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x103.61133
 .\hbox(6.94444+1.94444)x103.61133
 ..\kern 0.0
@@ -468,7 +468,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(20.83333+5.83333)x310.83398
 .\hbox(20.83333+5.83333)x310.83398
 ..\kern 0.0
@@ -506,7 +506,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(5.83333+20.83333)x310.83398
 .\hbox(5.83333+20.83333)x310.83398
 ..\kern 310.83398
diff --git a/l3kernel/testfiles/d3xdvipdfmx.ptex.tlg b/l3kernel/testfiles/d3xdvipdfmx.ptex.tlg
index ebe511b..53a82e4 100644
--- a/l3kernel/testfiles/d3xdvipdfmx.ptex.tlg
+++ b/l3kernel/testfiles/d3xdvipdfmx.ptex.tlg
@@ -4,7 +4,7 @@ Author: Joseph Wright
 ============================================================
 TEST 1: Clip box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -34,7 +34,7 @@ TEST 1: Clip box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -64,7 +64,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -94,7 +94,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x20.0
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -128,7 +128,7 @@ l. ...  }
 ============================================================
 TEST 2: Rotate box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -145,7 +145,7 @@ TEST 2: Rotate box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -170,7 +170,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(31.028+0.0)x46.79762
 .\hbox(31.028+0.0)x46.79762
 ..\kern 3.47223
@@ -195,7 +195,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(40.2855+0.0)x40.2855
 .\hbox(40.2855+0.0)x40.2855
 ..\kern 4.91046
@@ -220,7 +220,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(35.37505+4.91046)x40.2855
 .\hbox(35.37505+4.91046)x40.2855
 ..\kern 40.2855
@@ -245,7 +245,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(0.0+40.2855)x40.2855
 .\hbox(0.0+40.2855)x40.2855
 ..\kern 35.37505
@@ -270,7 +270,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(4.91046+35.37505)x40.2855
 .\hbox(4.91046+35.37505)x40.2855
 ..\kern 0.0
@@ -295,7 +295,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(56.9723+0.0)x56.97232
 .\hbox(56.9723+0.0)x56.97232
 ..\kern 28.48616
@@ -332,7 +332,7 @@ l. ...  }
 ============================================================
 TEST 3: Scale box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -349,7 +349,7 @@ TEST 3: Scale box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -376,7 +376,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x125.06966
 .\hbox(6.94444+0.0)x125.06966
 ..\kern 0.0
@@ -403,7 +403,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(2.31477+0.0)x50.02786
 .\hbox(2.31477+0.0)x50.02786
 ..\kern 0.0
@@ -430,7 +430,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x103.61133
 .\hbox(6.94444+1.94444)x103.61133
 ..\kern 0.0
@@ -468,7 +468,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(20.83333+5.83333)x310.83398
 .\hbox(20.83333+5.83333)x310.83398
 ..\kern 0.0
@@ -506,7 +506,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(5.83333+20.83333)x310.83398
 .\hbox(5.83333+20.83333)x310.83398
 ..\kern 310.83398
diff --git a/l3kernel/testfiles/d3xdvipdfmx.uptex.tlg b/l3kernel/testfiles/d3xdvipdfmx.uptex.tlg
index ebe511b..53a82e4 100644
--- a/l3kernel/testfiles/d3xdvipdfmx.uptex.tlg
+++ b/l3kernel/testfiles/d3xdvipdfmx.uptex.tlg
@@ -4,7 +4,7 @@ Author: Joseph Wright
 ============================================================
 TEST 1: Clip box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -34,7 +34,7 @@ TEST 1: Clip box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -64,7 +64,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.0)x86.45851
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -94,7 +94,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x20.0
 .\special{ps:gsave}
 .\special{ps:currentpoint currentpoint translate matrix currentmatrix Resolutio\ETC.}
@@ -128,7 +128,7 @@ l. ...  }
 ============================================================
 TEST 2: Rotate box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -145,7 +145,7 @@ TEST 2: Rotate box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -170,7 +170,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(31.028+0.0)x46.79762
 .\hbox(31.028+0.0)x46.79762
 ..\kern 3.47223
@@ -195,7 +195,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(40.2855+0.0)x40.2855
 .\hbox(40.2855+0.0)x40.2855
 ..\kern 4.91046
@@ -220,7 +220,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(35.37505+4.91046)x40.2855
 .\hbox(35.37505+4.91046)x40.2855
 ..\kern 40.2855
@@ -245,7 +245,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(0.0+40.2855)x40.2855
 .\hbox(0.0+40.2855)x40.2855
 ..\kern 35.37505
@@ -270,7 +270,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(4.91046+35.37505)x40.2855
 .\hbox(4.91046+35.37505)x40.2855
 ..\kern 0.0
@@ -295,7 +295,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(56.9723+0.0)x56.97232
 .\hbox(56.9723+0.0)x56.97232
 ..\kern 28.48616
@@ -332,7 +332,7 @@ l. ...  }
 ============================================================
 TEST 3: Scale box
 ============================================================
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 e
@@ -349,7 +349,7 @@ TEST 3: Scale box
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x50.02786
 .\hbox(6.94444+0.0)x50.02786
 ..\kern 0.0
@@ -376,7 +376,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+0.0)x125.06966
 .\hbox(6.94444+0.0)x125.06966
 ..\kern 0.0
@@ -403,7 +403,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(2.31477+0.0)x50.02786
 .\hbox(2.31477+0.0)x50.02786
 ..\kern 0.0
@@ -430,7 +430,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(6.94444+1.94444)x103.61133
 .\hbox(6.94444+1.94444)x103.61133
 ..\kern 0.0
@@ -468,7 +468,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(20.83333+5.83333)x310.83398
 .\hbox(20.83333+5.83333)x310.83398
 ..\kern 0.0
@@ -506,7 +506,7 @@ l. ...  }
 ! OK.
 <argument> \l_tmpa_box 
 l. ...  }
-> \box42=
+> \box43=
 \hbox(5.83333+20.83333)x310.83398
 .\hbox(5.83333+20.83333)x310.83398
 ..\kern 310.83398
diff --git a/l3kernel/testfiles/m3box003.luatex.tlg b/l3kernel/testfiles/m3box003.luatex.tlg
deleted file mode 100644
index a61c368..0000000
--- a/l3kernel/testfiles/m3box003.luatex.tlg
+++ /dev/null
@@ -1,350 +0,0 @@
-This is a generated file for the LaTeX (2e + expl3) validation system.
-Don't change this file in any respect.
-Author: Joseph Wright
-============================================================
-TEST 1: Directly make a box
-============================================================
-============================================================
-============================================================
-TEST 2: Set boxes
-============================================================
-> \box72=
-\vbox(16.30554+0.0)x469.75499, direction TLT
-.\hbox(4.30554+0.0)x469.75499, glue set 444.75497fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue 0.0 plus 1.0fil
-..\penalty -10000
-..\glue(\rightskip) 0.0
-.\penalty 300
-.\glue(\baselineskip) 7.69446
-.\hbox(4.30554+0.0)x469.75499, glue set 464.75497fil, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempa_box 
-l. ...}
-> \box73=
-\vbox(18.94444+0.0)x469.75499, direction TLT
-.\hbox(6.94444+0.0)x469.75499, glue set 444.1994fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 b
-..\penalty 10000
-..\glue 0.0 plus 1.0fil
-..\penalty -10000
-..\glue(\rightskip) 0.0
-.\penalty 300
-.\glue(\baselineskip) 5.05556
-.\hbox(6.94444+0.0)x469.75499, glue set 464.1994fil, direction TLT
-..\OT1/cmr/m/n/10 b
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempb_box 
-l. ...}
-> \box74=
-\vbox(18.83331+0.0)x469.75499, direction TLT
-.\hbox(6.83331+0.0)x469.75499, glue set 442.67163fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 B
-..\penalty 10000
-..\glue 0.0 plus 1.0fil
-..\penalty -10000
-..\glue(\rightskip) 0.0
-.\penalty 300
-.\glue(\baselineskip) 5.16669
-.\hbox(6.83331+0.0)x469.75499, glue set 462.67163fil, direction TLT
-..\OT1/cmr/m/n/10 B
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \g_tempa_box 
-l. ...}
-> \box75=void
-! OK.
-<argument> \g_tempb_box 
-l. ...}
-============================================================
-============================================================
-TEST 3: Set boxes to a height
-============================================================
-> \box72=
-\vbox(28.45274+0.0)x469.75499, glue set 24.1472fil, direction TLT
-.\hbox(4.30554+0.0)x469.75499, glue set 444.75497fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-.\glue 0.0 plus 1.0fil minus 1.0fil
-! OK.
-<argument> \l_tempa_box 
-l. ...}
-> \box73=
-\vbox(28.45274+0.0)x469.75499, glue set 21.5083fil, direction TLT
-.\hbox(6.94444+0.0)x469.75499, glue set 444.1994fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 b
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-.\glue 0.0 plus 1.0fil minus 1.0fil
-! OK.
-<argument> \l_tempb_box 
-l. ...}
-> \box74=
-\vbox(28.45274+0.0)x469.75499, glue set 21.61943fil, direction TLT
-.\hbox(6.83331+0.0)x469.75499, glue set 442.67163fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 B
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-.\glue 0.0 plus 1.0fil minus 1.0fil
-! OK.
-<argument> \g_tempa_box 
-l. ...}
-> \box75=void
-! OK.
-<argument> \g_tempb_box 
-l. ...}
-============================================================
-============================================================
-TEST 4: Inline stuff
-============================================================
-> \box72=
-\vbox(4.30554+0.0)x469.75499, direction TLT
-.\hbox(4.30554+0.0)x469.75499, glue set 444.75497fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempa_box 
-l. ...}
-> \box74=
-\vbox(6.83331+0.0)x469.75499, direction TLT
-.\hbox(6.83331+0.0)x469.75499, glue set 442.25497fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 A
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \g_tempa_box 
-l. ...}
-============================================================
-============================================================
-TEST 5: Splitting a box
-============================================================
-============================================================
-============================================================
-TEST 6: Directly make boxes to height
-============================================================
-Underfull \vbox (badness 10000) detected at line 68
-\vbox(28.45274+0.0)x469.75499, direction TLT
-.\hbox(6.15079+0.0)x469.75499, glue set 433.58832fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 t
-..\OT1/cmr/m/n/10 e
-..\OT1/cmr/m/n/10 s
-..\OT1/cmr/m/n/10 t
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-Overfull \vbox (6.15079pt too high) detected at line 68
-\vbox(0.0+0.0)x469.75499, direction TLT
-.\hbox(6.15079+0.0)x469.75499, glue set 433.58832fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 t
-..\OT1/cmr/m/n/10 e
-..\OT1/cmr/m/n/10 s
-..\OT1/cmr/m/n/10 t
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-============================================================
-============================================================
-TEST 7: Unpacking
-============================================================
-> \box72=
-\vbox(4.30554+0.0)x469.75499, direction TLT
-.\hbox(4.30554+0.0)x469.75499, glue set 444.75497fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempa_box 
-l. ...}
-> \box73=
-\vbox(6.94444+0.0)x469.75499, direction TLT
-.\hbox(6.94444+0.0)x469.75499, glue set 444.1994fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 b
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempb_box 
-l. ...}
-> \box72=void
-! OK.
-<argument> \l_tempa_box 
-l. ...}
-> \box73=void
-! OK.
-<argument> \l_tempb_box 
-l. ...}
-============================================================
-============================================================
-TEST 8: Directly make a top box
-============================================================
-============================================================
-============================================================
-TEST 9: Set top boxes
-============================================================
-> \box72=
-\vbox(4.30554+12.0)x469.75499, direction TLT
-.\hbox(4.30554+0.0)x469.75499, glue set 444.75497fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue 0.0 plus 1.0fil
-..\penalty -10000
-..\glue(\rightskip) 0.0
-.\penalty 300
-.\glue(\baselineskip) 7.69446
-.\hbox(4.30554+0.0)x469.75499, glue set 464.75497fil, direction TLT
-..\OT1/cmr/m/n/10 a
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempa_box 
-l. ...}
-> \box73=
-\vbox(6.94444+12.0)x469.75499, direction TLT
-.\hbox(6.94444+0.0)x469.75499, glue set 444.1994fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 b
-..\penalty 10000
-..\glue 0.0 plus 1.0fil
-..\penalty -10000
-..\glue(\rightskip) 0.0
-.\penalty 300
-.\glue(\baselineskip) 5.05556
-.\hbox(6.94444+0.0)x469.75499, glue set 464.1994fil, direction TLT
-..\OT1/cmr/m/n/10 b
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \l_tempb_box 
-l. ...}
-> \box74=
-\vbox(6.83331+12.0)x469.75499, direction TLT
-.\hbox(6.83331+0.0)x469.75499, glue set 442.67163fil, direction TLT
-..\localpar
-...\localinterlinepenalty=0
-...\localbrokenpenalty=0
-...\localleftbox=null
-...\localrightbox=null
-..\hbox(0.0+0.0)x20.0, direction TLT
-..\OT1/cmr/m/n/10 B
-..\penalty 10000
-..\glue 0.0 plus 1.0fil
-..\penalty -10000
-..\glue(\rightskip) 0.0
-.\penalty 300
-.\glue(\baselineskip) 5.16669
-.\hbox(6.83331+0.0)x469.75499, glue set 462.67163fil, direction TLT
-..\OT1/cmr/m/n/10 B
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-! OK.
-<argument> \g_tempa_box 
-l. ...}
-> \box75=void
-! OK.
-<argument> \g_tempb_box 
-l. ...}
-============================================================
diff --git a/l3kernel/testfiles/m3coffins001.luatex.tlg b/l3kernel/testfiles/m3coffins001.luatex.tlg
index 05588ab..bbfc5d1 100644
--- a/l3kernel/testfiles/m3coffins001.luatex.tlg
+++ b/l3kernel/testfiles/m3coffins001.luatex.tlg
@@ -223,8 +223,8 @@ Defining \2 on line ...
 .............\OT1/cmr/m/n/10 c
 .............\OT1/cmr/m/n/10 o
 .............\OT1/cmr/m/n/10 ^^N (ligature ffi)
-.............\discretionary50|
-..............\OT1/cmr/m/n/10 -
+.............\discretionary (penalty 50)
+..............< \OT1/cmr/m/n/10 -
 .............\OT1/cmr/m/n/10 n
 .............\OT1/cmr/m/n/10 o
 .............\OT1/cmr/m/n/10 n
@@ -316,8 +316,8 @@ l. ...}
 ...............\OT1/cmr/m/n/10 c
 ...............\OT1/cmr/m/n/10 o
 ...............\OT1/cmr/m/n/10 ^^N (ligature ffi)
-...............\discretionary50|
-................\OT1/cmr/m/n/10 -
+...............\discretionary (penalty 50)
+................< \OT1/cmr/m/n/10 -
 ...............\OT1/cmr/m/n/10 n
 ...............\OT1/cmr/m/n/10 o
 ...............\OT1/cmr/m/n/10 n
@@ -430,8 +430,8 @@ l. ...}
 .................\OT1/cmr/m/n/10 c
 .................\OT1/cmr/m/n/10 o
 .................\OT1/cmr/m/n/10 ^^N (ligature ffi)
-.................\discretionary50|
-..................\OT1/cmr/m/n/10 -
+.................\discretionary (penalty 50)
+..................< \OT1/cmr/m/n/10 -
 .................\OT1/cmr/m/n/10 n
 .................\OT1/cmr/m/n/10 o
 .................\OT1/cmr/m/n/10 n
@@ -522,12 +522,12 @@ l. ...}
 ....\OT1/cmss/m/n/5 \
 ....\OT1/cmss/m/n/5 1
 ....\OT1/cmss/m/n/5 -
-....\discretionary50|
 ....\OT1/cmss/m/n/5 l
 ....\OT1/cmss/m/n/5 ,
 ....\OT1/cmss/m/n/5 \
 ....\OT1/cmss/m/n/5 1
 ....\OT1/cmss/m/n/5 -
+....\discretionary (penalty 50)
 ....\OT1/cmss/m/n/5 b
 ....\OT1/cmss/m/n/5 )
 ....\pdfcolorstack 0 pop
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 0b4c569..1503b5d 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -1388,19 +1388,19 @@ Defining \c_one_hundred on line ...
 Defining \c_one_thousand on line ...
 Defining \c_ten_thousand on line ...
 Defining \c_max_int on line ...
-\c_max_int=\count113
+\c_max_int=\count110
 Defining \c_max_char_int on line ...
 Defining \l_tmpa_int on line ...
-\l_tmpa_int=\count114
+\l_tmpa_int=\count111
 Defining \l_tmpb_int on line ...
-\l_tmpb_int=\count115
+\l_tmpb_int=\count112
 Defining \g_tmpa_int on line ...
-\g_tmpa_int=\count116
+\g_tmpa_int=\count113
 Defining \g_tmpb_int on line ...
-\g_tmpb_int=\count117
+\g_tmpb_int=\count114
 Defining \c_minus_one on line ...
 Defining \g__intarray_font_int on line ...
-\g__intarray_font_int=\count118
+\g__intarray_font_int=\count115
 Defining \__intarray_new:Nn on line ...
 Defining \__intarray_count:N on line ...
 Defining \__intarray_gset_fast:Nnn on line ...
@@ -1631,7 +1631,7 @@ Defining \mode_if_math:TF on line ...
 Defining \group_align_safe_begin: on line ...
 Defining \group_align_safe_end: on line ...
 Defining \g__prg_map_int on line ...
-\g__prg_map_int=\count119
+\g__prg_map_int=\count116
 Defining \c_empty_clist on line ...
 Defining \l__clist_internal_clist on line ...
 Defining \__clist_tmp:w on line ...
@@ -2891,7 +2891,7 @@ Defining \__ior_map_inline_loop:NNN on line ...
 Defining \l__ior_internal_tl on line ...
 Defining \g__file_internal_ior on line ...
 Defining \c_log_iow on line ...
-\c_log_iow=\count120
+\c_log_iow=\count117
 Defining \c_term_iow on line ...
 Defining \g__iow_streams_seq on line ...
 Defining \l__iow_stream_tl on line ...
@@ -2928,18 +2928,18 @@ Defining \iow_newline: on line ...
 Defining \iow_char:N on line ...
 Defining \c_catcode_other_space_tl on line ...
 Defining \l_iow_line_count_int on line ...
-\l_iow_line_count_int=\count121
+\l_iow_line_count_int=\count118
 Defining \l__iow_newline_tl on line ...
 Defining \l__iow_line_target_int on line ...
-\l__iow_line_target_int=\count122
+\l__iow_line_target_int=\count119
 Defining \l__iow_one_indent_tl on line ...
 Defining \l__iow_one_indent_int on line ...
-\l__iow_one_indent_int=\count123
+\l__iow_one_indent_int=\count120
 Defining \__iow_unindent:w on line ...
 Defining \__iow_set_indent:n on line ...
 Defining \l__iow_indent_tl on line ...
 Defining \l__iow_indent_int on line ...
-\l__iow_indent_int=\count124
+\l__iow_indent_int=\count121
 Defining \l__iow_line_tl on line ...
 Defining \l__iow_line_part_tl on line ...
 Defining \l__iow_line_break_bool on line ...
@@ -3255,7 +3255,7 @@ Defining \c__keys_type_root_tl on line ...
 Defining \c__keys_validate_root_tl on line ...
 Defining \c__keys_props_root_tl on line ...
 Defining \l_keys_choice_int on line ...
-\l_keys_choice_int=\count125
+\l_keys_choice_int=\count122
 Defining \l_keys_choice_tl on line ...
 Defining \l__keys_groups_clist on line ...
 Defining \l_keys_key_tl on line ...
@@ -3499,25 +3499,25 @@ Defining \__fp_exp_after_normal:Nwwwww on line ...
 Defining \__fp_exp_after_array_f:w on line ...
 Defining \__fp_exp_after_stop_f:nw on line ...
 Defining \c__fp_leading_shift_int on line ...
-\c__fp_leading_shift_int=\count126
+\c__fp_leading_shift_int=\count123
 Defining \c__fp_middle_shift_int on line ...
-\c__fp_middle_shift_int=\count127
+\c__fp_middle_shift_int=\count124
 Defining \c__fp_trailing_shift_int on line ...
-\c__fp_trailing_shift_int=\count128
+\c__fp_trailing_shift_int=\count125
 Defining \__fp_pack:NNNNNw on line ...
 Defining \c__fp_big_leading_shift_int on line ...
-\c__fp_big_leading_shift_int=\count129
+\c__fp_big_leading_shift_int=\count126
 Defining \c__fp_big_middle_shift_int on line ...
-\c__fp_big_middle_shift_int=\count130
+\c__fp_big_middle_shift_int=\count127
 Defining \c__fp_big_trailing_shift_int on line ...
-\c__fp_big_trailing_shift_int=\count131
+\c__fp_big_trailing_shift_int=\count128
 Defining \__fp_pack_big:NNNNNNw on line ...
 Defining \c__fp_Bigg_leading_shift_int on line ...
-\c__fp_Bigg_leading_shift_int=\count132
+\c__fp_Bigg_leading_shift_int=\count129
 Defining \c__fp_Bigg_middle_shift_int on line ...
-\c__fp_Bigg_middle_shift_int=\count133
+\c__fp_Bigg_middle_shift_int=\count130
 Defining \c__fp_Bigg_trailing_shift_int on line ...
-\c__fp_Bigg_trailing_shift_int=\count134
+\c__fp_Bigg_trailing_shift_int=\count131
 Defining \__fp_pack_Bigg:NNNNNNw on line ...
 Defining \__fp_pack_twice_four:wNNNNNNNN on line ...
 Defining \__fp_pack_eight:wNNNNNNNN on line ...
@@ -4217,9 +4217,29 @@ Defining \__fp_array_to_clist:n on line ...
 Defining \__fp_array_to_clist_loop:Nw on line ...
 Defining \__fp_parse_word_rand:N on line ...
 Defining \__fp_parse_word_randint:N on line ...
-Defining message LaTeX/kernel/fp-no-random on line ...
+Defining \__fp_rand_uniform: on line ...
+Defining \c__fp_rand_size_int on line ...
+\c__fp_rand_size_int=\count132
+Defining \c__fp_rand_four_int on line ...
+\c__fp_rand_four_int=\count133
+Defining \c__fp_rand_eight_int on line ...
+\c__fp_rand_eight_int=\count134
+Defining \__fp_rand_myriads:n on line ...
+Defining \__fp_rand_myriads_loop:nn on line ...
+Defining \__fp_rand_myriads_get:w on line ...
+Defining \__fp_rand_myriads_last: on line ...
+Defining \__fp_rand_myriads_last:w on line ...
 Defining \__fp_rand_o:Nw on line ...
+Defining \__fp_rand_o: on line ...
 Defining \__fp_randint_o:Nw on line ...
+Defining \__fp_randint_badarg:w on line ...
+Defining \__fp_randint_e:w on line ...
+Defining \__fp_randint_e:wnn on line ...
+Defining \__fp_randint_e:wwNnn on line ...
+Defining \__fp_randint_e:wwwNnn on line ...
+Defining \__fp_randint_narrow_e:nnnn on line ...
+Defining \__fp_randint_wide_e:nnnn on line ...
+Defining \__fp_randint_wide_e:wnnn on line ...
 Defining \fp_new:N on line ...
 Defining \fp_new:c on line ...
 Defining \fp_set:Nn on line ...
@@ -5353,6 +5373,11 @@ Defining \file_if_exist_input:nTF on line ...
 Defining \ior_log_streams: on line ...
 Defining \iow_log_streams: on line ...
 Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
 Defining \msg_expandable_error:nnnn on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 8f6b5dd..952c768 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -1388,19 +1388,19 @@ Defining \c_one_hundred on line ...
 Defining \c_one_thousand on line ...
 Defining \c_ten_thousand on line ...
 Defining \c_max_int on line ...
-\c_max_int=\count113
+\c_max_int=\count110
 Defining \c_max_char_int on line ...
 Defining \l_tmpa_int on line ...
-\l_tmpa_int=\count114
+\l_tmpa_int=\count111
 Defining \l_tmpb_int on line ...
-\l_tmpb_int=\count115
+\l_tmpb_int=\count112
 Defining \g_tmpa_int on line ...
-\g_tmpa_int=\count116
+\g_tmpa_int=\count113
 Defining \g_tmpb_int on line ...
-\g_tmpb_int=\count117
+\g_tmpb_int=\count114
 Defining \c_minus_one on line ...
 Defining \g__intarray_font_int on line ...
-\g__intarray_font_int=\count118
+\g__intarray_font_int=\count115
 Defining \__intarray_new:Nn on line ...
 Defining \__intarray_count:N on line ...
 Defining \__intarray_gset_fast:Nnn on line ...
@@ -1631,7 +1631,7 @@ Defining \mode_if_math:TF on line ...
 Defining \group_align_safe_begin: on line ...
 Defining \group_align_safe_end: on line ...
 Defining \g__prg_map_int on line ...
-\g__prg_map_int=\count119
+\g__prg_map_int=\count116
 Defining \c_empty_clist on line ...
 Defining \l__clist_internal_clist on line ...
 Defining \__clist_tmp:w on line ...
@@ -2891,7 +2891,7 @@ Defining \__ior_map_inline_loop:NNN on line ...
 Defining \l__ior_internal_tl on line ...
 Defining \g__file_internal_ior on line ...
 Defining \c_log_iow on line ...
-\c_log_iow=\count120
+\c_log_iow=\count117
 Defining \c_term_iow on line ...
 Defining \g__iow_streams_seq on line ...
 Defining \l__iow_stream_tl on line ...
@@ -2928,18 +2928,18 @@ Defining \iow_newline: on line ...
 Defining \iow_char:N on line ...
 Defining \c_catcode_other_space_tl on line ...
 Defining \l_iow_line_count_int on line ...
-\l_iow_line_count_int=\count121
+\l_iow_line_count_int=\count118
 Defining \l__iow_newline_tl on line ...
 Defining \l__iow_line_target_int on line ...
-\l__iow_line_target_int=\count122
+\l__iow_line_target_int=\count119
 Defining \l__iow_one_indent_tl on line ...
 Defining \l__iow_one_indent_int on line ...
-\l__iow_one_indent_int=\count123
+\l__iow_one_indent_int=\count120
 Defining \__iow_unindent:w on line ...
 Defining \__iow_set_indent:n on line ...
 Defining \l__iow_indent_tl on line ...
 Defining \l__iow_indent_int on line ...
-\l__iow_indent_int=\count124
+\l__iow_indent_int=\count121
 Defining \l__iow_line_tl on line ...
 Defining \l__iow_line_part_tl on line ...
 Defining \l__iow_line_break_bool on line ...
@@ -3255,7 +3255,7 @@ Defining \c__keys_type_root_tl on line ...
 Defining \c__keys_validate_root_tl on line ...
 Defining \c__keys_props_root_tl on line ...
 Defining \l_keys_choice_int on line ...
-\l_keys_choice_int=\count125
+\l_keys_choice_int=\count122
 Defining \l_keys_choice_tl on line ...
 Defining \l__keys_groups_clist on line ...
 Defining \l_keys_key_tl on line ...
@@ -3499,25 +3499,25 @@ Defining \__fp_exp_after_normal:Nwwwww on line ...
 Defining \__fp_exp_after_array_f:w on line ...
 Defining \__fp_exp_after_stop_f:nw on line ...
 Defining \c__fp_leading_shift_int on line ...
-\c__fp_leading_shift_int=\count126
+\c__fp_leading_shift_int=\count123
 Defining \c__fp_middle_shift_int on line ...
-\c__fp_middle_shift_int=\count127
+\c__fp_middle_shift_int=\count124
 Defining \c__fp_trailing_shift_int on line ...
-\c__fp_trailing_shift_int=\count128
+\c__fp_trailing_shift_int=\count125
 Defining \__fp_pack:NNNNNw on line ...
 Defining \c__fp_big_leading_shift_int on line ...
-\c__fp_big_leading_shift_int=\count129
+\c__fp_big_leading_shift_int=\count126
 Defining \c__fp_big_middle_shift_int on line ...
-\c__fp_big_middle_shift_int=\count130
+\c__fp_big_middle_shift_int=\count127
 Defining \c__fp_big_trailing_shift_int on line ...
-\c__fp_big_trailing_shift_int=\count131
+\c__fp_big_trailing_shift_int=\count128
 Defining \__fp_pack_big:NNNNNNw on line ...
 Defining \c__fp_Bigg_leading_shift_int on line ...
-\c__fp_Bigg_leading_shift_int=\count132
+\c__fp_Bigg_leading_shift_int=\count129
 Defining \c__fp_Bigg_middle_shift_int on line ...
-\c__fp_Bigg_middle_shift_int=\count133
+\c__fp_Bigg_middle_shift_int=\count130
 Defining \c__fp_Bigg_trailing_shift_int on line ...
-\c__fp_Bigg_trailing_shift_int=\count134
+\c__fp_Bigg_trailing_shift_int=\count131
 Defining \__fp_pack_Bigg:NNNNNNw on line ...
 Defining \__fp_pack_twice_four:wNNNNNNNN on line ...
 Defining \__fp_pack_eight:wNNNNNNNN on line ...
@@ -4217,9 +4217,29 @@ Defining \__fp_array_to_clist:n on line ...
 Defining \__fp_array_to_clist_loop:Nw on line ...
 Defining \__fp_parse_word_rand:N on line ...
 Defining \__fp_parse_word_randint:N on line ...
-Defining message LaTeX/kernel/fp-no-random on line ...
+Defining \__fp_rand_uniform: on line ...
+Defining \c__fp_rand_size_int on line ...
+\c__fp_rand_size_int=\count132
+Defining \c__fp_rand_four_int on line ...
+\c__fp_rand_four_int=\count133
+Defining \c__fp_rand_eight_int on line ...
+\c__fp_rand_eight_int=\count134
+Defining \__fp_rand_myriads:n on line ...
+Defining \__fp_rand_myriads_loop:nn on line ...
+Defining \__fp_rand_myriads_get:w on line ...
+Defining \__fp_rand_myriads_last: on line ...
+Defining \__fp_rand_myriads_last:w on line ...
 Defining \__fp_rand_o:Nw on line ...
+Defining \__fp_rand_o: on line ...
 Defining \__fp_randint_o:Nw on line ...
+Defining \__fp_randint_badarg:w on line ...
+Defining \__fp_randint_e:w on line ...
+Defining \__fp_randint_e:wnn on line ...
+Defining \__fp_randint_e:wwNnn on line ...
+Defining \__fp_randint_e:wwwNnn on line ...
+Defining \__fp_randint_narrow_e:nnnn on line ...
+Defining \__fp_randint_wide_e:nnnn on line ...
+Defining \__fp_randint_wide_e:wnnn on line ...
 Defining \fp_new:N on line ...
 Defining \fp_new:c on line ...
 Defining \fp_set:Nn on line ...
@@ -5351,6 +5371,11 @@ Defining \file_if_exist_input:nTF on line ...
 Defining \ior_log_streams: on line ...
 Defining \iow_log_streams: on line ...
 Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
 Defining \msg_expandable_error:nnnn on line ...
diff --git a/l3kernel/testfiles/m3expl002.ptex.tlg b/l3kernel/testfiles/m3expl002.ptex.tlg
index 602356a..23df867 100644
--- a/l3kernel/testfiles/m3expl002.ptex.tlg
+++ b/l3kernel/testfiles/m3expl002.ptex.tlg
@@ -2,18 +2,18 @@ This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 (expl3.sty
  (expl3-code.tex
-\c_max_int=\count113
-\l_tmpa_int=\count114
-\l_tmpb_int=\count115
-\g_tmpa_int=\count116
-\g_tmpb_int=\count117
-\g__intarray_font_int=\count118
-\g__prg_map_int=\count119
-\c_log_iow=\count120
-\l_iow_line_count_int=\count121
-\l__iow_line_target_int=\count122
-\l__iow_one_indent_int=\count123
-\l__iow_indent_int=\count124
+\c_max_int=\count110
+\l_tmpa_int=\count111
+\l_tmpb_int=\count112
+\g_tmpa_int=\count113
+\g_tmpb_int=\count114
+\g__intarray_font_int=\count115
+\g__prg_map_int=\count116
+\c_log_iow=\count117
+\l_iow_line_count_int=\count118
+\l__iow_line_target_int=\count119
+\l__iow_one_indent_int=\count120
+\l__iow_indent_int=\count121
 \c_zero_dim=\dimen132
 \c_max_dim=\dimen133
 \l_tmpa_dim=\dimen134
@@ -32,16 +32,19 @@ Don't change this file in any respect.
 \l_tmpb_muskip=\muskip43
 \g_tmpa_muskip=\muskip44
 \g_tmpb_muskip=\muskip45
-\l_keys_choice_int=\count125
-\c__fp_leading_shift_int=\count126
-\c__fp_middle_shift_int=\count127
-\c__fp_trailing_shift_int=\count128
-\c__fp_big_leading_shift_int=\count129
-\c__fp_big_middle_shift_int=\count130
-\c__fp_big_trailing_shift_int=\count131
-\c__fp_Bigg_leading_shift_int=\count132
-\c__fp_Bigg_middle_shift_int=\count133
-\c__fp_Bigg_trailing_shift_int=\count134
+\l_keys_choice_int=\count122
+\c__fp_leading_shift_int=\count123
+\c__fp_middle_shift_int=\count124
+\c__fp_trailing_shift_int=\count125
+\c__fp_big_leading_shift_int=\count126
+\c__fp_big_middle_shift_int=\count127
+\c__fp_big_trailing_shift_int=\count128
+\c__fp_Bigg_leading_shift_int=\count129
+\c__fp_Bigg_middle_shift_int=\count130
+\c__fp_Bigg_trailing_shift_int=\count131
+\c__fp_rand_size_int=\count132
+\c__fp_rand_four_int=\count133
+\c__fp_rand_eight_int=\count134
 \l__sort_length_int=\count135
 \l__sort_min_int=\count136
 \l__sort_top_int=\count137
diff --git a/l3kernel/testfiles/m3expl002.uptex.tlg b/l3kernel/testfiles/m3expl002.uptex.tlg
index df0039a..e08d836 100644
--- a/l3kernel/testfiles/m3expl002.uptex.tlg
+++ b/l3kernel/testfiles/m3expl002.uptex.tlg
@@ -2,18 +2,18 @@ This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 (expl3.sty
  (expl3-code.tex
-\c_max_int=\count113
-\l_tmpa_int=\count114
-\l_tmpb_int=\count115
-\g_tmpa_int=\count116
-\g_tmpb_int=\count117
-\g__intarray_font_int=\count118
-\g__prg_map_int=\count119
-\c_log_iow=\count120
-\l_iow_line_count_int=\count121
-\l__iow_line_target_int=\count122
-\l__iow_one_indent_int=\count123
-\l__iow_indent_int=\count124
+\c_max_int=\count110
+\l_tmpa_int=\count111
+\l_tmpb_int=\count112
+\g_tmpa_int=\count113
+\g_tmpb_int=\count114
+\g__intarray_font_int=\count115
+\g__prg_map_int=\count116
+\c_log_iow=\count117
+\l_iow_line_count_int=\count118
+\l__iow_line_target_int=\count119
+\l__iow_one_indent_int=\count120
+\l__iow_indent_int=\count121
 \c_zero_dim=\dimen132
 \c_max_dim=\dimen133
 \l_tmpa_dim=\dimen134
@@ -32,16 +32,19 @@ Don't change this file in any respect.
 \l_tmpb_muskip=\muskip43
 \g_tmpa_muskip=\muskip44
 \g_tmpb_muskip=\muskip45
-\l_keys_choice_int=\count125
-\c__fp_leading_shift_int=\count126
-\c__fp_middle_shift_int=\count127
-\c__fp_trailing_shift_int=\count128
-\c__fp_big_leading_shift_int=\count129
-\c__fp_big_middle_shift_int=\count130
-\c__fp_big_trailing_shift_int=\count131
-\c__fp_Bigg_leading_shift_int=\count132
-\c__fp_Bigg_middle_shift_int=\count133
-\c__fp_Bigg_trailing_shift_int=\count134
+\l_keys_choice_int=\count122
+\c__fp_leading_shift_int=\count123
+\c__fp_middle_shift_int=\count124
+\c__fp_trailing_shift_int=\count125
+\c__fp_big_leading_shift_int=\count126
+\c__fp_big_middle_shift_int=\count127
+\c__fp_big_trailing_shift_int=\count128
+\c__fp_Bigg_leading_shift_int=\count129
+\c__fp_Bigg_middle_shift_int=\count130
+\c__fp_Bigg_trailing_shift_int=\count131
+\c__fp_rand_size_int=\count132
+\c__fp_rand_four_int=\count133
+\c__fp_rand_eight_int=\count134
 \l__sort_length_int=\count135
 \l__sort_min_int=\count136
 \l__sort_top_int=\count137
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 6a15cc8..f96c7df 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -1388,19 +1388,19 @@ Defining \c_one_hundred on line ...
 Defining \c_one_thousand on line ...
 Defining \c_ten_thousand on line ...
 Defining \c_max_int on line ...
-\c_max_int=\count113
+\c_max_int=\count110
 Defining \c_max_char_int on line ...
 Defining \l_tmpa_int on line ...
-\l_tmpa_int=\count114
+\l_tmpa_int=\count111
 Defining \l_tmpb_int on line ...
-\l_tmpb_int=\count115
+\l_tmpb_int=\count112
 Defining \g_tmpa_int on line ...
-\g_tmpa_int=\count116
+\g_tmpa_int=\count113
 Defining \g_tmpb_int on line ...
-\g_tmpb_int=\count117
+\g_tmpb_int=\count114
 Defining \c_minus_one on line ...
 Defining \g__intarray_font_int on line ...
-\g__intarray_font_int=\count118
+\g__intarray_font_int=\count115
 Defining \__intarray_new:Nn on line ...
 Defining \__intarray_count:N on line ...
 Defining \__intarray_gset_fast:Nnn on line ...
@@ -1631,7 +1631,7 @@ Defining \mode_if_math:TF on line ...
 Defining \group_align_safe_begin: on line ...
 Defining \group_align_safe_end: on line ...
 Defining \g__prg_map_int on line ...
-\g__prg_map_int=\count119
+\g__prg_map_int=\count116
 Defining \c_empty_clist on line ...
 Defining \l__clist_internal_clist on line ...
 Defining \__clist_tmp:w on line ...
@@ -2892,7 +2892,7 @@ Defining \__ior_map_inline_loop:NNN on line ...
 Defining \l__ior_internal_tl on line ...
 Defining \g__file_internal_ior on line ...
 Defining \c_log_iow on line ...
-\c_log_iow=\count120
+\c_log_iow=\count117
 Defining \c_term_iow on line ...
 Defining \g__iow_streams_seq on line ...
 Defining \l__iow_stream_tl on line ...
@@ -2929,18 +2929,18 @@ Defining \iow_newline: on line ...
 Defining \iow_char:N on line ...
 Defining \c_catcode_other_space_tl on line ...
 Defining \l_iow_line_count_int on line ...
-\l_iow_line_count_int=\count121
+\l_iow_line_count_int=\count118
 Defining \l__iow_newline_tl on line ...
 Defining \l__iow_line_target_int on line ...
-\l__iow_line_target_int=\count122
+\l__iow_line_target_int=\count119
 Defining \l__iow_one_indent_tl on line ...
 Defining \l__iow_one_indent_int on line ...
-\l__iow_one_indent_int=\count123
+\l__iow_one_indent_int=\count120
 Defining \__iow_unindent:w on line ...
 Defining \__iow_set_indent:n on line ...
 Defining \l__iow_indent_tl on line ...
 Defining \l__iow_indent_int on line ...
-\l__iow_indent_int=\count124
+\l__iow_indent_int=\count121
 Defining \l__iow_line_tl on line ...
 Defining \l__iow_line_part_tl on line ...
 Defining \l__iow_line_break_bool on line ...
@@ -3256,7 +3256,7 @@ Defining \c__keys_type_root_tl on line ...
 Defining \c__keys_validate_root_tl on line ...
 Defining \c__keys_props_root_tl on line ...
 Defining \l_keys_choice_int on line ...
-\l_keys_choice_int=\count125
+\l_keys_choice_int=\count122
 Defining \l_keys_choice_tl on line ...
 Defining \l__keys_groups_clist on line ...
 Defining \l_keys_key_tl on line ...
@@ -3500,25 +3500,25 @@ Defining \__fp_exp_after_normal:Nwwwww on line ...
 Defining \__fp_exp_after_array_f:w on line ...
 Defining \__fp_exp_after_stop_f:nw on line ...
 Defining \c__fp_leading_shift_int on line ...
-\c__fp_leading_shift_int=\count126
+\c__fp_leading_shift_int=\count123
 Defining \c__fp_middle_shift_int on line ...
-\c__fp_middle_shift_int=\count127
+\c__fp_middle_shift_int=\count124
 Defining \c__fp_trailing_shift_int on line ...
-\c__fp_trailing_shift_int=\count128
+\c__fp_trailing_shift_int=\count125
 Defining \__fp_pack:NNNNNw on line ...
 Defining \c__fp_big_leading_shift_int on line ...
-\c__fp_big_leading_shift_int=\count129
+\c__fp_big_leading_shift_int=\count126
 Defining \c__fp_big_middle_shift_int on line ...
-\c__fp_big_middle_shift_int=\count130
+\c__fp_big_middle_shift_int=\count127
 Defining \c__fp_big_trailing_shift_int on line ...
-\c__fp_big_trailing_shift_int=\count131
+\c__fp_big_trailing_shift_int=\count128
 Defining \__fp_pack_big:NNNNNNw on line ...
 Defining \c__fp_Bigg_leading_shift_int on line ...
-\c__fp_Bigg_leading_shift_int=\count132
+\c__fp_Bigg_leading_shift_int=\count129
 Defining \c__fp_Bigg_middle_shift_int on line ...
-\c__fp_Bigg_middle_shift_int=\count133
+\c__fp_Bigg_middle_shift_int=\count130
 Defining \c__fp_Bigg_trailing_shift_int on line ...
-\c__fp_Bigg_trailing_shift_int=\count134
+\c__fp_Bigg_trailing_shift_int=\count131
 Defining \__fp_pack_Bigg:NNNNNNw on line ...
 Defining \__fp_pack_twice_four:wNNNNNNNN on line ...
 Defining \__fp_pack_eight:wNNNNNNNN on line ...
@@ -4218,9 +4218,29 @@ Defining \__fp_array_to_clist:n on line ...
 Defining \__fp_array_to_clist_loop:Nw on line ...
 Defining \__fp_parse_word_rand:N on line ...
 Defining \__fp_parse_word_randint:N on line ...
-Defining message LaTeX/kernel/fp-no-random on line ...
+Defining \__fp_rand_uniform: on line ...
+Defining \c__fp_rand_size_int on line ...
+\c__fp_rand_size_int=\count132
+Defining \c__fp_rand_four_int on line ...
+\c__fp_rand_four_int=\count133
+Defining \c__fp_rand_eight_int on line ...
+\c__fp_rand_eight_int=\count134
+Defining \__fp_rand_myriads:n on line ...
+Defining \__fp_rand_myriads_loop:nn on line ...
+Defining \__fp_rand_myriads_get:w on line ...
+Defining \__fp_rand_myriads_last: on line ...
+Defining \__fp_rand_myriads_last:w on line ...
 Defining \__fp_rand_o:Nw on line ...
+Defining \__fp_rand_o: on line ...
 Defining \__fp_randint_o:Nw on line ...
+Defining \__fp_randint_badarg:w on line ...
+Defining \__fp_randint_e:w on line ...
+Defining \__fp_randint_e:wnn on line ...
+Defining \__fp_randint_e:wwNnn on line ...
+Defining \__fp_randint_e:wwwNnn on line ...
+Defining \__fp_randint_narrow_e:nnnn on line ...
+Defining \__fp_randint_wide_e:nnnn on line ...
+Defining \__fp_randint_wide_e:wnnn on line ...
 Defining \fp_new:N on line ...
 Defining \fp_new:c on line ...
 Defining \fp_set:Nn on line ...
@@ -5354,6 +5374,11 @@ Defining \file_if_exist_input:nTF on line ...
 Defining \ior_log_streams: on line ...
 Defining \iow_log_streams: on line ...
 Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
 Defining \msg_expandable_error:nnnn on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 36a9c80..09bdaea 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -1388,19 +1388,19 @@ Defining \c_one_hundred on line ...
 Defining \c_one_thousand on line ...
 Defining \c_ten_thousand on line ...
 Defining \c_max_int on line ...
-\c_max_int=\count113
+\c_max_int=\count110
 Defining \c_max_char_int on line ...
 Defining \l_tmpa_int on line ...
-\l_tmpa_int=\count114
+\l_tmpa_int=\count111
 Defining \l_tmpb_int on line ...
-\l_tmpb_int=\count115
+\l_tmpb_int=\count112
 Defining \g_tmpa_int on line ...
-\g_tmpa_int=\count116
+\g_tmpa_int=\count113
 Defining \g_tmpb_int on line ...
-\g_tmpb_int=\count117
+\g_tmpb_int=\count114
 Defining \c_minus_one on line ...
 Defining \g__intarray_font_int on line ...
-\g__intarray_font_int=\count118
+\g__intarray_font_int=\count115
 Defining \__intarray_new:Nn on line ...
 Defining \__intarray_count:N on line ...
 Defining \__intarray_gset_fast:Nnn on line ...
@@ -1631,7 +1631,7 @@ Defining \mode_if_math:TF on line ...
 Defining \group_align_safe_begin: on line ...
 Defining \group_align_safe_end: on line ...
 Defining \g__prg_map_int on line ...
-\g__prg_map_int=\count119
+\g__prg_map_int=\count116
 Defining \c_empty_clist on line ...
 Defining \l__clist_internal_clist on line ...
 Defining \__clist_tmp:w on line ...
@@ -2892,7 +2892,7 @@ Defining \__ior_map_inline_loop:NNN on line ...
 Defining \l__ior_internal_tl on line ...
 Defining \g__file_internal_ior on line ...
 Defining \c_log_iow on line ...
-\c_log_iow=\count120
+\c_log_iow=\count117
 Defining \c_term_iow on line ...
 Defining \g__iow_streams_seq on line ...
 Defining \l__iow_stream_tl on line ...
@@ -2929,18 +2929,18 @@ Defining \iow_newline: on line ...
 Defining \iow_char:N on line ...
 Defining \c_catcode_other_space_tl on line ...
 Defining \l_iow_line_count_int on line ...
-\l_iow_line_count_int=\count121
+\l_iow_line_count_int=\count118
 Defining \l__iow_newline_tl on line ...
 Defining \l__iow_line_target_int on line ...
-\l__iow_line_target_int=\count122
+\l__iow_line_target_int=\count119
 Defining \l__iow_one_indent_tl on line ...
 Defining \l__iow_one_indent_int on line ...
-\l__iow_one_indent_int=\count123
+\l__iow_one_indent_int=\count120
 Defining \__iow_unindent:w on line ...
 Defining \__iow_set_indent:n on line ...
 Defining \l__iow_indent_tl on line ...
 Defining \l__iow_indent_int on line ...
-\l__iow_indent_int=\count124
+\l__iow_indent_int=\count121
 Defining \l__iow_line_tl on line ...
 Defining \l__iow_line_part_tl on line ...
 Defining \l__iow_line_break_bool on line ...
@@ -3256,7 +3256,7 @@ Defining \c__keys_type_root_tl on line ...
 Defining \c__keys_validate_root_tl on line ...
 Defining \c__keys_props_root_tl on line ...
 Defining \l_keys_choice_int on line ...
-\l_keys_choice_int=\count125
+\l_keys_choice_int=\count122
 Defining \l_keys_choice_tl on line ...
 Defining \l__keys_groups_clist on line ...
 Defining \l_keys_key_tl on line ...
@@ -3500,25 +3500,25 @@ Defining \__fp_exp_after_normal:Nwwwww on line ...
 Defining \__fp_exp_after_array_f:w on line ...
 Defining \__fp_exp_after_stop_f:nw on line ...
 Defining \c__fp_leading_shift_int on line ...
-\c__fp_leading_shift_int=\count126
+\c__fp_leading_shift_int=\count123
 Defining \c__fp_middle_shift_int on line ...
-\c__fp_middle_shift_int=\count127
+\c__fp_middle_shift_int=\count124
 Defining \c__fp_trailing_shift_int on line ...
-\c__fp_trailing_shift_int=\count128
+\c__fp_trailing_shift_int=\count125
 Defining \__fp_pack:NNNNNw on line ...
 Defining \c__fp_big_leading_shift_int on line ...
-\c__fp_big_leading_shift_int=\count129
+\c__fp_big_leading_shift_int=\count126
 Defining \c__fp_big_middle_shift_int on line ...
-\c__fp_big_middle_shift_int=\count130
+\c__fp_big_middle_shift_int=\count127
 Defining \c__fp_big_trailing_shift_int on line ...
-\c__fp_big_trailing_shift_int=\count131
+\c__fp_big_trailing_shift_int=\count128
 Defining \__fp_pack_big:NNNNNNw on line ...
 Defining \c__fp_Bigg_leading_shift_int on line ...
-\c__fp_Bigg_leading_shift_int=\count132
+\c__fp_Bigg_leading_shift_int=\count129
 Defining \c__fp_Bigg_middle_shift_int on line ...
-\c__fp_Bigg_middle_shift_int=\count133
+\c__fp_Bigg_middle_shift_int=\count130
 Defining \c__fp_Bigg_trailing_shift_int on line ...
-\c__fp_Bigg_trailing_shift_int=\count134
+\c__fp_Bigg_trailing_shift_int=\count131
 Defining \__fp_pack_Bigg:NNNNNNw on line ...
 Defining \__fp_pack_twice_four:wNNNNNNNN on line ...
 Defining \__fp_pack_eight:wNNNNNNNN on line ...
@@ -4218,9 +4218,29 @@ Defining \__fp_array_to_clist:n on line ...
 Defining \__fp_array_to_clist_loop:Nw on line ...
 Defining \__fp_parse_word_rand:N on line ...
 Defining \__fp_parse_word_randint:N on line ...
-Defining message LaTeX/kernel/fp-no-random on line ...
+Defining \__fp_rand_uniform: on line ...
+Defining \c__fp_rand_size_int on line ...
+\c__fp_rand_size_int=\count132
+Defining \c__fp_rand_four_int on line ...
+\c__fp_rand_four_int=\count133
+Defining \c__fp_rand_eight_int on line ...
+\c__fp_rand_eight_int=\count134
+Defining \__fp_rand_myriads:n on line ...
+Defining \__fp_rand_myriads_loop:nn on line ...
+Defining \__fp_rand_myriads_get:w on line ...
+Defining \__fp_rand_myriads_last: on line ...
+Defining \__fp_rand_myriads_last:w on line ...
 Defining \__fp_rand_o:Nw on line ...
+Defining \__fp_rand_o: on line ...
 Defining \__fp_randint_o:Nw on line ...
+Defining \__fp_randint_badarg:w on line ...
+Defining \__fp_randint_e:w on line ...
+Defining \__fp_randint_e:wnn on line ...
+Defining \__fp_randint_e:wwNnn on line ...
+Defining \__fp_randint_e:wwwNnn on line ...
+Defining \__fp_randint_narrow_e:nnnn on line ...
+Defining \__fp_randint_wide_e:nnnn on line ...
+Defining \__fp_randint_wide_e:wnnn on line ...
 Defining \fp_new:N on line ...
 Defining \fp_new:c on line ...
 Defining \fp_set:Nn on line ...
@@ -5352,6 +5372,11 @@ Defining \file_if_exist_input:nTF on line ...
 Defining \ior_log_streams: on line ...
 Defining \iow_log_streams: on line ...
 Defining \int_rand:nn on line ...
+Defining \__int_rand:ww on line ...
+Defining \__int_rand_narrow:nn on line ...
+Defining \__int_rand_narrow:nnn on line ...
+Defining \__int_rand_narrow:nnnn on line ...
+Defining message LaTeX/kernel/backward-range on line ...
 Defining \msg_expandable_error:nnnnnn on line ...
 Defining \msg_expandable_error:nnnnn on line ...
 Defining \msg_expandable_error:nnnn on line ...
diff --git a/l3kernel/testfiles/m3expl004.ptex.tlg b/l3kernel/testfiles/m3expl004.ptex.tlg
index 602356a..23df867 100644
--- a/l3kernel/testfiles/m3expl004.ptex.tlg
+++ b/l3kernel/testfiles/m3expl004.ptex.tlg
@@ -2,18 +2,18 @@ This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 (expl3.sty
  (expl3-code.tex
-\c_max_int=\count113
-\l_tmpa_int=\count114
-\l_tmpb_int=\count115
-\g_tmpa_int=\count116
-\g_tmpb_int=\count117
-\g__intarray_font_int=\count118
-\g__prg_map_int=\count119
-\c_log_iow=\count120
-\l_iow_line_count_int=\count121
-\l__iow_line_target_int=\count122
-\l__iow_one_indent_int=\count123
-\l__iow_indent_int=\count124
+\c_max_int=\count110
+\l_tmpa_int=\count111
+\l_tmpb_int=\count112
+\g_tmpa_int=\count113
+\g_tmpb_int=\count114
+\g__intarray_font_int=\count115
+\g__prg_map_int=\count116
+\c_log_iow=\count117
+\l_iow_line_count_int=\count118
+\l__iow_line_target_int=\count119
+\l__iow_one_indent_int=\count120
+\l__iow_indent_int=\count121
 \c_zero_dim=\dimen132
 \c_max_dim=\dimen133
 \l_tmpa_dim=\dimen134
@@ -32,16 +32,19 @@ Don't change this file in any respect.
 \l_tmpb_muskip=\muskip43
 \g_tmpa_muskip=\muskip44
 \g_tmpb_muskip=\muskip45
-\l_keys_choice_int=\count125
-\c__fp_leading_shift_int=\count126
-\c__fp_middle_shift_int=\count127
-\c__fp_trailing_shift_int=\count128
-\c__fp_big_leading_shift_int=\count129
-\c__fp_big_middle_shift_int=\count130
-\c__fp_big_trailing_shift_int=\count131
-\c__fp_Bigg_leading_shift_int=\count132
-\c__fp_Bigg_middle_shift_int=\count133
-\c__fp_Bigg_trailing_shift_int=\count134
+\l_keys_choice_int=\count122
+\c__fp_leading_shift_int=\count123
+\c__fp_middle_shift_int=\count124
+\c__fp_trailing_shift_int=\count125
+\c__fp_big_leading_shift_int=\count126
+\c__fp_big_middle_shift_int=\count127
+\c__fp_big_trailing_shift_int=\count128
+\c__fp_Bigg_leading_shift_int=\count129
+\c__fp_Bigg_middle_shift_int=\count130
+\c__fp_Bigg_trailing_shift_int=\count131
+\c__fp_rand_size_int=\count132
+\c__fp_rand_four_int=\count133
+\c__fp_rand_eight_int=\count134
 \l__sort_length_int=\count135
 \l__sort_min_int=\count136
 \l__sort_top_int=\count137
diff --git a/l3kernel/testfiles/m3expl004.uptex.tlg b/l3kernel/testfiles/m3expl004.uptex.tlg
index df0039a..e08d836 100644
--- a/l3kernel/testfiles/m3expl004.uptex.tlg
+++ b/l3kernel/testfiles/m3expl004.uptex.tlg
@@ -2,18 +2,18 @@ This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 (expl3.sty
  (expl3-code.tex
-\c_max_int=\count113
-\l_tmpa_int=\count114
-\l_tmpb_int=\count115
-\g_tmpa_int=\count116
-\g_tmpb_int=\count117
-\g__intarray_font_int=\count118
-\g__prg_map_int=\count119
-\c_log_iow=\count120
-\l_iow_line_count_int=\count121
-\l__iow_line_target_int=\count122
-\l__iow_one_indent_int=\count123
-\l__iow_indent_int=\count124
+\c_max_int=\count110
+\l_tmpa_int=\count111
+\l_tmpb_int=\count112
+\g_tmpa_int=\count113
+\g_tmpb_int=\count114
+\g__intarray_font_int=\count115
+\g__prg_map_int=\count116
+\c_log_iow=\count117
+\l_iow_line_count_int=\count118
+\l__iow_line_target_int=\count119
+\l__iow_one_indent_int=\count120
+\l__iow_indent_int=\count121
 \c_zero_dim=\dimen132
 \c_max_dim=\dimen133
 \l_tmpa_dim=\dimen134
@@ -32,16 +32,19 @@ Don't change this file in any respect.
 \l_tmpb_muskip=\muskip43
 \g_tmpa_muskip=\muskip44
 \g_tmpb_muskip=\muskip45
-\l_keys_choice_int=\count125
-\c__fp_leading_shift_int=\count126
-\c__fp_middle_shift_int=\count127
-\c__fp_trailing_shift_int=\count128
-\c__fp_big_leading_shift_int=\count129
-\c__fp_big_middle_shift_int=\count130
-\c__fp_big_trailing_shift_int=\count131
-\c__fp_Bigg_leading_shift_int=\count132
-\c__fp_Bigg_middle_shift_int=\count133
-\c__fp_Bigg_trailing_shift_int=\count134
+\l_keys_choice_int=\count122
+\c__fp_leading_shift_int=\count123
+\c__fp_middle_shift_int=\count124
+\c__fp_trailing_shift_int=\count125
+\c__fp_big_leading_shift_int=\count126
+\c__fp_big_middle_shift_int=\count127
+\c__fp_big_trailing_shift_int=\count128
+\c__fp_Bigg_leading_shift_int=\count129
+\c__fp_Bigg_middle_shift_int=\count130
+\c__fp_Bigg_trailing_shift_int=\count131
+\c__fp_rand_size_int=\count132
+\c__fp_rand_four_int=\count133
+\c__fp_rand_eight_int=\count134
 \l__sort_length_int=\count135
 \l__sort_min_int=\count136
 \l__sort_top_int=\count137
diff --git a/l3kernel/testfiles/m3expl006.ptex.tlg b/l3kernel/testfiles/m3expl006.ptex.tlg
index 44ff859..b5d0691 100644
--- a/l3kernel/testfiles/m3expl006.ptex.tlg
+++ b/l3kernel/testfiles/m3expl006.ptex.tlg
@@ -3,18 +3,18 @@ Don't change this file in any respect.
 Author: Bruno Le Floch and Joseph Wright
 (expl3.sty
  (expl3-code.tex
-\c_max_int=\count113
-\l_tmpa_int=\count114
-\l_tmpb_int=\count115
-\g_tmpa_int=\count116
-\g_tmpb_int=\count117
-\g__intarray_font_int=\count118
-\g__prg_map_int=\count119
-\c_log_iow=\count120
-\l_iow_line_count_int=\count121
-\l__iow_line_target_int=\count122
-\l__iow_one_indent_int=\count123
-\l__iow_indent_int=\count124
+\c_max_int=\count110
+\l_tmpa_int=\count111
+\l_tmpb_int=\count112
+\g_tmpa_int=\count113
+\g_tmpb_int=\count114
+\g__intarray_font_int=\count115
+\g__prg_map_int=\count116
+\c_log_iow=\count117
+\l_iow_line_count_int=\count118
+\l__iow_line_target_int=\count119
+\l__iow_one_indent_int=\count120
+\l__iow_indent_int=\count121
 \c_zero_dim=\dimen132
 \c_max_dim=\dimen133
 \l_tmpa_dim=\dimen134
@@ -33,16 +33,19 @@ Author: Bruno Le Floch and Joseph Wright
 \l_tmpb_muskip=\muskip43
 \g_tmpa_muskip=\muskip44
 \g_tmpb_muskip=\muskip45
-\l_keys_choice_int=\count125
-\c__fp_leading_shift_int=\count126
-\c__fp_middle_shift_int=\count127
-\c__fp_trailing_shift_int=\count128
-\c__fp_big_leading_shift_int=\count129
-\c__fp_big_middle_shift_int=\count130
-\c__fp_big_trailing_shift_int=\count131
-\c__fp_Bigg_leading_shift_int=\count132
-\c__fp_Bigg_middle_shift_int=\count133
-\c__fp_Bigg_trailing_shift_int=\count134
+\l_keys_choice_int=\count122
+\c__fp_leading_shift_int=\count123
+\c__fp_middle_shift_int=\count124
+\c__fp_trailing_shift_int=\count125
+\c__fp_big_leading_shift_int=\count126
+\c__fp_big_middle_shift_int=\count127
+\c__fp_big_trailing_shift_int=\count128
+\c__fp_Bigg_leading_shift_int=\count129
+\c__fp_Bigg_middle_shift_int=\count130
+\c__fp_Bigg_trailing_shift_int=\count131
+\c__fp_rand_size_int=\count132
+\c__fp_rand_four_int=\count133
+\c__fp_rand_eight_int=\count134
 \l__sort_length_int=\count135
 \l__sort_min_int=\count136
 \l__sort_top_int=\count137
diff --git a/l3kernel/testfiles/m3expl006.uptex.tlg b/l3kernel/testfiles/m3expl006.uptex.tlg
index 888d75c..0cdd82a 100644
--- a/l3kernel/testfiles/m3expl006.uptex.tlg
+++ b/l3kernel/testfiles/m3expl006.uptex.tlg
@@ -3,18 +3,18 @@ Don't change this file in any respect.
 Author: Bruno Le Floch and Joseph Wright
 (expl3.sty
  (expl3-code.tex
-\c_max_int=\count113
-\l_tmpa_int=\count114
-\l_tmpb_int=\count115
-\g_tmpa_int=\count116
-\g_tmpb_int=\count117
-\g__intarray_font_int=\count118
-\g__prg_map_int=\count119
-\c_log_iow=\count120
-\l_iow_line_count_int=\count121
-\l__iow_line_target_int=\count122
-\l__iow_one_indent_int=\count123
-\l__iow_indent_int=\count124
+\c_max_int=\count110
+\l_tmpa_int=\count111
+\l_tmpb_int=\count112
+\g_tmpa_int=\count113
+\g_tmpb_int=\count114
+\g__intarray_font_int=\count115
+\g__prg_map_int=\count116
+\c_log_iow=\count117
+\l_iow_line_count_int=\count118
+\l__iow_line_target_int=\count119
+\l__iow_one_indent_int=\count120
+\l__iow_indent_int=\count121
 \c_zero_dim=\dimen132
 \c_max_dim=\dimen133
 \l_tmpa_dim=\dimen134
@@ -33,16 +33,19 @@ Author: Bruno Le Floch and Joseph Wright
 \l_tmpb_muskip=\muskip43
 \g_tmpa_muskip=\muskip44
 \g_tmpb_muskip=\muskip45
-\l_keys_choice_int=\count125
-\c__fp_leading_shift_int=\count126
-\c__fp_middle_shift_int=\count127
-\c__fp_trailing_shift_int=\count128
-\c__fp_big_leading_shift_int=\count129
-\c__fp_big_middle_shift_int=\count130
-\c__fp_big_trailing_shift_int=\count131
-\c__fp_Bigg_leading_shift_int=\count132
-\c__fp_Bigg_middle_shift_int=\count133
-\c__fp_Bigg_trailing_shift_int=\count134
+\l_keys_choice_int=\count122
+\c__fp_leading_shift_int=\count123
+\c__fp_middle_shift_int=\count124
+\c__fp_trailing_shift_int=\count125
+\c__fp_big_leading_shift_int=\count126
+\c__fp_big_middle_shift_int=\count127
+\c__fp_big_trailing_shift_int=\count128
+\c__fp_Bigg_leading_shift_int=\count129
+\c__fp_Bigg_middle_shift_int=\count130
+\c__fp_Bigg_trailing_shift_int=\count131
+\c__fp_rand_size_int=\count132
+\c__fp_rand_four_int=\count133
+\c__fp_rand_eight_int=\count134
 \l__sort_length_int=\count135
 \l__sort_min_int=\count136
 \l__sort_top_int=\count137
diff --git a/l3kernel/testfiles/m3rand001.ptex.tlg b/l3kernel/testfiles/m3rand001.ptex.tlg
index 80787ed..ab39ffa 100644
--- a/l3kernel/testfiles/m3rand001.ptex.tlg
+++ b/l3kernel/testfiles/m3rand001.ptex.tlg
@@ -4,66 +4,40 @@ Author: Bruno Le Floch
 ============================================================
 TEST 1: Random floating point number
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, 
+0.6462368894354278
+0.9436367545979044
+0.4852789154091621
+0.177206678619497
+0.5709297441167938
 ============================================================
 ============================================================
 TEST 2: Random integer
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, nan, nan, nan, nan, 
+2
+1
+2
+1
+1
+-9999999999999999
+-9999999999999999
+-9999999999999998
+-9999999999999999
+-9999999999999999
+444814453
+983095862
+958440641
+448535503
+361158142
+6698906031397161
+4488284872942466
+6862012124606703
+4745501327166187
+9558266238979667
+-8367420653049596
+-616799027378363
+1497734804749083
+6603444483764452
+-9258032600444501
 ============================================================
 ============================================================
 TEST 3: Random bad arguments
@@ -79,16 +53,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           rand() expects between 0 and 0 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -97,7 +62,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           rand() expects between 0 and 0 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -106,7 +71,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           rand() expects between 0 and 0 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -115,7 +80,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           randint() expects between 1 and 2 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -124,7 +89,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, 0)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -133,7 +98,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, 1e16)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -142,7 +107,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(9900000000000000, 1e16)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -151,7 +116,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(-1e16, -1000000000000000)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -160,7 +125,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           randint() expects between 1 and 2 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -169,7 +134,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, nan)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -178,7 +143,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, inf)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -187,7 +152,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(nan, 0)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -196,7 +161,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(inf, 0)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -205,7 +170,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Bounds ordered backwards in \int_rand:nn {1} {0}.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -216,7 +181,7 @@ nan
 nan
 nan
 nan
-nan
+1
 nan
 nan
 nan
@@ -231,176 +196,52 @@ nan
 ============================================================
 TEST 4: Random integer in a range
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-(-1) (-2147483647) (-2147483647) (-2147483647) 
+|-1|-1|1|0|-1|
+|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|
+|-2147483645|-2147483644|-2147483638|-2147483647|-2147483644|
+|-758446477|1931291650|79608793|-160587022|1579678534|
 ============================================================
 ============================================================
 TEST 5: Random tl item
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
 ||
-(\A ) (\A ) (\A ) () () ( ) (\A ) 
+|\A |\A |\A |\A |\A |
+| \B | \B | \B |\A |\A |
+|\C |{\B }|\C |\C |{\B }|
+||||||
+||||||
+||| | | |
+|\A |##|\A | |\A |
 ============================================================
 ============================================================
 TEST 6: Random clist item
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
 ||
-(\A ) ( ,) () ( ,) (\A ) 
+|\A |\A |\A |\A |\A |
+|\A |{}|{}| \B | ,|
+||||||
+|| ,| ,|||
+|&|##|##|&|##|
 ============================================================
 ============================================================
 TEST 7: Random seq item
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-() ( ,) (\A ) 
+||||||
+||| ,|||
+|{\\}|##|##|,|\A |
 ============================================================
 ============================================================
 TEST 8: Random prop key/value
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-() ({\e }{}) 
+||||||
+|{\a }{\A }|{\e }{}|{\b }{{\B }}|{\b }{{\B }}|{\a }{\A }|
 ============================================================
 ============================================================
 TEST 9: sys rand commands
 ============================================================
-No randomness
+1,30
+0,89
+0,79
+1,30
+1,8
 ============================================================
diff --git a/l3kernel/testfiles/m3rand001.uptex.tlg b/l3kernel/testfiles/m3rand001.uptex.tlg
index 80787ed..ab39ffa 100644
--- a/l3kernel/testfiles/m3rand001.uptex.tlg
+++ b/l3kernel/testfiles/m3rand001.uptex.tlg
@@ -4,66 +4,40 @@ Author: Bruno Le Floch
 ============================================================
 TEST 1: Random floating point number
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, 
+0.6462368894354278
+0.9436367545979044
+0.4852789154091621
+0.177206678619497
+0.5709297441167938
 ============================================================
 ============================================================
 TEST 2: Random integer
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-nan, nan, nan, nan, nan, 
+2
+1
+2
+1
+1
+-9999999999999999
+-9999999999999999
+-9999999999999998
+-9999999999999999
+-9999999999999999
+444814453
+983095862
+958440641
+448535503
+361158142
+6698906031397161
+4488284872942466
+6862012124606703
+4745501327166187
+9558266238979667
+-8367420653049596
+-616799027378363
+1497734804749083
+6603444483764452
+-9258032600444501
 ============================================================
 ============================================================
 TEST 3: Random bad arguments
@@ -79,16 +53,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           rand() expects between 0 and 0 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -97,7 +62,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           rand() expects between 0 and 0 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -106,7 +71,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           rand() expects between 0 and 0 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -115,7 +80,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           randint() expects between 1 and 2 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -124,7 +89,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, 0)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -133,7 +98,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, 1e16)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -142,7 +107,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(9900000000000000, 1e16)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -151,7 +116,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(-1e16, -1000000000000000)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -160,7 +125,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           randint() expects between 1 and 2 arguments.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -169,7 +134,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, nan)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -178,7 +143,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(1, inf)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -187,7 +152,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(nan, 0)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -196,7 +161,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Invalid operation randint(inf, 0)
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -205,7 +170,7 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 ! Undefined control sequence.
 <argument> \LaTeX3 error: 
-                           Random numbers unavailable
+                           Bounds ordered backwards in \int_rand:nn {1} {0}.
 l. ...  }
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
@@ -216,7 +181,7 @@ nan
 nan
 nan
 nan
-nan
+1
 nan
 nan
 nan
@@ -231,176 +196,52 @@ nan
 ============================================================
 TEST 4: Random integer in a range
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-(-1) (-2147483647) (-2147483647) (-2147483647) 
+|-1|-1|1|0|-1|
+|-2147483647|-2147483647|-2147483647|-2147483647|-2147483647|
+|-2147483645|-2147483644|-2147483638|-2147483647|-2147483644|
+|-758446477|1931291650|79608793|-160587022|1579678534|
 ============================================================
 ============================================================
 TEST 5: Random tl item
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
 ||
-(\A ) (\A ) (\A ) () () ( ) (\A ) 
+|\A |\A |\A |\A |\A |
+| \B | \B | \B |\A |\A |
+|\C |{\B }|\C |\C |{\B }|
+||||||
+||||||
+||| | | |
+|\A |##|\A | |\A |
 ============================================================
 ============================================================
 TEST 6: Random clist item
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
 ||
-(\A ) ( ,) () ( ,) (\A ) 
+|\A |\A |\A |\A |\A |
+|\A |{}|{}| \B | ,|
+||||||
+|| ,| ,|||
+|&|##|##|&|##|
 ============================================================
 ============================================================
 TEST 7: Random seq item
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-() ( ,) (\A ) 
+||||||
+||| ,|||
+|{\\}|##|##|,|\A |
 ============================================================
 ============================================================
 TEST 8: Random prop key/value
 ============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error: 
-                           Random numbers unavailable
-l. ...  }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-() ({\e }{}) 
+||||||
+|{\a }{\A }|{\e }{}|{\b }{{\B }}|{\b }{{\B }}|{\a }{\A }|
 ============================================================
 ============================================================
 TEST 9: sys rand commands
 ============================================================
-No randomness
+1,30
+0,89
+0,79
+1,30
+1,8
 ============================================================
diff --git a/l3trial/l3hooks/testfiles/m3hooks001.luatex.tlg b/l3trial/l3hooks/testfiles/m3hooks001.luatex.tlg
index 9e30812..e54f6de 100644
--- a/l3trial/l3hooks/testfiles/m3hooks001.luatex.tlg
+++ b/l3trial/l3hooks/testfiles/m3hooks001.luatex.tlg
@@ -174,8 +174,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 e
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 f
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 r
@@ -225,8 +225,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 r
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 i
@@ -248,7 +248,7 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 | (ligature ---)
-.\discretionary50|
+.\discretionary (penalty 50)
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 h
 .\OT1/cmr/m/n/10 a
@@ -274,8 +274,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 t
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 n
@@ -309,8 +309,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 p
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 e
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 s
@@ -368,8 +368,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 t
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 s
@@ -377,13 +377,13 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 p
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 e
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 d
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 s
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 n
@@ -415,8 +415,8 @@ l. ...\showlists
 \hbox(6.94444+1.94444)x345.0, glue set - 0.13133, direction TLT
 .\OT1/cmr/m/it/10 d
 .\OT1/cmr/m/it/10 e
-.\discretionary50|
-..\OT1/cmr/m/it/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/it/10 -
 .\OT1/cmr/m/it/10 v
 .\OT1/cmr/m/it/10 e
 .\OT1/cmr/m/it/10 l
@@ -436,6 +436,7 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 :
 .\OT1/cmr/m/n/10 | (ligature ---)
+.\discretionary (penalty 50)
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 h
 .\OT1/cmr/m/n/10 a
@@ -450,8 +451,8 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 e
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 e
@@ -484,11 +485,11 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 m
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 r
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 n
@@ -498,7 +499,7 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 -
-.\discretionary50|
+.\discretionary (penalty 50)
 .\glue(\rightskip) 0.0
 \penalty 100
 \glue(\baselineskip) 3.11111
@@ -512,8 +513,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 H
 .\OT1/cmr/m/n/10 u
 .\OT1/cmr/m/n/10 m
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 d
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 u
@@ -556,13 +557,13 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 u
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 p
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 d
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 t
 .\kern-0.27779
@@ -581,9 +582,9 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 n
-.\discretionary50| replacing 
-..\kern-0.27779
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
+..= \kern-0.27779
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 m
@@ -610,8 +611,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 a
 .\kern-0.27779
 .\OT1/cmr/m/n/10 y
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 n
 .\OT1/cmr/m/n/10 g
@@ -626,7 +627,7 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 n
 .\OT1/cmr/m/n/10 | (ligature ---)
-.\discretionary50|
+.\discretionary (penalty 50)
 .\OT1/cmr/m/n/10 b
 .\kern-0.27779
 .\OT1/cmr/m/n/10 y
@@ -643,16 +644,16 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 m
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 t
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 g
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 t
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 n
 .\OT1/cmr/m/n/10 g
@@ -663,16 +664,16 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 c
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 u
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 a
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 o
@@ -690,7 +691,7 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 m
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 | (ligature ---)
-.\discretionary50|
+.\discretionary (penalty 50)
 .\glue(\rightskip) 0.0
 \penalty 100
 \glue(\baselineskip) 3.11111
@@ -698,11 +699,11 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 I
 .\glue(\spaceskip) 3.33333 plus 1.66498 minus 1.11221
 .\OT1/cmr/m/n/10 o
-.\discretionary50| replacing 
-..\OT1/cmr/m/n/10 ^^K (ligature ff)
-..\OT1/cmr/m/n/10 f
-..\OT1/cmr/m/n/10 -
-.|\OT1/cmr/m/n/10 f
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 f
+..< \OT1/cmr/m/n/10 -
+..> \OT1/cmr/m/n/10 f
+..= \OT1/cmr/m/n/10 ^^K (ligature ff)
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 r
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
@@ -717,8 +718,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 h
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 s
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 r
@@ -726,8 +727,8 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 p
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 p
 .\kern0.27779
 .\OT1/cmr/m/n/10 e
@@ -743,8 +744,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 h
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 s
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 r
@@ -765,13 +766,13 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 b
-.\discretionary50| replacing 
-..\kern-0.27779
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
+..= \kern-0.27779
 .\OT1/cmr/m/n/10 v
 .\OT1/cmr/m/n/10 i
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 u
 .\OT1/cmr/m/n/10 s
@@ -805,8 +806,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 u
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 s
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 o
@@ -816,8 +817,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 h
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 t
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 v
 .\kern-0.27779
@@ -872,11 +873,11 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 p
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 i
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 a
 .\OT1/cmr/m/n/10 l
@@ -902,8 +903,8 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 i
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 l
 .\OT1/cmr/m/n/10 e
@@ -966,7 +967,7 @@ l. ...\showlists
 .\kern-0.27779
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 | (ligature ---)
-.\discretionary50|
+.\discretionary (penalty 50)
 .\OT1/cmr/m/n/10 a
 .\glue(\rightskip) 0.0
 \glue(\baselineskip) 3.11111
@@ -1019,8 +1020,8 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 h
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 s
@@ -1032,8 +1033,8 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 e
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 r
@@ -1047,14 +1048,14 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 m
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 p
 .\OT1/cmr/m/n/10 r
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 s
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 o
@@ -1072,9 +1073,9 @@ l. ...\showlists
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 n
-.\discretionary50| replacing 
-..\kern-0.27779
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
+..= \kern-0.27779
 .\OT1/cmr/m/n/10 v
 .\kern-0.27779
 .\OT1/cmr/m/n/10 e
@@ -1085,9 +1086,9 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 u
 .\OT1/cmr/m/n/10 n
-.\discretionary50| replacing 
-..\kern-0.27779
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
+..= \kern-0.27779
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 l
@@ -1103,8 +1104,8 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 m
 .\OT1/cmr/m/n/10 o
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 m
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 n
@@ -1163,8 +1164,8 @@ l. ...\showlists
 .\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111
 .\OT1/cmr/m/n/10 f
 .\OT1/cmr/m/n/10 a
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 b
 .\OT1/cmr/m/n/10 l
 .\OT1/cmr/m/n/10 e
diff --git a/l3trial/xbox/testfiles/xbox001.luatex.tlg b/l3trial/xbox/testfiles/xbox001.luatex.tlg
index a264a0f..83c2219 100644
--- a/l3trial/xbox/testfiles/xbox001.luatex.tlg
+++ b/l3trial/xbox/testfiles/xbox001.luatex.tlg
@@ -117,8 +117,8 @@ l. ...  }
 .\pdfcolorstack 0 push {0 g 0 G}
 .\OT1/cmr/m/n/10 I
 .\OT1/cmr/m/n/10 n
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 d
@@ -237,8 +237,8 @@ l. ...  }
 .\pdfcolorstack 0 push {0 g 0 G}
 .\OT1/cmr/m/n/10 I
 .\OT1/cmr/m/n/10 n
-.\discretionary50|
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
 .\OT1/cmr/m/n/10 s
 .\OT1/cmr/m/n/10 i
 .\OT1/cmr/m/n/10 d
@@ -518,9 +518,9 @@ TEST 7: lrbox
 .\OT1/cmr/m/n/10 c
 .\OT1/cmr/m/n/10 o
 .\OT1/cmr/m/n/10 n
-.\discretionary50| replacing 
-..\kern-0.27779
-..\OT1/cmr/m/n/10 -
+.\discretionary (penalty 50)
+..< \OT1/cmr/m/n/10 -
+..= \kern-0.27779
 .\OT1/cmr/m/n/10 t
 .\OT1/cmr/m/n/10 e
 .\OT1/cmr/m/n/10 n
diff --git a/support/regression-test.cfg b/support/regression-test.cfg
index e3e5d8f..e99e16a 100644
--- a/support/regression-test.cfg
+++ b/support/regression-test.cfg
@@ -29,8 +29,8 @@
   \ifx\kcatcode\@undefined\else 1\fi
   = 11 %
   % (u)platex uses up extra allocation space for count/box/dimen
-  \regression at test@alloc {29} \newcount
-  \regression at test@alloc {15} \newbox
+  \regression at test@alloc {26} \newcount
+  \regression at test@alloc {14} \newbox
   \regression at test@alloc {14} \newdimen
 \else
   \regression at test@alloc {31} \newcount

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the latex3-commits mailing list