summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2023-04-27 17:10:58 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2023-04-27 17:10:58 +0200
commita0e79ce94348b934dcefc38133cd8fed08bd38e3 (patch)
tree8b98d5ba39a83fb9953d5bb8e92a95bb4ff00cc2 /tex
parent09d2348c611e4e4eb348a36c76acaef546d6287e (diff)
downloadcontext-a0e79ce94348b934dcefc38133cd8fed08bd38e3.tar.gz
2023-04-27 16:57:00
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-en.mkii3
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/mult-prm.lua2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24649 -> 24650 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin271246 -> 271361 bytes
-rw-r--r--tex/context/base/mkxl/cldf-pos.lmt152
-rw-r--r--tex/context/base/mkxl/cldf-pos.mkxl20
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl2
-rw-r--r--tex/context/base/mkxl/luat-cnf.lmt2
-rw-r--r--tex/context/base/mkxl/toks-ini.lmt2
-rw-r--r--tex/context/base/mkxl/toks-scn.lmt2
-rw-r--r--tex/context/interface/mkii/keys-en.xml3
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
17 files changed, 138 insertions, 62 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index e41443a84..1b418833b 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2023.04.27 09:34}
+\newcontextversion{2023.04.27 16:54}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 74541280a..5f1fbaa04 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2023.04.27 09:34}
+\edef\contextversion{2023.04.27 16:54}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-en.mkii b/tex/context/base/mkii/mult-en.mkii
index e6c9225e0..ec4f634f8 100644
--- a/tex/context/base/mkii/mult-en.mkii
+++ b/tex/context/base/mkii/mult-en.mkii
@@ -450,6 +450,7 @@
\setinterfacevariable{printable}{printable}
\setinterfacevariable{process}{process}
\setinterfacevariable{product}{product}
+\setinterfacevariable{profile}{profile}
\setinterfacevariable{program}{program}
\setinterfacevariable{project}{project}
\setinterfacevariable{protected}{protected}
@@ -831,6 +832,7 @@
\setinterfaceconstant{exitoffset}{exitoffset}
\setinterfaceconstant{expansion}{expansion}
\setinterfaceconstant{export}{export}
+\setinterfaceconstant{extradata}{extradata}
\setinterfaceconstant{extras}{extras}
\setinterfaceconstant{factor}{factor}
\setinterfaceconstant{fallback}{fallback}
@@ -954,6 +956,7 @@
\setinterfaceconstant{lastpage}{lastpage}
\setinterfaceconstant{lastpagesep}{lastpagesep}
\setinterfaceconstant{lastpubsep}{lastpubsep}
+\setinterfaceconstant{lasttextseparator}{lasttextseparator}
\setinterfaceconstant{layout}{layout}
\setinterfaceconstant{left}{left}
\setinterfaceconstant{leftclass}{leftclass}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 1342dc41a..cbe448fc7 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2023.04.27 09:34}
+\newcontextversion{2023.04.27 16:54}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 71f8d3f74..7c3567153 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -49,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2023.04.27 09:34}
+\edef\contextversion{2023.04.27 16:54}
%D Kind of special:
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 239e97a04..37779ec57 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -354,6 +354,7 @@ return {
"firstvalidlanguage",
"float",
"floatdef",
+ "floatexpr",
"flushmarks",
"fontcharba",
"fontcharta",
@@ -599,7 +600,6 @@ return {
"pardirection",
"permanent",
"pettymuskip",
- "posexpr",
"positdef",
"postexhyphenchar",
"posthyphenchar",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index cae5837bf..dddda9577 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index a47b73f9f..087e77bf3 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkxl/cldf-pos.lmt b/tex/context/base/mkxl/cldf-pos.lmt
index 40c88c716..9378b01be 100644
--- a/tex/context/base/mkxl/cldf-pos.lmt
+++ b/tex/context/base/mkxl/cldf-pos.lmt
@@ -21,13 +21,15 @@ local posittonumber = posit.tonumber
local values = tokens.values
local boolean_code = values.boolean
+local float_code = values.float
-do
+local scanners = tokens.scanners
+local scanposit = scanners.posit
+local scanfloat = scanners.float
+local scaninteger = scanners.integer
+local scancsname = scanners.csname
- local scanners = tokens.scanners
- local scanfloat = scanners.float
- local scaninteger = scanners.integer
- local scancsname = scanners.csname
+do -- these are only for testing and might go to a module eventually
local codes = tex.codes
@@ -78,60 +80,108 @@ do
end,
}
-end
+ do
-do
-
- local p_number = lpeg.patterns.number
- local p = lpeg.Cs(
- lpeg.Cc("local new = new ; return ")
- * (
- lpeg.C(p_number) / function(s)
- return "new(" .. s .. ")"
- end
- + lpeg.P(1)
- )^0
- )
+ local p_number = lpeg.patterns.number
+ local p = lpeg.Cs(
+ lpeg.Cc("local new = new ; return ")
+ * (
+ lpeg.C(p_number) / function(s)
+ return "new(" .. s .. ")"
+ end
+ + lpeg.P(1)
+ )^0
+ )
- local t = setmetatableindex({ new = posit.new }, posit)
+ local t = setmetatableindex({ new = posit.new }, posit)
- local function calculate(s)
- local new = lpegmatch(p,s)
- new = load(new,nil,nil,t)
- if new then
- new = new()
+ local function calculate(s)
+ local new = lpegmatch(p,s)
+ new = load(new,nil,nil,t)
if new then
- return new
+ new = new()
+ if new then
+ return new
+ end
end
+ return old
end
- return old
- end
- implement {
- name = "positunum",
- public = true,
- arguments = "string",
- actions = function(s)
- local r = calculate(s)
- local t = type(r)
- if t == "boolean" then
- context(tostring(r))
- elseif t == "string" then
- context(r)
- else
- context("%N",posittonumber(r))
+ implement {
+ name = "positunum",
+ public = true,
+ arguments = "string",
+ actions = function(s)
+ local r = calculate(s)
+ local t = type(r)
+ if t == "boolean" then
+ context(tostring(r))
+ elseif t == "string" then
+ context(r)
+ else
+ context("%N",posittonumber(r))
+ end
end
- end
- }
+ }
+
+ implement {
+ name = "ifpositunum",
+ public = true,
+ usage = "condition",
+ arguments = "string",
+ actions = function(s)
+ return boolean_code, calculate(s) and true or false
+ end,
+ }
- implement {
- name = "ifpositunum",
- public = true,
- usage = "condition",
- arguments = "string",
- actions = function(s)
- return boolean_code, calculate(s) and true or false
- end,
- }
+ end
+
+end
+
+do
+
+ local xsin = xmath.sin local xasin = xmath.asin local xsinh = xmath.sinh local xasinh = xmath.asinh
+ local xcos = xmath.cos local xacos = xmath.acos local xcosh = xmath.cosh local xacosh = xmath.acosh
+ local xtan = xmath.tan local xatan = xmath.atan local xtanh = xmath.tanh local xatanh = xmath.atanh
+
+ local xsqrt = xmath.sqrt
+ local xlog = xmath.log
+ local xexp = xmath.exp
+ local xpow = xmath.pow
+ local xceil = xmath.ceil
+ local xfloor = xmath.floor
+ local xround = xmath.round
+ local xabs = xmath.fabs
+ local xmod = xmath.fmod
+ local xrem = xmath.remainder
+ local xrad = xmath.rad
+ local xdeg = xmath.deg
+ local xatan2 = xmath.atan2
+
+ implement { name = "pfsin", public = true, usage = "value", actions = function() return float_code, xsin (scanposit(true)) end }
+ implement { name = "pfcos", public = true, usage = "value", actions = function() return float_code, xcos (scanposit(true)) end }
+ implement { name = "pftan", public = true, usage = "value", actions = function() return float_code, xtan (scanposit(true)) end }
+ implement { name = "pfasin", public = true, usage = "value", actions = function() return float_code, xasin (scanposit(true)) end }
+ implement { name = "pfacos", public = true, usage = "value", actions = function() return float_code, xacos (scanposit(true)) end }
+ implement { name = "pfatan", public = true, usage = "value", actions = function() return float_code, xatan (scanposit(true)) end }
+ implement { name = "pfsinh", public = true, usage = "value", actions = function() return float_code, xsinh (scanposit(true)) end }
+ implement { name = "pfcosh", public = true, usage = "value", actions = function() return float_code, xcosh (scanposit(true)) end }
+ implement { name = "pftanh", public = true, usage = "value", actions = function() return float_code, xtanh (scanposit(true)) end }
+ implement { name = "pfasinh", public = true, usage = "value", actions = function() return float_code, xasinh(scanposit(true)) end }
+ implement { name = "pfacosh", public = true, usage = "value", actions = function() return float_code, xacosh(scanposit(true)) end }
+ implement { name = "pfatanh", public = true, usage = "value", actions = function() return float_code, xatanh(scanposit(true)) end }
+ implement { name = "pfsqrt", public = true, usage = "value", actions = function() return float_code, xsqrt (scanposit(true)) end }
+ implement { name = "pflog", public = true, usage = "value", actions = function() return float_code, xlog (scanposit(true)) end }
+ implement { name = "pfexp", public = true, usage = "value", actions = function() return float_code, xexp (scanposit(true)) end }
+ implement { name = "pfceil", public = true, usage = "value", actions = function() return float_code, xceil (scanposit(true)) end }
+ implement { name = "pffloor", public = true, usage = "value", actions = function() return float_code, xfloor(scanposit(true)) end }
+ implement { name = "pfround", public = true, usage = "value", actions = function() return float_code, xround(scanposit(true)) end }
+ implement { name = "pfabs", public = true, usage = "value", actions = function() return float_code, xabs (scanposit(true)) end }
+ implement { name = "pfrad", public = true, usage = "value", actions = function() return float_code, xrad (scanposit(true)) end }
+ implement { name = "pfdeg", public = true, usage = "value", actions = function() return float_code, xdeg (scanposit(true)) end }
+ implement { name = "pfatantwo", public = true, usage = "value", actions = function() return float_code, xatan2(scanposit(true),scanposit(true)) end }
+ implement { name = "pfpow", public = true, usage = "value", actions = function() return float_code, xpow (scanposit(true),scanposit(true)) end }
+ implement { name = "pfmod", public = true, usage = "value", actions = function() return float_code, xmod (scanposit(true),scanposit(true)) end }
+ implement { name = "pfrem", public = true, usage = "value", actions = function() return float_code, xrem (scanposit(true),scanposit(true)) end }
end
diff --git a/tex/context/base/mkxl/cldf-pos.mkxl b/tex/context/base/mkxl/cldf-pos.mkxl
index e8868eece..fb419d070 100644
--- a/tex/context/base/mkxl/cldf-pos.mkxl
+++ b/tex/context/base/mkxl/cldf-pos.mkxl
@@ -13,8 +13,24 @@
\writestatus{loading}{ConTeXt Posit Numbers / Initialization}
-% \newcount\trialtypesettingstate % gets aliased at the Lua end
-
\registerctxluafile{cldf-pos}{autosuffix}
+\newposit\pfpi \pfpi 3.1415926535897932384626433832795028841971
+\newposit\pftwopi \pftwopi \floatexpr \pfpi * 2 \relax
+
+% \newfloat\fooA
+%
+% \scratchdimen=123.456pt\relax [\type{dim:} \the\scratchdimen==123.456pt]\par
+% \fooA =123.456\relax [\type{pos:} \the\fooA ==123.456] \par
+% \fooA =\scratchdimen\relax [\type{pos:} \the\fooA ==123.456] \par
+% \scratchdimen=\fooA\relax [\type{dim:} \the\scratchdimen==123.456pt]\par
+% \scratchdimen\dimexpr\fooA+10pt\relax[\type{dim:} \the\scratchdimen==133.456pt]\par
+%
+% \fooA\pfsin \pfpi [\the\fooA]\par
+% \fooA\pfcos \pfpi [\the\fooA]\par
+% \fooA\pfsqrt\pfpi [\the\fooA]\par
+% \fooA\pfexp \pfpi [\the\fooA]\par
+% \fooA\pflog \pfpi [\the\fooA]\par
+% \fooA\pfpow \pfpi 2 [\the\fooA]\par
+
\endinput
diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index ebc5e13fc..23dc6bbef 100644
--- a/tex/context/base/mkxl/cont-new.mkxl
+++ b/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2023.04.27 09:34}
+\newcontextversion{2023.04.27 16:54}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl
index 1e286f461..9ee1d3803 100644
--- a/tex/context/base/mkxl/context.mkxl
+++ b/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2023.04.27 09:34}
+\immutable\edef\contextversion{2023.04.27 16:54}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/luat-cnf.lmt b/tex/context/base/mkxl/luat-cnf.lmt
index ea9eb0d89..585941173 100644
--- a/tex/context/base/mkxl/luat-cnf.lmt
+++ b/tex/context/base/mkxl/luat-cnf.lmt
@@ -60,7 +60,7 @@ function texconfig.init()
-- not in luametatex
"unicode", "utf", "gzip", "zip", "zlib",
-- in luametatex
- "xzip", "xmath", "xcomplex", "xdecimal", "basexx",
+ "xzip", "xmath", "xcomplex", "xdecimal", "basexx", "posit",
-- maybe some day in luametatex
"lz4", "lzo",
-- always (mime can go)
diff --git a/tex/context/base/mkxl/toks-ini.lmt b/tex/context/base/mkxl/toks-ini.lmt
index e4bf7626f..d45e3ae1c 100644
--- a/tex/context/base/mkxl/toks-ini.lmt
+++ b/tex/context/base/mkxl/toks-ini.lmt
@@ -48,6 +48,7 @@ local scanvalue = token.scanvalue
local scanchar = token.scanchar
local scancsname = token.scancsname
local scannextchar = token.scannextchar
+local scanposit = token.scanposit
local scanreal = token.scanreal
local scanfloat = token.scanfloat
local scanluanumber = token.scanluanumber
@@ -160,6 +161,7 @@ tokens.scanners = { -- these expand
gluespec = scanskip,
integer = scaninteger,
cardinal = scancardinal,
+ posit = scanposit,
real = scanreal,
float = scanfloat,
luanumber = scanluanumber,
diff --git a/tex/context/base/mkxl/toks-scn.lmt b/tex/context/base/mkxl/toks-scn.lmt
index c08e8415a..855bca6ad 100644
--- a/tex/context/base/mkxl/toks-scn.lmt
+++ b/tex/context/base/mkxl/toks-scn.lmt
@@ -29,6 +29,7 @@ local scantoks = scanners.toks
local scaninteger = scanners.integer
local scancardinal = scanners.cardinal
local scannumber = scanners.number
+local scanfloat = scanners.float
local scankeyword = scanners.keyword
local scankeywordcs = scanners.keywordcs
local scanword = scanners.word
@@ -226,6 +227,7 @@ local shortcuts = {
scaninteger = scaninteger,
scancardinal = scancardinal,
scannumber = scannumber,
+ scanfloat = scanfloat,
scantable = scantable, -- not directly useable
scankeyword = scankeyword,
scankeywordcs = scankeywordcs,
diff --git a/tex/context/interface/mkii/keys-en.xml b/tex/context/interface/mkii/keys-en.xml
index fae9ee691..80624e8dc 100644
--- a/tex/context/interface/mkii/keys-en.xml
+++ b/tex/context/interface/mkii/keys-en.xml
@@ -453,6 +453,7 @@
<cd:variable name='printable' value='printable'/>
<cd:variable name='process' value='process'/>
<cd:variable name='product' value='product'/>
+ <cd:variable name='profile' value='profile'/>
<cd:variable name='program' value='program'/>
<cd:variable name='project' value='project'/>
<cd:variable name='protected' value='protected'/>
@@ -837,6 +838,7 @@
<cd:constant name='exitoffset' value='exitoffset'/>
<cd:constant name='expansion' value='expansion'/>
<cd:constant name='export' value='export'/>
+ <cd:constant name='extradata' value='extradata'/>
<cd:constant name='extras' value='extras'/>
<cd:constant name='factor' value='factor'/>
<cd:constant name='fallback' value='fallback'/>
@@ -960,6 +962,7 @@
<cd:constant name='lastpage' value='lastpage'/>
<cd:constant name='lastpagesep' value='lastpagesep'/>
<cd:constant name='lastpubsep' value='lastpubsep'/>
+ <cd:constant name='lasttextseparator' value='lasttextseparator'/>
<cd:constant name='layout' value='layout'/>
<cd:constant name='left' value='left'/>
<cd:constant name='leftclass' value='leftclass'/>
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 5b8498cd4..917ab1b94 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 2023-04-27 09:34
+-- merge date : 2023-04-27 16:54
do -- begin closure to overcome local limits and interference