Hi,

As some people may be interested in the differences between
the luatex in TL 2009 and the one in the upcoming TL 2010,
so I compiled a list of all non-bugfix changes between
0.40.7 and 0.60.0. Please let me know if I missed something ...


General changes:

* Many of the source files have been converted to CWEB.
* There is now support for revision numbers in the banner again.
* The horizontal mode nodes that are added to lines during line
  breaking now inherit the attributes from the first and last node
  inside the created line.
* All lua errors now report file and line numbers to aid in debugging.
* Luatex can now optionally use kpathsea to find lua require() files.
* The print precision for small numbers in lua code (tostring)
  has been improved.

Embedded libraries and other third-party inclusions:

* Metapost is now at version 1.211.
* New synctex code imported from TeXLive.
* Libpng is now at version 1.2.40.
* The lua file from the luamd5 library (which provides the
  md5.hexsuma() function) is now embedded in the executable.
* The Lua coroutine patch (coco) is now disabled on linux
  powerpc architectures (because it caused crashes)
* Luatex now has support for dynamic loading of
  external compiled lua libraries.

Font related:

* The backend message "cannot open Type 1 font file for reading"
  now reports which Type1 font file it was looking for.
* It is no longer possible for fonts from embedded pdf files
  to be replaced by / merged with the document fonts of the
  enveloping pdf.
* Support for Type3 .pgc files has been removed.
* The variables <metrics>.Mathconstants.FractionDelimiterSize
  and <metrics>.Mathconstants.FractionDelimiterDisplayStyleSize
  are added to the font table. This allows proper setting of the
  size parameters for TeX's ...withdelims math primitives.
* Artificially slanted or extended fonts now work via the pdf text matrix
  so that it now also  works for non-Type1 fonts. The lua <metrics>.slant
  and .extend font keys are now obeyed in all cases.
* A change to the relative ordering inside font name discovery for use
  by the backend: now it tries <f>.psname first, as that is much less
  likely to contain spaces.
* For ttc fonts, now the used subfont name and its index id are printed
  to the terminal, and if the backend cannot find a ttc subfont, the
  run is aborted.
* It is now possible to use Apple dfont font files.
* There is a new allowed key in the table that is returned
  by lua-loaded fonts: <f>.psname. This value should be set
  to the original PostScript font name of the font. Fonts inside
  dfont and ttc collections are fetched using this field
* lua-loaded fonts now support a 'nomath' key to speed up
  loading the lua table.
* The loading speed of large fonts via the fontloader library, and
  the inclusion speed for subsetting in the backend have both been
  improved.

'TeX'-side extensions:

* Two new token lists are provided: \pdfxformresources and
  \pdfxformattr, as an alternative to \pdfxform keywords.
* \input and \openin now accept braced filenames.
* The \endlinechar can now be set to any value between 0 and 127.
* The new primitives \aligntab and \alignmark are aliases for
  the use of & and # in alignments.
* \pdfrefxform [width <dimen>] [height <dimen>] [depth <dimen>] <formref>
  scales a form object; similar principle as with \pdfximage: depth alone
  doesn't scale, it shifts vertically.
* \pdfrefximage [width <dimen>] [height <dimen>] [depth <dimen>] <imageref>
  overrules settings from \pdfximage for this \pdfrefximage call only
* \pdfobj now has an extra optional keyword: 'uncompressed',
  which forces the object to be written to the PDF in plain
  text (see the manual for the exact details).
* \latelua is now allowed inside leaders.
* The new primitive \gleaders provides 'globally aligned' leaders.
* The \pdfcompresslevel is now effectively fixed as soon as
  output to the pdf file has occurred.
* Removed obsolete pdftex primitives:
  \pdfoptionalwaysusepdfpagebox
  \pdfoptionpdfinclusionerrorlevel
  \pdfforcepagebox
  \pdfmovechars
* (un-feature): from now on luatex now only handles 4 direction
  specifiers: TLT (latin), TRT (arabic), RTT (cjk), and LTL
  (mongolian). The other directions now generate an error.

Lua table extensions:

* callback table:
  ** There is a new callback: process_output_buffer
  ** The callbacks hpack_filter, vpack_filter and pre_output_filter
  pass on an extra string argument for the direction, when known.

* fontloader table:
  ** fontloader.open() previously cleared some font names that it
  should not.

* font table:
  ** new function font.id()

* kpse table:
  ** new functions kpse.lookup() and kpse.version()

* lfs table:
  ** new functions lfs.readlink() and lfs.shortname()

* node table:
  ** new function node.vpack()
  ** new function node.protrusion_skipable()
  ** new function node.dimensions().
  ** new function node.tail()
  ** Each glyph node now has three new virtual read-only fields:
  width, height, and depth (values in scaled points)
  ** node.copy_list() now allows the second (optional) argument to be nil.
** node.hpack() now accepts "cal_expand_ratio" and "subst_ex_font" modifiers.
  ** node.hpack() and node.vpack() also give back the badness of the box.
  ** node.copy_list() now allows a second (stop) argument.
  ** The lua functions node.hpack(), node.vpack() and node.dimensions()
  now accept an optional direction argument.
  ** hlist nodes now have a subtype to distinguish hlists generated
  by the paragraph breaking, explicit \hbox commands, and other sources.
  ** glue_spec nodes now have an extra field: writable.

* os table:
  ** os.name now knows about CYGWIN and kfreebsd.

* pdf table:
  ** new functions: pdf.mapfile(), pdf.mapline()
  ** new function pdf.registerannot()
  ** new functions pdf.obj(), pdf.immediateobj(), pdf.reserveobj()
  ** new read-write string keys: pdf.catalog, pdf.info,
  pdf.names, pdf.trailer, pdf.pageattributes, pdf.pageresources,
  pdf.pagesresources

* tex table:
  ** new function tex.badness()
  ** new function tex.linebreak()
  ** new function tex.sp()
  ** new function tex.tprint()
  ** new function tex.shipout()
  ** new sub-table: tex.nest[] (rw access to the semantic nest state).
_______________________________________________
dev-luatex mailing list
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-luatex

Reply via email to