summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/mfluajitdir
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/web2c/mfluajitdir
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/mfluajitdir')
-rw-r--r--Build/source/texk/web2c/mfluajitdir/ChangeLog45
-rw-r--r--Build/source/texk/web2c/mfluajitdir/am/mfluajit.am135
-rw-r--r--Build/source/texk/web2c/mfluajitdir/mf-luajit.ch8
-rw-r--r--Build/source/texk/web2c/mfluajitdir/mfluajit.defines29
-rw-r--r--Build/source/texk/web2c/mfluajitdir/mfluajitextra.c11
-rw-r--r--Build/source/texk/web2c/mfluajitdir/mfluajitextra.h26
-rw-r--r--Build/source/texk/web2c/mfluajitdir/mfluajittrap/mfluajittrap.diffs287
-rwxr-xr-xBuild/source/texk/web2c/mfluajitdir/mfluajittraptest.test52
8 files changed, 593 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/mfluajitdir/ChangeLog b/Build/source/texk/web2c/mfluajitdir/ChangeLog
new file mode 100644
index 00000000000..aa75e43ea2e
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/ChangeLog
@@ -0,0 +1,45 @@
+2017-04-16 Luigi Scarso <luigi.scarso@gmail.com>
+
+ * am/mfluajit.am: delete useless lua files
+
+
+2016-04-05 Karl Berry <karl@tug.org>
+
+ * am/mflua.am: no need for inimfluajit.
+
+2015-09-27 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/mfluajit.am: Fix dependencies.
+
+2015-07-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * mfluajittraptest (removed): Renamed ...
+ * mfluajittraptest.test (new): ... into this.
+ * am/mfluajit.am: Better dependencies for 'make check'.
+
+2015-07-08 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/mfluajit.am: Fix dependencies.
+
+2015-07-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/mfluajit.am, mfluac.[ch]: Use lkpselib.c.
+
+2015-07-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/mfluajit.am: Always create mfluajit-nowin, either as extra
+ program or as symlink.
+
+2015-07-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * mfluajittraptest: Use ../mfluadir/mfluatrap/*.lua files.
+
+2015-06-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/mfluajit.am: Use $(tie_c) and $(tie_m).
+
+2015-04-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported MFLuaJIT into TeX Live, based on the SVN repository
+ https://foundry.supelec.fr/projects/mflua
+ from Luigi Scarso <luigi.scarso@gmail.com>.
diff --git a/Build/source/texk/web2c/mfluajitdir/am/mfluajit.am b/Build/source/texk/web2c/mfluajitdir/am/mfluajit.am
new file mode 100644
index 00000000000..424554e43b4
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/am/mfluajit.am
@@ -0,0 +1,135 @@
+## texk/web2c/mfluajitdir/am/mfluajit.am: Makefile fragment for MFLuaJIT.
+##
+## Copyright 2016 Karl Berry <tex-live@tug.org>
+## Copyright 2015 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+
+## MFLuaJIT
+##
+if MFLUAJIT
+bin_PROGRAMS += mfluajit
+if MFLUAJITN
+bin_PROGRAMS += mfluajit-nowin
+endif MFLUAJITN
+if WIN32
+noinst_PROGRAMS += call_mfluajit
+install_exe_links += install-mfluajit-links
+uninstall_exe_links += uninstall-mfluajit-links
+else !WIN32
+if !MFLUAJITN
+bin_links += mfluajit$(EXEEXT):mfluajit-nowin
+endif !MFLUAJITN
+endif !WIN32
+endif MFLUAJIT
+EXTRA_PROGRAMS += mfluajit mfluajit-nowin
+DISTCLEANFILES += mfluajittrap.diffs
+
+call_mfluajit_CPPFLAGS = -DEXEPROG=\"mfluajit.exe\"
+nodist_call_mfluajit_SOURCES = callexe.c
+call_mfluajit_LDADD =
+
+.PHONY: install-mfluajit-links uninstall-mfluajit-links
+if WIN32
+install-mfluajit-links: call_mfluajit$(EXEEXT)
+if !MFLUAJITN
+ $(INSTALL_PROGRAM) call_mfluajit$(EXEEXT) $(DESTDIR)$(bindir)/mfluajit-nowin$(EXEEXT)
+endif !MFLUAJITN
+uninstall-mfluajit-links:
+if !MFLUAJITN
+ rm -f $(DESTDIR)$(bindir)/mfluajit-nowin$(EXEEXT)
+endif !MFLUAJITN
+endif WIN32
+
+dist_mfluajit_SOURCES = mfluajitdir/mfluajitextra.c mfluajitdir/mfluajitextra.h mfluadir/mflua_version.h
+mfluajit_CPPFLAGS = $(AM_CPPFLAGS) $(X_CFLAGS) $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
+mfluajit_LDADD = libmfluajit.a libmfluaotfcc.a $(LDADD) $(windowlib) $(mf_x_libs) $(LUAJIT_LIBS)
+mfluajit_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
+nodist_mfluajit_nowin_SOURCES = $(dist_mfluajit_SOURCES)
+mfluajit_nowin_CPPFLAGS = $(mfluajit_CPPFLAGS) -DMFNOWIN $(LUAJIT_INCLUDES) $(LUAJIT_DEFINES)
+mfluajit_nowin_LDADD = libmfluajit.a libmfluaotfcc.a $(LDADD) $(windowlib) $(LUAJIT_LIBS)
+mfluajit_nowin_LDFLAGS = -export-dynamic $(LUAJIT_LDEXTRA)
+
+# We must create mfluajitd.h and mfluadir/mflua_version.h before compiling mfluajitextra.c.
+$(mfluajit_OBJECTS) $(mfluajit_nowin_OBJECTS): mfluajitd.h mfluadir/mflua_version.h
+
+## mfluajit and mfluajit-nowin compile mfluajitextra.c with different CPPFLAGS.
+## Automake, however, does not support CPPFLAGS for individual source files.
+## To avoid compiling everything twice, the common objects are in a library.
+EXTRA_LIBRARIES += libmfluajit.a libmfluaotfcc.a
+
+# MFLuaJIT C sources
+mfluajit_c_h = mfluajitini.c mfluajit0.c mfluajitcoerce.h mfluajitd.h
+dist_libmfluajit_a_SOURCES = luatexdir/lua/lkpselib.c mfluadir/mfluac.c mfluadir/mfluac.h
+nodist_libmfluajit_a_SOURCES = $(mfluajit_c_h) mfluajit-pool.c
+libmfluajit_a_CPPFLAGS = $(AM_CPPFLAGS) $(LUAJIT_INCLUDES) -DMF_LUA -DJIT
+
+# We must create mfluajitd.h before building the libmfluajit_a_OBJECTS.
+$(libmfluajit_a_OBJECTS): mfluajitd.h
+
+$(mfluajit_c_h): mfluajit-web2c
+ @$(web2c) mfluajit
+mfluajit-web2c: mfluajit.p $(web2c_texmf) web2c/cvtmf1.sed web2c/cvtmf2.sed mfluajitdir/mfluajit.defines $(LUAJIT_DEPEND)
+ @$(web2c) mfluajit
+
+mfluajit-pool.c: mfluajit.pool mfluajitd.h $(makecpool_stamp)
+ $(makecpool) mfluajit >$@ || rm -f $@
+
+# Tangling MFLuaJIT
+mfluajit.p mfluajit.pool: mfluajit-tangle
+ @$(texmf_tangle) mfluajit mfluajit
+mfluajit-tangle: tangle$(EXEEXT) mfluajit.web mfluajit.ch tangle-sh
+ @$(texmf_tangle) mfluajit mfluajit
+
+# Generate mfluajit.web
+mfluajit.web: tie$(EXEEXT) $(mfluajit_web_srcs)
+ $(tie_m) $(mfluajit_web_srcs)
+mfluajit_web_srcs = \
+ mf.web \
+ mfluadir/mf-lua.ch \
+ mfluajitdir/mf-luajit.ch
+
+# Generate mfluajit.ch
+mfluajit.ch: tie$(EXEEXT) mfluajit.web $(mfluajit_ch_src)
+ $(tie_c) mfluajit.web $(mfluajit_ch_src)
+mfluajit_ch_src = \
+ mf.ch \
+ mfluadir/mflua-m.ch \
+ mf-binpool.ch
+##
+EXTRA_DIST += $(mfluajit_web_srcs) $(mfluajit_ch_src) mfluajitdir/mfluajit.defines
+
+DISTCLEANFILES += $(nodist_libmfluajit_a_SOURCES) mfluajit.web mfluajit.ch mfluajit-web2c \
+ mfluajit.p mfluajit.pool mfluajit-tangle
+
+EXTRA_DIST += \
+ mfluajitdir/ChangeLog
+
+# MFLuaJIT tests
+#
+mfluajit_tests = mfluajitdir/mfluajittraptest.test
+mfluajitdir/mfluajittraptest.log: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
+EXTRA_DIST += $(mfluajit_tests)
+
+if MFLUAJIT
+TESTS += $(mfluajit_tests)
+TRIPTRAP += mfluajittrap.diffs
+TRIPTRAP_CLEAN += mfluajittrap-clean
+endif MFLUAJIT
+DISTCLEANFILES += mfluajittrap.diffs
+
+## mfluajitdir/mfluajittraptest
+mfluajittrap.diffs: mfluajit$(EXEEXT) gftype$(EXEEXT) tftopl$(EXEEXT)
+ $(triptrap_diffs) $@
+.PHONY: mfluajittrap-clean
+mfluajittrap-clean:
+ rm -rf mfluajittrapdir
+
+
+## Test data
+##
+EXTRA_DIST += \
+ mfluadir/mfluatrap/mflua.lua \
+ mfluadir/mfluatrap/mflua_svg_backend.lua \
+ mfluadir/mfluatrap/mflua_ttx_backend.lua \
+ mfluadir/mfluatrap/texmf.cnf \
+ mfluadir/mfluatrap/mfluatrap.diffs
diff --git a/Build/source/texk/web2c/mfluajitdir/mf-luajit.ch b/Build/source/texk/web2c/mfluajitdir/mf-luajit.ch
new file mode 100644
index 00000000000..9794ef69eb2
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/mf-luajit.ch
@@ -0,0 +1,8 @@
+@x [1.2] - this is MFLuaJIT
+@d banner==MFLua_banner
+@y
+@d MFLuaJITbanner=='This is MFLuaJIT, Version 2.71828182', MFLua_version_string
+ {printed when MFLuaJIT starts}
+@#
+@d banner==MFLuaJITbanner
+@z
diff --git a/Build/source/texk/web2c/mfluajitdir/mfluajit.defines b/Build/source/texk/web2c/mfluajitdir/mfluajit.defines
new file mode 100644
index 00000000000..3c63c846bc5
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/mfluajit.defines
@@ -0,0 +1,29 @@
+{ Additional symbols for MFLuaJIT. Public domain.}
+
+@define procedure mfluainitialize;
+@define procedure mfluaprintpath();
+@define procedure mfluaprintedges();
+@define procedure mfluaPREoffsetprep();
+@define procedure mfluaPOSToffsetprep();
+@define procedure mfluaPREfillenveloperhs();
+@define procedure mfluaPOSTfillenveloperhs();
+@define procedure mfluaPREfillenvelopelhs();
+@define procedure mfluaPOSTfillenvelopelhs();
+@define procedure mfluaPREmakespecrhs();
+@define procedure mfluaPOSTmakespecrhs();
+@define procedure mfluaPREmakespeclhs();
+@define procedure mfluaPOSTmakespeclhs();
+@define procedure mfluaPREfillspecrhs();
+@define procedure mfluaPOSTfillspecrhs();
+@define procedure mfluaPREfillspeclhs();
+@define procedure mfluaPOSTfillspeclhs();
+@define procedure mfluaPREmovetoedges();
+@define procedure mfluaPOSTmovetoedges();
+@define procedure mfluaPREmakechoices();
+@define procedure mfluaPOSTmakechoices();
+@define procedure mfluaprintretrogradeline();
+@define procedure mfluaprinttransitionlinefrom();
+@define procedure mfluaprinttransitionlineto();
+@define procedure mfluaPREmakeellipse();
+@define procedure mfluaPOSTmakeellipse();
+@define procedure mfluarunscript();
diff --git a/Build/source/texk/web2c/mfluajitdir/mfluajitextra.c b/Build/source/texk/web2c/mfluajitdir/mfluajitextra.c
new file mode 100644
index 00000000000..653bc69113d
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/mfluajitextra.c
@@ -0,0 +1,11 @@
+/* mfluajitextra.c: Hand-coded routines for MFLuaJIT.
+
+ This file is public domain. */
+
+#define EXTERN /* Instantiate data from mfluajitd.h here. */
+
+/* This file defines MFLuaJIT. */
+#include <mfluajitd.h>
+
+/* Hand-coded routines for TeX or Metafont in C. */
+#include <lib/texmfmp.c>
diff --git a/Build/source/texk/web2c/mfluajitdir/mfluajitextra.h b/Build/source/texk/web2c/mfluajitdir/mfluajitextra.h
new file mode 100644
index 00000000000..6e6f59d2efe
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/mfluajitextra.h
@@ -0,0 +1,26 @@
+/* mfluajitextra.h: banner etc. for MFLuaJIT.
+
+ This is included by MFLuaJIT, from mfluajitextra.c
+*/
+
+#include <mfluadir/mflua_version.h> /* for MFLUA_VERSION */
+#ifdef BANNER
+#undef BANNER
+#define BANNER "This is MFLuaJIT, Version 2.71828182-" MFLUA_VERSION
+#endif
+#define COPYRIGHT_HOLDER "L. Scarso"
+#define AUTHOR NULL
+#define PROGRAM_HELP MFLUAJITHELP
+#define BUG_ADDRESS "luigi.scarso@gmail.com"
+#define DUMP_VAR MFbasedefault
+#define DUMP_LENGTH_VAR basedefaultlength
+#define DUMP_OPTION "base"
+#ifdef DOS
+#define DUMP_EXT ".bas"
+#else
+#define DUMP_EXT ".base"
+#endif
+#define INPUT_FORMAT kpse_mf_format
+#define INI_PROGRAM "inimfluajit"
+#define VIR_PROGRAM "virmfluajit"
+#define MFLuaJIT
diff --git a/Build/source/texk/web2c/mfluajitdir/mfluajittrap/mfluajittrap.diffs b/Build/source/texk/web2c/mfluajitdir/mfluajittrap/mfluajittrap.diffs
new file mode 100644
index 00000000000..0bfaf1af6ee
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/mfluajittrap/mfluajittrap.diffs
@@ -0,0 +1,287 @@
+#! /bin/sh -vx
+# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2015 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+testdir=$abs_srcdir/triptrap
++ testdir=SRCDIR/triptrap
+ltestdir=$abs_srcdir/mfluadir/mfluatrap
++ ltestdir=SRCDIR/mfluadir/mfluatrap
+jtestdir=$abs_srcdir/mfluajitdir/mfluajittrap
++ jtestdir=SRCDIR/mfluajitdir/mfluajittrap
+
+TEXMFCNF=$ltestdir
++ TEXMFCNF=SRCDIR/mfluadir/mfluatrap
+LUAINPUTS=$ltestdir
++ LUAINPUTS=SRCDIR/mfluadir/mfluatrap
+export TEXMFCNF LUAINPUTS
++ export TEXMFCNF LUAINPUTS
+
+rm -rf mfluajittrapdir
++ rm -rf mfluajittrapdir
+mkdir mfluajittrapdir
++ mkdir mfluajittrapdir
+cd mfluajittrapdir
++ cd mfluajittrapdir
+
+echo ">>> Running TRAP test for MFLuaJIT." >&2
++ echo '>>> Running TRAP test for MFLuaJIT.'
+>>> Running TRAP test for MFLuaJIT.
+echo ">>> See $jtestdir/mfluajittrap.diffs for example of acceptable diffs." >&2
++ echo '>>> See SRCDIR/mfluajitdir/mfluajittrap/mfluajittrap.diffs for example of acceptable diffs.'
+>>> See SRCDIR/mfluajitdir/mfluajittrap/mfluajittrap.diffs for example of acceptable diffs.
+
+is_OK=:
++ is_OK=:
+
+set -x
++ set -x
+
+# get same filename in log
+$LN_S $testdir/trap.mf .
++ ln -s SRCDIR/triptrap/trap.mf .
+
+./mfluajit --progname=inimfluajit <$testdir/mftrap1.in >mftrapin.fot
++ ./mfluajit --progname=inimfluajit
+if test ! -s trap.base; then
+ echo "*** trap.base not created by mftrap1.in, investigate!" >&2
+ exit 1
+fi
++ test '!' -s trap.base
+mv trap.log mftrapin.log || exit 1
++ mv trap.log mftrapin.log
+diff $testdir/mftrapin.log mftrapin.log
++ diff SRCDIR/triptrap/mftrapin.log mftrapin.log
+1c1
+< This is METAFONT, Version 2.71828182 (INIMF) 4 JUL 1776 12:00
+---
+> This is MFLuaJIT, Version 2.71828182-1.0.0-alpha (INIMF) 27 JAN 2021 18:03
+150c150
+< String usage 26&83 (892&11481 still untouched)
+---
+> String usage 30&98 (1047458&9979376 still untouched)
+176,177c176,177
+< (preloaded base=trap 1776.7.4)
+< 1116 strings of total length 20570
+---
+> (preloaded base=trap 2021.1.27)
+> 1125 strings of total length 20685
+179c179
+< 265 symbolic tokens
+---
+> 266 symbolic tokens
+
+./mfluajit --progname=inimfluajit <$testdir/mftrap2.in >mftrap.fot
++ ./mfluajit --progname=inimfluajit
+mv trap.log mftrap.log || exit 1
++ mv trap.log mftrap.log
+mv trap.tfm mftrap.tfm || exit 1
++ mv trap.tfm mftrap.tfm
+diff $testdir/mftrap.fot mftrap.fot
++ diff SRCDIR/triptrap/mftrap.fot mftrap.fot
+1,3c1,4
+< This is METAFONT, Version 2.71828182 (INIMF)
+< ** &trap trap
+< (trap.mf
+---
+> MFLua version: 1.0.0-alpha
+> MFLua banner: This is MFLua, Version 2.71828182-1.0.0-alpha
+> This is MFLuaJIT, Version 2.71828182-1.0.0-alpha (TeX Live 2021/dev) (INIMF)
+> **(trap.mf
+22a24,99
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+27a105,136
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+> Warning: print_scale called with nil argument.
+>
+39c148
+< String usage 41&161 (816&7678 still untouched)
+---
+> String usage 50&202 (1047372&9975522 still untouched)
+59a169
+> Warning: end_program.lua not found
+diff $testdir/mftrap.log mftrap.log
++ diff SRCDIR/triptrap/mftrap.log mftrap.log
+1c1
+< This is METAFONT, Version 2.71828182 (preloaded base=trap 1776.7.4) 4 JUL 1776 12:00
+---
+> This is MFLuaJIT, Version 2.71828182-1.0.0-alpha (preloaded base=trap 2021.1.27) 27 JAN 2021 18:03
+133,134c133,134
+< <scantokens> pair
+< p[],';^^ff
+---
+> <scantokens> or <runscript> pair
+> p[],';^^ff
+145,146c145,146
+< <scantokens> pair
+< p[],';^^ff
+---
+> <scantokens> or <runscript> pair
+> p[],';^^ff
+158,159c158,159
+< <scantokens> pair
+< p[],';^^ff
+---
+> <scantokens> or <runscript> pair
+> p[],';^^ff
+169,170c169,170
+< <scantokens> pair p[],';^^ff
+<
+---
+> <scantokens> or <runscript> ...f
+>
+1825c1825
+< String usage 24&92 (859&11353 still untouched)
+---
+> String usage 30&119 (1047418&9979190 still untouched)
+4235c4235
+< String usage 41&161 (816&7678 still untouched)
+---
+> String usage 50&202 (1047372&9975522 still untouched)
+4251,4252c4251,4252
+< 68 strings out of 884
+< 3752 string characters out of 11430
+---
+> 77 strings out of 1047449
+> 3793 string characters out of 9979315
+4254,4255c4254,4255
+< 289 symbolic tokens out of 2100
+< 8i,43n,14r,8p,167b stack positions out of 30i,100n,300r,150p,500b
+---
+> 290 symbolic tokens out of 9500
+> 8i,43n,14r,8p,167b stack positions out of 300i,300n,1000r,150p,3000b
+4263c4263
+< out of 256w,16h,16d,64i,5000l,500k,256e,50p)
+---
+> out of 256w,16h,16d,64i,15000l,2500k,256e,60p)
+
+./tftopl ./mftrap.tfm mftrap.pl || exit 1
++ ./tftopl ./mftrap.tfm mftrap.pl
+diff $testdir/mftrap.pl mftrap.pl || is_OK=false
++ diff SRCDIR/triptrap/mftrap.pl mftrap.pl
+
+./gftype -m -i ./trap.72270gf >trap.typ || exit 1
++ ./gftype -m -i ./trap.72270gf
+diff $testdir/trap.typ trap.typ
++ diff SRCDIR/triptrap/trap.typ trap.typ
+1c1
+< This is GFtype, Version 3.1
+---
+> This is GFtype, Version 3.1 (TeX Live 2021/dev)
+3c3
+< ' METAFONT output 2014.01.07:1811'
+---
+> ' METAFONT output 2021.01.27:1803'
+
+$is_OK || {
+ echo ">>> There were some errors." >&2
+ exit 1
+}
++ :
+
+PASS mfluajitdir/mfluajittraptest.test (exit status: 0)
+PASS: mfluajitdir/mfluajittraptest.test
diff --git a/Build/source/texk/web2c/mfluajitdir/mfluajittraptest.test b/Build/source/texk/web2c/mfluajitdir/mfluajittraptest.test
new file mode 100755
index 00000000000..ce274690c1b
--- /dev/null
+++ b/Build/source/texk/web2c/mfluajitdir/mfluajittraptest.test
@@ -0,0 +1,52 @@
+#! /bin/sh -vx
+# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2015 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+testdir=$abs_srcdir/triptrap
+ltestdir=$abs_srcdir/mfluadir/mfluatrap
+jtestdir=$abs_srcdir/mfluajitdir/mfluajittrap
+
+TEXMFCNF=$ltestdir
+LUAINPUTS=$ltestdir
+export TEXMFCNF LUAINPUTS
+
+rm -rf mfluajittrapdir
+mkdir mfluajittrapdir
+cd mfluajittrapdir
+
+echo ">>> Running TRAP test for MFLuaJIT." >&2
+echo ">>> See $jtestdir/mfluajittrap.diffs for example of acceptable diffs." >&2
+
+is_OK=:
+
+set -x
+
+# get same filename in log
+$LN_S $testdir/trap.mf .
+
+../mfluajit --progname=inimfluajit <$testdir/mftrap1.in >mftrapin.fot
+if test ! -s trap.base; then
+ echo "*** trap.base not created by mftrap1.in, investigate!" >&2
+ exit 1
+fi
+mv trap.log mftrapin.log || exit 1
+diff $testdir/mftrapin.log mftrapin.log
+
+../mfluajit --progname=inimfluajit <$testdir/mftrap2.in >mftrap.fot
+mv trap.log mftrap.log || exit 1
+mv trap.tfm mftrap.tfm || exit 1
+diff $testdir/mftrap.fot mftrap.fot
+diff $testdir/mftrap.log mftrap.log
+
+../tftopl ./mftrap.tfm mftrap.pl || exit 1
+diff $testdir/mftrap.pl mftrap.pl || is_OK=false
+
+../gftype -m -i ./trap.72270gf >trap.typ || exit 1
+diff $testdir/trap.typ trap.typ
+
+$is_OK || {
+ echo ">>> There were some errors." >&2
+ exit 1
+}
+