Henri Menke henrimenke at gmail.com
Tue May 15 00:52:50 CEST 2018

On 15/05/18 03:17, Hans Hagen wrote:
> Hi,
>
> The ConTeXt meeting is - as usual - the right place and moment to
> ones. Anyway, here are some thoughts on the two main components: MkIV
> and LuaTeX.
>
> ConTeXt MkIV:
>
> - Check if some mechanism can (by now) be simplified due to LuaTeX
> extension introduced the last few years that can be considered stable by
> now. This has a low impact as we already use Lua a lot.
>
> - Figure out what mechanism in ConTeXt are bottlenecks in performance if
> there are such bottlenecks at all. We need user input on this.
>
> - Get rid of inconsistencies in the user interface e.g. by introducing
> new commands with settings.
>
> - Check what additional features users want (miss) and decide to what
> extent and with what priority we will put effort in this. We've reached
> a point where interference prevents more complex extensions.

Math typesetting is really crappy in ConTeXt, but I get that this is
beyond your priorities.  I plan to develop a module which resembles the
features and syntax of the amsmath LaTeX package for my PhD thesis.  I'm
not sure how well this will integrate with the existing mechanisms.

>
> - Try to improve tricky mechanisms, like columns and tables.
> Improvements are of course always on the agenda.

- columnsets, the new ones have considerably fewer features than the old
ones.
- rowwise setups in xtables and maybe columnwise, but that is
computationally expensive.

>
> - We can add more trickery for fonts and scripts. There are some pending
> extensions.
>
> - Maybe we should provide a few more general styles.

What does that mean?  Things like the TUGboat style?

>
> - Are there reasonable challenges left.
>
> LuaTeX 1.09:
>
> - This version is pretty close to what is the final version (seen from
> the functional point of view). We're still debating where to move after
> this. LuaTeX 2.0? A stripped down (lean and mean) version specific for
> ConTeXt? Keep in mind that we cannot fundamentally change something,
> even if we want to, because other macro packages use it and don't expect
> it to change much.

More callbacks.  I'm missing callbacks into error handling (i.e.
intercept errors) not just into error reporting like show_error_hook.

Throw out all non-Lua-related primitives and replace them with Lua
functions.  People can then define those primitives themselves, e.g.

\suppressoutererror

becomes

\protected\def\suppressoutererror{%
\directlua{errors.suppressoutererror()}}

This makes it much easier to access that stuff from Lua.  Also interface
all the \pdfvariable and \pdfextension stuff to Lua.

This should have maybe been done before 1.0 but I guess with 2.0 you can
introduce “breaking” features.

>
> - There will probably be some more options in controlling math (given
> issues with fonts). We have to accept that not everything has a generic
> programmable solution (which is why we have Lua on board).
>
> - There might be a few more callbacks but probably nothing fundamental
> is planned.
>
> - We keep cleaning up the code base (less code is better, less
> dependencies too, some documentation is missing or not yet adapted to
> the new code). For instance the pdf inclusion code will soon be redone
> (and then tested in the ConTeXt distribution as usual).
>
> - When possible we will try to improve performance but there is not much
> to gain to be expected there.
>
> - We will also keep up with Lua (currently 5.3, some day 5.4). It is
> unclear to what extent LuaJit follows. When it stays behind we need to
> decide if support in ConTeXt will stay (to some extent we can have dual
> code paths as we have now).

LuaJIT will always be 5.1 compatible.  That is one of the declared goals
of the project.  However there exist compatibility layers for Lua which
implement recent features for older interpreters.
https://github.com/keplerproject/lua-compat-5.3

I would rather not see LuaJIT support being dropped.  The VM by itself
(without JIT) is already a lot faster than regular Lua and I feel that
the ConTeXt runs benefit from that quite a lot.  I use contextjit as my
daily driver.

>
> - We expect the ffi interface to external libraries to become more
> stable over time. ConTeXt will not introduce dependencies (what can be
> done in Lua will happen in Lua) but on the other hand we might put some
> libraries in the distribution e.g. for database support.
>
> - We might add some extensions to MetaPost in MPLib.
>
> In addition we could formulate ideas with respect to the distribution,
> garden, documentation and so on.
>
> You can react on this list but if you come to the meeting, you can
> participate in discussions.
>
> So far for now,
>
> Hans
>
> -----------------------------------------------------------------
>                                            Hans Hagen | PRAGMA ADE
>                Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>         tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------
> ___________________________________________________________________________________
>