ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: installing MKIV
Date: Wed, 08 Aug 2007 16:26:16 +0200	[thread overview]
Message-ID: <46B9D288.5010401@wxs.nl> (raw)
In-Reply-To: <20070808122748.GC20266@phare.normalesup.org>

Arthur Reutenauer wrote:

>> And just for curioisty, where such names as Mark II and Mark IV come from?

% engine=luatex language=uk

\startcomponent mk-iitoiv

\environment mk-environment

\chapter{From \MKII\ to \MKIV}

Sometime in 2005 the development of \LUATEX\ started, a further
development of \PDFTEX\ and a precursor to \PDFTEX\ version~2. This
\TEX\ variant will provide:

\startitemize[packed]
\item 21--32 bit internals plus a code cleanup
\item flexible support for \OPENTYPE\ fonts
\item an internal \UTF\ data flow
\item the bidirectional typesetting of \ALEPH
\item \LUA\ callbacks to the most relevant \TEX\ internals
\item some extensions to \TEX\ (for instance math)
\item an efficient way to communicate with \METAPOST
\stopitemize

In the tradition of \TEX\ this successor will be downward
compatible in most essential parts and in the end, there is
still \PDFTEX\ version~1 as fall back.

In the mean time we have seen another unicode variant show up,
\XETEX\ which is under active development, uses external
libraries, provides access to the fonts on the operating system,
etc.

 From the beginning, \CONTEXT\ always worked with all engines. This
was achieved by conditional code blocks: depending on what engine
was used, different code was put in the format and|/|or used at
runtime. Users normally were unaware of this. Examples of engines
are \ETEX, \ALEPH, and \XETEX. Because nowadays all engines
provide the \ETEX\ features, in August 2006 we decided to consider
those features to be present and drop providing the standard \TEX\
compatible variants. This is a small effort because all code that
is sensitive for optimization already has \ETEX\ code branches for
many years.

However, with the arrival of \LUATEX, we need a more drastic approach.
Quite some existing code can go away and will be replaced by different
solutions. Where \TEX\ code ends up in the format file, along with
its state, \LUA\ code will be initiated at run time, after a \LUA\
instance is started. \CONTEXT\ reserves its own instance of \LUA.

Most of this will go unnoticed for the users because the user
interface will not change. For developers however, we need to
provide a mechanism to deal with these issues. This is why, for the
first time in \CONTEXT's history we will officially use a kind of
version tag. When we changed the low level interface from Dutch to
English we jokingly talked of version~2. So, it makes sense to
follow this lead.

\startitemize[packed]

\item \notabene {\CONTEXT\ \MKI}\quad At that moment we still had a
low level Dutch interface, invisible for users but not for developers.

\item \notabene {\CONTEXT\ \MKII}\quad We now have a low level English
interface, which (as we indeed saw happen) triggers more development by
users.

\item \notabene {\CONTEXT\ \MKIV}\quad This is the next generation of
\CONTEXT, with parts re||implemented. It's an at some points drastic
system overhaul.

\stopitemize

Keep in mind that the functionality does not change, although in
some places, for instance fonts, \MKIV\ may provide additional
functionality. The reason why most users will not notice the
difference (maybe apart from performance and convenience) is that at
the user interface level nothing changes (most of it deals with
typesetting, not with low level details).

The hole in the numbering permits us to provide a \MKIII\ version
as well. Once \XETEX\ is stable, we may use that slot for \XETEX\
specific implementations.

As per August 2006 the banner is adapted to this distinction:

\starttyping
...  ver: 2006.09.06 22:46 MK II  fmt: 2006.9.6  ...
...  ver: 2006.09.06 22:47 MK IV  fmt: 2006.9.6  ...
\stoptyping

This numbering system is reflected at the file level in such a way
that we can keep developing the way we do, i.e.\ no files all over
the place, in subdirectories, etc.

Most of the system's core files are not affected, but some may be, like
those dealing with fonts, input- and output encodings, file handling,
etc. Those files may come with different suffixes:

\startitemize

\item \type {somefile.tex}: the main file, implementing the interface
and common code

\item \type {somefile.mkii}: mostly existing code, suitable for good
old \TEX\ (\ETEX, \PDFTEX, \ALEPH).

\item \type {somefile.mkiv}: code optimized for use with \LUATEX, which
could follow completely different approaches

\item \type {somefile.lua}: \LUA\ code, loaded at format generation time
and|/|or runtime

\stopitemize

As said, some day \type {somefile.mkiii} code may show up. Which
variant is loaded is determined automatically at format generation
time as well as at run time.

\stopcomponent




-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | 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://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  parent reply	other threads:[~2007-08-08 14:26 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.1.1186567202.10213.ntg-context@ntg.nl>
2007-08-08 11:59 ` Vyatcheslav Yatskovsky
2007-08-08 12:12   ` luigi scarso
2007-08-08 12:18     ` Vyatcheslav Yatskovsky
2007-08-08 12:52       ` Arthur Reutenauer
2007-08-08 18:41         ` Joel C. Salomon
2007-08-08 18:52           ` Arthur Reutenauer
2007-08-08 20:04           ` Hans Hagen
2007-08-08 12:23     ` Taco Hoekwater
2007-08-08 12:52       ` Vyatcheslav Yatskovsky
2007-08-08 13:34         ` Peter Rolf
2007-08-08 13:48           ` Vyatcheslav Yatskovsky
2007-08-08 13:50           ` Arthur Reutenauer
2007-08-08 14:23             ` Peter Rolf
2007-08-08 19:49               ` Hans Hagen
2007-08-08 20:35                 ` Peter Rolf
2007-08-08 21:05                   ` Hans Hagen
2007-08-10 15:02                     ` Giuseppe Bilotta
2007-08-10 16:15                       ` Taco Hoekwater
2007-08-11  8:27                         ` Giuseppe Bilotta
2007-08-09 13:04                   ` Joel C. Salomon
2007-08-09 13:47                     ` Peter Rolf
2007-08-08 12:27   ` Arthur Reutenauer
2007-08-08 12:35     ` Taco Hoekwater
     [not found]     ` <20070808123824.GD20266@phare.normalesup.org>
     [not found]       ` <708583180.20070808155542@gmail.com>
     [not found]         ` <20070808131133.GG20266@phare.normalesup.org>
2007-08-08 13:18           ` Vyatcheslav Yatskovsky
2007-08-08 14:26     ` Hans Hagen [this message]
2007-08-08 12:50   ` Hans Hagen
2007-08-12 12:42 Installing MKiv Jean Magnan de Bornier
2007-08-12 14:11 ` Hans Hagen
2007-08-12 14:35 ` luigi scarso
2007-08-12 19:21   ` Jean Magnan de Bornier
2007-08-12 19:45     ` Hans Hagen
2007-08-13  6:04       ` Jean Magnan de Bornier
2007-08-12 20:45     ` luigi scarso
2007-08-13  6:03       ` Jean Magnan de Bornier
2007-08-13  6:28         ` luigi scarso
2007-08-13  7:33           ` Jean Magnan de Bornier
2007-08-13 13:54             ` Aditya Mahajan
2007-08-12 23:54     ` Idris Samawi Hamid
2007-08-13  6:06       ` Jean Magnan de Bornier
2007-08-13 12:43         ` Idris Samawi Hamid
2007-08-13 15:14           ` Jean Magnan de Bornier
2007-08-13 15:35             ` Idris Samawi Hamid
2011-10-22 17:59 installing mkiv Wolfgang Werners-Lucchini
2011-10-22 18:08 ` Wolfgang Schuster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46B9D288.5010401@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).