This repository has been archived by the owner on Sep 9, 2019. It is now read-only.
forked from TeX-Live/luatex-svn-git
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
4837 lines (3414 loc) · 170 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
==============================================================
HarfTeX 0.4.1 2019-08-25
==============================================================
- Update to HarfBuzz 2.6.1 (#12)
==============================================================
HarfTeX 0.4.0 2019-08-10
==============================================================
- Fix abug in reading CFF table in soe fonts causing the engine to abort.
- Update luaharfbuzz to fix a logic error when populating Lua dictionaries from
C arrays (#11).
- Remove the newly introduced get_char_tounicode callback, its functionality can
be implemented on top if existing callbacks.
- Do not require setting font index for TTC fonts, for compatibility with
LuaTeX, though setting the index is still recommended.
- Fix handling fonts with sbix table (like Apple Color Emoji).
==============================================================
HarfTeX 0.3.1 2019-07-18
==============================================================
- Fix loading font collections when no font index is set (#7).
- Update luaharfbuzz.
- Removed unused code and Unicode data from the FontFoge fontloader module, to
decrease binary size.
==============================================================
HarfTeX 0.3.0 2019-06-30
==============================================================
- Restore FontForge-based fontloader module as few packages still depend on it
(#6).
- Fix embedding "wide" Type 1 fonts (#5).
- Update to HarfBuzz 2.5.3
==============================================================
HarfTeX 0.2.0 2019-06-24
==============================================================
- Read font parameters from OpenType tables for Type 2 fonts similar to other
font types.
- Read font x-height and cap-height from the OS/2 table in addition to the now
rarely used PCLT table. Also read ascender, descender ans well as stemv from
the OS/2 table. Previously the engine would derive these parameters from the
metrics of a hard-coded set of characters and ignore the values supplied by
the font.
- Update HarfBuzz and Graphite2 to their latest releases.
- Update luaharfbuzz to fix a bug in detecting features supported by the font
(#3).
- Drop dependency on ICU in favor of HarfBuzz's own Unicode character property
functions, decreasing the binary size significantly (#2). However ICU might
return back if we need any of its functionality.
- Emending "wide" Type 1 fonts now using the experimental FontForge-independent
code, please report any bugs with such fonts.
- TTC fonts now must set the index field in the font structure, otherwise it
will be assumed to be zero. Guessing the face index from the font's
PostScript name is no longer supported.
- Drop old FontForge-based fontloader module, further decreasing the binary
size. This might break old documents relying on such module.
==============================================================
HarfTeX 0.1.2 2019-04-26
==============================================================
- Fix an uninitialized memory access detected by valgrind
- Detect overflow in maketexlstring() instead of silently continuing even if
the string pool is full, leading to failures elsewhere.
- Drop recently add string field from glyph nodes as it was inefficient.
- Add get_glyph_string callback to be used instead of the removed string field.
- Revert fix for wrapping multi-bytes chars when printing logs, as there are
other places that needs the same fix and it needs more considerations to fix
properly.
- Sync with LuaTeX 1.10.1.
==============================================================
HarfTeX 0.1.1 2019-04-21
==============================================================
- Add string field to glyph nodes. When set, HarfTeX will use it when printing
the glyph nodes to the logs (e.g. in overfull box messages) instead of the
font chratacter. This allows printing the actual character of the glyph for
complex scripts with no one-to-one mapping between glyphs and characters.
- Show missing character warning for .notdef glyph (glyph index 0) in TrueType
and OpenType fonts.
- When wrapping log lines, don't count the bytes of multi-byte UTF-8 characters
but the Unicode code points.
- Sync with final LuaTeX 1.10.0 for TeX Live 2019.
- Sync with luaharfbuzz master branch.
==============================================================
HarfTeX 0.1.0 2019-04-15
==============================================================
First version of the HarfTeX engine based on LuaTeX.
- Add \harftexversion and \harftexrevision primitives, similar to
\luatexversion and \luatexrevision (which are also kept).
- Add luaharfbuzz module.
- Add get_char_tounicode callback, if set HarfTeX will use it to get the
tounicode fields for font chars and cache them in the font.
- Allow setting font index from Lua for TTC fonts instead of relaying on the
PostScript name to get the font index.
==============================================================
LuaTeX 1.10.0 2019-03-15
==============================================================
This the release for TeX Live 2019.
Small bug fixes, code clean up.
This is a stable release: only bug-fixes until the next TeX Live.
==============================================================
LuaTeX 1.09.2 2019-01-19
==============================================================
This is a transitional release to LuaTeX 1.10 for TeX Live 2019
==============================================================
LuaTeX 1.09 2018-10-23
==============================================================
(1) This is a release that fixed some bugs, and the latest
with lua 5.2.
(2) luaffi is still incomplete, so very likely there will be
a new release 1.09.1 before the next year.
==============================================================
LuaTeX 1.08 2018-08-28
==============================================================
(1) This release is a prelude to 1.10, the next stable iteration of LuaTeX
after version 1.00.
(2) Lua 5.3 is now considered to be default and we might use 5.4 in version
1.10. There are no real functional changed expected. You still need to rename
the binary for 5.3!
(3) Binary mode is no longer available in MPlib but it is still available in
stand alone MetaPost. This simplifies compilation and reduces dependencies.
(4) The dependency on Poppler for pdf image inclusion has been removed. We
now use a small dedicated library written by Pawel Jakowski. We no longer
need c++ compilers. We're in the process of making it behave well on all
platforms. It has been tested on intel platforms.
(5) We know that there can be some (alignment) issues with the arm platform
but these are looked into. Therefore, later this year we will release 1.09.
Version 1.10 is planned for TeXlive. We hope that ffi works ok on intel and
arm platforms at that point.
(6) There have been some extensions to the Lua libraries and some callbacks
have been added. Also, a few new primitives have been introduced. The
documentation mentions the stable extensions.
(7) There are the usual bug fixes and cleanups but there have been no real
fundamental changes in the API.
==============================================================
LuaTeX 1.07 2018-01-17
==============================================================
(1) This release brings Lua 5.3 to LuaTeX. We have tested an experimental version
for a few months and not encountered issues.
(2) If you use Lua 5.3 you should be aware of a few changes in the language and
its implementation. Numbers are now either integers or floats but are cast
automatically.
(3) In some cases (e.g. string.format) there is a more strict check. A float always
has a decimal appended when serialized, so 1 becomes 1.0 as string.
(4) We keep supporting the bit32 library on top of the new bit operators. Be aware
of the fact that currently LuajitTeX does not have these operators.
(5) Performance of LuaTeX with Lua 5.3 can be slightly better than with 5.2 but this
really depends on your usage of Lua. In practice there should be no slowdown.
(6) We are aware of possible substantial slowdown of string.format depending on the
platform and compiler. This depends on Lua too and will be resolved in due time.
(7) If you want to test with Lua 5.3 then have to build LuaTeX with --lua53. Because
ConTeXt will switch to 5.3 after this release there will be binaries available at the
ConTeXt garden.
(8) The 2018 TeXlive distribution will ship with LuaTeX using Lua 5.2 but there will
likely be an additional binary LuaTeX53 available.
(9) From 2019 TeXlive will ship with LuaTeX and Lua 5.3 as default. We provide --lua52
as build flag for a while. By then we might be looking at Lua 5.4 already.
(10) There are the usual patches and cleanups and a few small additions (mentioned
in the manual) but there have been no fundamental changes in the API (apart from
removing depricated and undocumented functionality).
==============================================================
LuaTeX Release 1.0.4 was released 2017033109
==============================================================
Several small fixes. This version will go on texlive.
==============================================================
LuaTeX Release 1.0.3 was released 2017021514
==============================================================
This is a minor upgrade and probably this version will go on texlive. There are a couple
of fixes and additions.
- We added a few a few more helpers in the pdf namespace (like set|get]gentounicode,
[set|get]omitcidset and set|get]decimaldigits. Some helpers were moved from the tex
to the pdf namespace.
- We added a build_page_insert callback for inserts so that one can for instance adapt
spacing on demand.
- On the agenda has been some more control over word start and end in hyphenation and
this is now possible via hyphenationbounds. We also updated the manual with some more
details.
- An old tracker item with respect to control over spacing around math was revived and
has resulted in mathsurroundmode (one can wonder how useful this is).
- We improved the resolution detection in included jpeg images.
- An ffi library has been added to luatex so that it is more in sync with luajittex. This
permits easy and flexible loading of libraries. Our policy is to make luatex as lean
as possible with no dependencies and this is a step towards that. Eventually we hope
to support all relevant platforms.
- The glue and skip register accessors have been improved as a step in freeing the user
from glue spec management.
- We added a few more getters and setters for nodes in order to get a more consistent
set.
- Irrelevant fields have been removed from the status table and an engine identifier
has been added.
- Of course there are numerous fixes and improvements but none of these have consequences
for the interfaces.
- The manual has been updated but will be improved over time.
==============================================================
LuaTeX Release 0.95 for TeX Live 2016 was released 2016042515
==============================================================
This is the official frozen TeXlive 2016 version.
- deleted 'beta' from the luatex_version_string
==============================================================
LuaTeX Release 0.95 was released 2016040415
==============================================================
This is a prerelease of the stable 1.0 version.
- glues now have gluespec merged in (idem math and insert)
- registers are still glue specs
- the spec field in glues are gone
- extra tex.setglue and tex.setmuglue
- obsolete dvi related dir fields removed
(if we are in time, it will be included in TeX Live 2016)
==============================================================
LuaTeX Release 0.90.0 was released 2016032512
==============================================================
This is the version that will go on TeX Live 2016
- mostly small bug fixes
- a few setters/getters added to the pdf namespace (were in the tex one before)
- a few patches to the lua interface macros
- a bit more control over protrusion edges
- no fundamental changes
==============================================================
Luatex Release 0.89.4 was released 2016031100
==============================================================
Intermediary release. Several bugs fixed.
==============================================================
Luatex Release 0.89.2 was released 2016022700
==============================================================
Intermediary release. Several bugs fixed.
==============================================================
Luatex Release 0.89.0 was released 2016020500
==============================================================
No fundamental changes, just some fixes / improvements (and of course new bugglets).
- New backend things:
\pdfvariable pkfixeddpi = integer % > 0 : use only default dpi (so one can do with one high res instance)
\pdfvariable ignoreunknownimages = integer % > 0 : ignore missing and inject something empty (to be used with care)
and one can do this:
\edef\foo{\pdfvariable foo}
\def \oof{foo}
\ifx\foo\oof don't fool me\fi
(side effect of no longer aborting on missing, so one implement a catch)
==============================================================
Luatex Release 0.88.0 was released 2016011500
==============================================================
This is a next step upto 0.90 and it has the following changes:
- mostly small bug fixes
- a few setters/getters added to the pdf namespace (were in the tex one before)
- The current libraries under libs are now:
* poppler-0.40.0
* mpfr-3.1.3
* luajit-2.1.0-beta1
* gmp-6.1.0
* zziplib-0.13.62
* zlib-1.2.8
* lua52-5.2.4
* pixman-0.32.8
* libpng-1.6.21
* cairo-1.14.6
==============================================================
Luatex beta-0.87.0 was released 2015121700
==============================================================
This is a next step upto 0.90 and it has the following changes:
- image data is no longer stored in the format (it was fragile anyway)
- pdf backend data generated when in ini mode is no longer stored in the format
- (incomplete) \mag support removed from pdf backend (this functionality is
kept in dvi mode)
- there are a couple of improvements that should make luatex run a little bit faster
(but of course that depends on the job at hand)
- some further pending issues / cleanup has been done (but this is not reflected in the
interface)
- there is a new primitive \nospace:
\nospace=1 do now not inject glue for spaces (not even zero glue)
\nospace=2 inject zero glue for spaces
- there are new primitives \hpack, \vpack and \tpack that are like \hbox, \vbox and
\vtop but they don't trigger callbacks
- we no longer keep track of older math character and delimiter definition states,
but this should normally go unnoticed
- from now on only ^^XX, ^^C, ^^^^XXXX and ^^^^^^XXXXXX are supported so no funny odd
values (three and five)
- texio.setescape(0) disables escaping to terminal (a matter of taste)
- the (current) lc codes are now saved with the (current) language when patterns are
loaded unless one hs used \hjcode instead of \lccode; overloading of \hjcodes is
possible (but of course goes ahead of hyphenation which is delayed till parbuilding or
packaging
- active characters can now be set with: \letcharcode123=\foo (experimental)
- there are some experimental new primitives but these will be described when they are
stable (currently being tested)
- there is more backend error reporting and all error messages adn warnings (the non-tex
ones) have been normalized
- of course there are the usual small fixes and additional setters and getters in libraries
(see manual)
==============================================================
Luatex beta-0.85.0 was released 2015111400 (5550)
==============================================================
-- roadmap
The 0.85 release is has a lot of changes. It is the prelude to 0.90 which itself is
a prelude to the 0.95 that will go on texlive 2016. The 1.00 release will happen
around the 2016 context meeting. After that 2.* will become the next experimental
branch (leading to 3.*). The most important changes between 0.80 and 0.85 are mentioned
below. For more information consult the manual.
-- the backend commands
There is a better separation between front- and backend code. Some of the generic
\pdf* commands have been promoted to core primitives (with different names), some
have been removes like ximagecolordepth and ximagebbox have been removed and
all that are left have been organized differently. The backend is now more abstract
and provides three primitives only
\pdfextension <keyword> <optional spec>
\pdfvariable <keyword>
\pdffeedback <keyword>
The first replaces \pdfannot and alike, the second replaces the variables that can
be sused to control behaviour, and the third accesses the read only variables. See
luatex-pdf.tex in the context distribution for a plain definition file.
The big advantage of the separation (basically core (lua)tex + extensions) is that
changes in the backend don't have consequences for the frontend and it's easier to
locate possible issues in the code. We might split a bit more at the lua end too.
-- nodes
The boundary, dir and localpar whatsits are now normal nodes. The xforms and ximage
whatsits are now a special kind of rule nodes (subtypes 1 and 2) and known as box-
and image resources (see manual). Also, empty rules are now a valid subtype (subtype
3) with related commands \nohrule and \novrule.
At the lua end one can now access the fields of a spec subnode directly in the parent,
which has the benefit of more control and robust assignments (no need to check for
writeability) while we keep the concept of shared glue specs (tex internals). By
staying close to traditional TeX the Knuthian documentation still applies in most
cases.
The pdf action nodes are now pdf_action whatsit nodes (so no longer a pseudo core
node).
You can get the node subtypes with the node.subtypes function which adds a layer
of abstraction (foo.subtype = "string" might be added in the future).
-- expansion
The hz optimization already only supported level 2 optimization, but now has a variant
3 that does only stretch glyphs and not kerns. Pending is a change where we go back to
percentages instead of fractions of em.
-- math
The old/new codepath has been checked and italic correction which is fundamental
different between the engines has been (partially) redone.
We now have \mathsurroundskip that replaces mathsurround when it's non zero.
The \mathtoptions (old 1) directive can be used for testing. This primitive is mostly for
ourselves and used for development.
The \Umathcharclass, \Umathcharfam and \Umathcharslot primitives can be used to fetch
properties of a math character.
The new \Uleft, \Uright and \Umiddle fence operators accept "height <dimen>", "depth
<dimen>" and the "noaxis" keyword as well the "exact" keyword for non-fitting ones. There
is also \Uvextension. Optionally one can specify a 'class'.
The \Udelimiter[under|over] and \U[under|over]delimiter primitives accept a width as well
as left, middle and right keywords (for non fitting ones). There is also \Uhextension.
The \abovewithdelimiter command accepts 'exact' as keyword (before the dimension) which nils
the excessive spacing. The normal vgaps still apply.
We have a new fraction primitive \Uskewed with a companion \Uskewedwithdelims. Optional
keywords are 'noaxis' and 'exact'.
There is a new directive \mathdisplayskipmode (esp for controlling the > 0 below skip check).
With \mathscriptsmode you can fix anchoring of scripts (as needed for chemistry).
The \Umathaccent commands accept a width and fraction argument.
-- hyhenation
The discretionary command now accept an optional "penalty <number>" specification
where the penalty will be stored with the node. Default is hyphenpenalty.
-- file io
texio.write/write_nl now writes to file if the first argument is a (valid) number
reference to a file opened at the tex end; you can now open 128 files from the tex end
(0..127) and the system command is no longer executed with 18
-- lua interface
The tex.<internal variable> is hopefully better now. The tex.get* also can handle
the built in registers. Especially prevdepth access should work out ok now.
-- and ...
As usual there are lots of small fixes, improvements, overhauls, small additions,
hopefully all mentioned in the manual.
-- warning
This version is probably not compatible with the macro package that you use as some
engine specific initializations need to take place (\pdf commands) and some node types
have been changed. We now have separated pdf backend commands and the only left
primitive categories are: core, (tex), etex and luatex, so no more pdftex, omega and
umath (where the distinction became to fuzzy). Of course you can still prefix.
==============================================================
Luatex beta-0.81.0 was released 2015100722 (5350)
==============================================================
* A couple of primitives are removed, renamed and/or promoted to core (luatex) primitives.
Here's a summary. It might demand some adaption in the way macro packages initialize so we will mention them here explicitly in advance. As shown below, a simple way to get backward compatibility is to \let old ones to new ones. So,
Updating to this version also might demand an update in the
macro package that you use!
Here we go:
% removed, can be done with callbacks if needed, one can define dimen dummies, like
\newdimen\pdfeachlineheight
\newdimen\pdfeachlinedepth
\newdimen\pdflastlinedepth
\newdimen\pdffirstlineheight
\newdimen\pdfignoreddimen
% removed, were already obsolete, one can \let them
\let\pdftexversion \luatexversion
\let\pdftexrevision\luatexrevision
\let\pdftexbanner \luatexbanner
% promoted (from pdftex), so pdf prefix gone, one can \let them
\let\pdfnormaldeviate \normaldeviate
\let\pdfuniformdeviate\uniformdeviate
\let\pdfsetrandomseed \setrandomseed
\let\pdfrandomseed \randomseed
% promoted (from omega), so pdf prefix gone, one can \let them
\let\pdfpagewidth \pagewidth
\let\pdfpageheight\pageheight
% redundant (etex wins over omega), so \font-less ones gone, one can \let them
\let\chardp\fontchardp
\let\charht\fontcharht
\let\charit\fontcharit
\let\charwd\fontcharwd
% promoted (from aleph)
\pagerightoffset
\pagebottomoffset
% promoted (from pdftex)
\ifincsname
\expanded
\quitvmode
% removed (from pdftex), so *pdf* ones gone, one can \let them
\let\ifpdfabsnum \ifabsnum
\let\ifpdfabsdim \ifabsdim
\let\ifpdfprimitive\ifprimitive
\let\pdfprimitive \primitive
% promoted (from omega)
\pagedir
\bodydir
\pardir
\textdir
\mathdir
% promoted (from aleph)
\boxdir
% promoted (from pdftex)
\lpcode
\rpcode
\efcode
\leftmarginkern
\rightmarginkern
\tagcode
\letterspacefont
% promoted (from pdftex), so *pdf* ones gone, one can \let them
\let\pdfprotrudechars\protrudechars
\let\pdfadjustspacing\adjustspacing
\let\pdfnoligatures \ignoreligaturesinfont
\let\pdffontexpand \expandglyphsinfont
% promoted (from pdftex), so *pdf* ones gone, one can \let them
\let\pdfsavepos \savepos
\let\pdflastxpos\lastxpos
\let\pdflastypos\lastypos
% on the todo list are:
\pdfoutput : \outputmode
\pdfmatrix : will get a normal syntax, no weird { } parsing
\pdfcolorstackinit : might become obsolete
\pdfcolorstack : might become obsolete
So, apart from a few, the \pdf* primitives now relate to the backend only.
% There is also a new primitive:
\hyphenationmin
This one determines the minimum word length (per language).
At the same time we moved the (ex)hyphenpenalties
in the disc nodes so you can inject discretionaries with specific penalties.
There will also be an updated manual.
Hans
* new epdf.openMemStream(s,l,docid)
to create a pdf from a lightuserdata or string.
(experimental, do not use in production.)
* uniform random generator in mplib is now specific for each numbersystem;
* too_precise implemented for binary number system;
* several bug fixes.
==============================================================
Luatex beta-0.80.0 was released 20150319 (5195)
==============================================================
* New library newtokenlib. It will replace the current token lib.
* Fixed a bug on the normal random generator for double/decimal/binary
number systems.
* Several others bugs fixed.
==============================================================
Luatex beta-0.79.3.1 was released 20150122 (5140)
==============================================================
* Fixed a bug in mp.w with a wrong input that gives a seg. fault.
==============================================================
Luatex beta-0.79.3 was released 20150121 (5130)
==============================================================
* It's now possible with the MinGW compilers to build luatex and luajittex as DLL
for Windows 32bit/64bit. The files are:
libkpathsea-6.dll luajittex.exe luatex.exe texlua52.dll texluajit.dll
In the next release the build.sh script be updated; for the moment just add
"--enable-shared -disable-native-texlive-build " after --disable-all-pkgs
in TL_MAKE.
Building as DLL was tested only for Windows.
* When possibile symbols in the exe are now hidden:
this should avoid conflicts with the loading of dynamic shared object.
* several bugfixes and improvements. The patches for MetaPost
fix seg. faults occourred with wrong inputs.
The functions:
mp_get_numeric_value, mp_get_string_value, mp_get_boolean_value
works if the value is a variable (i.e. not an internal variable,
a loop variable and a macro argument);
only mp_get_numeric_value now has support for loop variable
and internal variable (but still not for macro arguments).
==============================================================
Luatex beta-0.79.2 was released 20141111 (5082)
==============================================================
* WARNING: the structure of the format file is changed.
After the Web2C \TeX's magic constant: "W2TX" there is now
a FORMAT_ID, a 32bit field that cannot be between 0 and 256 (included)
so that there are no conflicts with the preexisting structure
of the format.
The value can be seen with --debug-format and currently is
907 (the sum of the values of the bytes of the ASCII string "don knuth").
* There is a new set of lua functions for StructElement and Attribute,
convenient (even if not indispensable) for tagged pdf.
* several bugfixes and improvements.
==============================================================
Luatex beta-0.79.0 was released 20140328 (4960)
==============================================================
* The luafontloader now returns 'tsidebearing' glyph values
for OT/TT fonts, if applicable.
* new lua variables: stats.luatex_hashtype, stats.luatex_hashchars,
stats.lastluaerrorstring; the luajittex string hash method is now
lua 5.1 compliant which gives better results for similar strings
* new lua functions: tex.init_rand(), tex.uniform_rand(),
tex.normal_rand(), tex.lua_math_randomseed(), tex.lua_math_random(),
tex.show_context(); these helpers make luatex and luajittex compatible
* In the lua node interface, there were often issues with rubbish
in (especially) 'prev' fields because luatex itself never looks
at those values. This is now cleaned up to prevent weird stuff
happening inside lua node processing code.
* pdf.pageattributes, pdf.pagesattributes, pdf.info, pdf.catalog,
pdf.names and pdf.trailer now behave consistent and can be used
to add these properties at the lua end in addition to their \pdf*
counterparts atthe tex end; there are now pdf.get* and pdf.set*
commands for them too (in future versions the old ways can become
obsolete)
* new accessors pdf.geth, pdfgetv, pdfgetpos, getgetmatrix as well
as pdfhasmatrix helpers (in future versions the direct pdf.h and
pdf.v accessor can become obsolete)
* the pdf.pdf* variables have been removed (they were already
obsolete for some years)
* a new properties mechanism for associating lua tables with nodes
that get cleaned up when nodes a freed (see manual for details)
* several improvements to the way temporary (backend) data is stored
at the lua end (better protection, more consistent)
* a 'l' type for user nodes that holds a lua variable (can be set
at the lua end)
* if a late lua node is set at the lua end the string value can be
a function as well which is then executed during serialization to
the backend stream
* Various small speedups
* Various smallish fixes to the node direct interface
* LPeg is now at version 0.12
* Some small fixes to the CFF (font) parsing
* Font file inclusion reporting messages on the terminal now
comply to the texconfig.trace_file_names setting
* Removed some of the additional luafontloader.info() return
information that was added in 0.78.2, but could not work
properly.
* new primitive \luafunction (see manual), with associated
lua.get_functions_table() function
* lua error message reporting has been altered a bit to make
the distinction between \directlua and other lua source code
sources clearer
* Additional pdf document data functionality in the 'pdf' table
has been cleaned up internally
* Additional pdf destination names can now be set via lua.
* New callbacks: finish_pdfpage, show_error_message,
show_lua_error_hook, start_file, stop_file
* Handling of \tracinglostchars is fixed
* Embedded metapost library version is now 1.900
* luajittex is now included in the distribution. One can use
buildjit.sh to build both luatex and luajittex, where
supported by the platform
* Synchronization with the TeXLive sources updated the following
libraries:
* libpng is now 1.6.10
* poppler is now 0.25.2
==============================================================
Luatex beta-0.78.2 was released 20140113 (4748)
==============================================================
* Extended luafontloader's info() function to include data
from the 'pfminfo' and 'names' structure.
* Fixed a bug in the luafontloader library that made loading
some fonts extremely slow (LastResort.ttf)
* Removed a recent extension in the luafontloader library that
made loading fonts with lots of glyphs slow (ArialUnicoce.ttf).
Note: the extension made sure that there were no duplicate
glyph names in the font after loading.
* Restored --recorder output for lua files (dofile/loadfile/io.open)
* One-at-a-time pattern adding from lua used to require enormous
amounts of memory
* luatex's fontloader.to_table() no longer reports 'altuni' table
information for alternates that are solely driven by the font
encoding. This fixes loading time issues for fonts that fill
encodings by copying a single glyph many times, like e.g.
LastResort.ttf from Apple.
* The datestamp no longer appears in any banners. The associated
\luatexdatestamp primitive is deprecated and will be removed
in 0.80.0.
* Synchronization with the TeXLive sources updated the following
libraries:
* cairo is now 1.12.16
* pixman is now 0.32.4
* lua is now 5.2.3
* zlib is now 1.2.8
* poppler is now 0.25.0
* That same TL synchronization also fixes these issues:
* Always write "\nendstream" to the PDF for PDF/A-1b compliance.
* Large file support (>4GB) in Lua
* Big images could overflow on systems where sizeof(long)=4.
* In writing CID CFF fonts to the PDF, and end_dict() was missing.
* Unknown 'post' table versions (found in some broken ttf/otf
fonts) are now treated as-if they specified version 3.0.
* Fix crashes on 32-bit systems caused by bad C header inclusion
order
* Handle '--luac' and '--luaconly' properly
* luatex is now released under GPLv2+, not just GPLv2.
* luatex can now find .ofm metric files even if the extension
is not given explicitly.
* node.unset_attribute() was broken in 0.78.0
* The UTF-8 commandline patch from 0.78.0 for Win32 was removed
again (did not work properly)
==============================================================
Luatex beta-0.78.0 was released 20131231
==============================================================
* Instead of using expanded fonts, just calculate the expanded
width of glyphs where needed, and carry expand info in the
glyph nodes (all based on Hans' suggestions). All font expansion
functions are disabled and most are removed.
* New, faster (but limited) direct node access from lua, see
the manual for details
* Support for Apple Advanced Typography (AAT) information in
fonts is dropped
* Extended build script for mingw/msys (includes 64-bit support)
* Various patches from/via Akira Kakuta for better Win32
integration
* Fixes for some bugs in de pdfscanner library (mostly related
to inline images)
* Maximum hyphenated word length is now 64Kb characters.
* Various patches from Khaled Hosny and Luigi Scarso for the
luafontloader subsystem
* Fix for a crash when re-dumping formats
* Fix for a Selene unicode library bug where some characters in
UTF-8 were incorrectly flagged as having the 'Space' property
* Some smaller fixes
==============================================================
Luatex beta-0.76.0 was released 20130405
==============================================================
* Metapost 1.801.
* Small patches from TeXLive 2013, as well as an update to the
latest libraries (libpng, poppler, etc.)
* Speed up printing (of TeX strings) to the terminal and log.
* New lua function node.end_of_math().
* Fixed a memory leak in the lua function pdfscanner.scan().
==============================================================
Luatex beta-0.75.0 was released 20130301
==============================================================
News:
* New expandable primitive \Uchar.
* Metapost 1.790.
* New version of lnodelib.c with speedups by Hans and Luigi.
Also added some extra sanity checks to the Lua node field
setting functions.
* Support 'umath' in tex.extraprimitives(), so that formats can
make the \Umath* primitives unprefixed, now that they will be
provided by XeTeX as well.
* Removed a bunch of deprecated primitives
* \AlephVersion, \Alephrevision, \Alephversion, \Alephminorversion
* \OmegaVersion, \Omegarevision, \Omegaversion, \Omegaminorversion
* \omathcode, \odelcode, \omathchardef, \omathchar, \omathaccent,
\odelimiter, \oradical
* \Umathbotaccent, \Umathaccents
* Fix large file support.
* Fix Lua's loadfile().
* Removed the cidmap callbacks again (let that be done by user lua
code after the fact).
* Removed the fatal error on fonts where num_glyphs is too high,
as that problem is actually harmless.
* Some compilation issues under Win32 and Solaris resolved.
* Allow math extender objects to be zero width.
* The 'epdf' library has been extended to deal with finding and
saving embedded files (catalog:numEmbeddedFiles() and catalog:
embeddedFile, new EmbFile object).
==============================================================
Luatex beta-0.74.0 was released 20121224
==============================================================
News:
* lua 5.2
There are no patches to the core Lua files; a future version
of luatex will switch to loading the regular lua 5.2 dynamic
library instead of depending on a statically compiled
one.
* A bleeding-edge version of luasocket is included, as there