On 15/05/18 03:17, Hans Hagen wrote:
Hi,
The ConTeXt meeting is - as usual - the right place and moment to discuss the roadmap. We never had real binding roadmaps, more informal 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 ----------------------------------------------------------------- ___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________