In experimental there is now luatex 1.11.0 with harfbuzz 2.5.1 It follows from the development of harftex by K. Hosny. Please note that the code is 1) in experimental 2) marked as work in progress so it can stay as is, it can be changed , it can be removed completely. We have relaxed the constrain "only C" so a recent C++ is required; but we keep the contrain on the size the must be "small" --- the current size of the binary is around 8M so still good. Feedbacks are welcome: it would be nice to have it in texlive 2020 modulo that constrains are satisfied. -- luigi
Hi Luigi, this sounds really great! Is there some documentation available how to access harfbuzz from Lua (jit) / FFI? Patrick
On Tue, Jun 18, 2019 at 9:23 PM Patrick Gundlach
Hi Luigi,
this sounds really great!
Is there some documentation available how to access harfbuzz from Lua (jit) / FFI?
Patrick
Well, look at luatexdir/luaharfbuzz I have also used https://github.com/khaledhosny/harf to check %% test2-latex.tex \documentclass{article} \usepackage{fontspec} \newfontfamily\deva[Script=Devanagari]{NotoSansDevanagari-Regular.ttf} \newfontfamily\beng[Script=Bengali]{NotoSansBengali-Regular.ttf} \newfontfamily\guru[Script=Gurmukhi]{NotoSansGurmukhi-Regular.ttf} \newfontfamily\gujr[Script=Gujarati]{NotoSansGujarati-Regular.ttf} \newfontfamily\orya[Script=Oriya]{NotoSansOriya-Regular.ttf} \newfontfamily\taml[Script=Tamil]{NotoSansTamil-Regular.ttf} \newfontfamily\telu[Script=Telugu]{NotoSansTelugu-Regular.ttf} \newfontfamily\knda[Script=Kannada]{NotoSansKannada-Regular.ttf} \newfontfamily\mlym[Script=Malayalam]{NotoSansMalayalam-Regular.ttf} \newfontfamily\sinh[Script=Sinhala]{NotoSansSinhala-Regular.ttf} \begin{document} {\deva क्रर्कि} % krarki {\beng ক্রর্কি} % krarki {\guru ਕ੍ਰਰ੍ਕਿ} % krarki {\gujr ક્રર્કિ} % krarki {\orya କ୍ରର୍କି} % krarki {\taml கோ} % ko {\telu క్రర్కి} % krarki {\knda ಕ್ರರ್ಕಿ} % krarki {\mlym ക്രര്കി} % krarki {\sinh කෙ} % ke \end{document} from https://tex.stackexchange.com/questions/454031/examples-for-broken-rendering... I have renamed luatex 1.11.0 luatex-hb, build the lualatex format luatex-hb --ini '\input lualatex\dump and run luatex-hb -fmt=lualatex.fmt test2-latex.tex (assuming texlive 2019, all files & format in the same folder and of course that you are able to compile from svn) Seems to work. Well, it did it last time, not time to check it now, busy in other stuffs.... A few words on this task. I have done it very hurriedly (from commits luatex/branches/luatex-hb one can see 30 May 2019 15 Jun 2019 ) Even if 7 years ago I have done a lua binding to hb by swig and already I known the work done by https://github.com/tatzetwerk/luatex-harfbuzz harftex, put simply, was more easy to manage in 2 days. The idea was to check if was possible to keep the binary small and use the hb module on demand. I dont know if it will possible to meet the constrains, but with ffi there is always an alternative (well there is if luaffi works on every platforms, which is currently one of my big todo.. ) Harftex is a different project from luatex: even if currently they share several files, harftex is free to modify the core of luatex to adapt it to harftex, possibly reaching the size of xetex (~24M). So, different projects, at the moment they share some code & some (not all) patches: luatex with hb is not a replacement of harftex (at least because at this moment I dont know if hb will stay in luatex). -- luigi
Hi Luigi, On Tue, 18 Jun 2019, luigi scarso wrote:
luatex 1.11.0 with harfbuzz 2.5.1
Good to hear.
It follows from the development of harftex by K. Hosny.
What is the relation to harftex? Why did you originally reject Khaleds proposal and now put it into experimental? We have harftex now in tlcontrib, and it would be nice if you could clear up all this back and forth, thanks. Best Norbert -- PREINING Norbert http://www.preining.info Accelia Inc. + IFMGA ProGuide + TU Wien + JAIST + TeX Live + Debian Dev GPG: 0x860CDC13 fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13
On Wed, Jun 19, 2019 at 1:39 AM Norbert Preining
Hi Luigi,
On Tue, 18 Jun 2019, luigi scarso wrote:
It follows from the development of harftex by K. Hosny.
What is the relation to harftex?
The original proposal was done on Sat, Feb 9, 9:02 PM and 1) luatex was practically frozen ; 2) the size of the exe jumped from 8M to 24M 3) introduced the C++ dependency 4) was not clear the interactions with the core of luatex Having a couple of days , I have tried the integration and 1) with harfbuzz the size of luatex is still around 8M 2) the C++ dependency is accepted 3) there is no modification to the core luatex It seems to work (but see prev. emails).
We have harftex now in tlcontrib,
I don't know of /manage anything in tlcontrib, but having harftex in texlive is not a problem for me (again see prev emails). -- luigi
On Tue, Jun 18, 2019 at 8:48 PM luigi scarso
In experimental there is now luatex 1.11.0 with harfbuzz 2.5.1 It follows from the development of harftex by K. Hosny. Please note that the code is 1) in experimental 2) marked as work in progress so it can stay as is, it can be changed , it can be removed completely.
In experimental and in texlive there are now luatex & luahbtex and jit variants. Briefly, after some discussions emerged the point that luatex with hb statically linked very likely doesn't work in workflows that already use luatex with a dynamic binding with a dll/so version of harfbuzz, even considering the API stability of harfbuzz itself and the fact that now the hb symbols are hidden. In this way we preserve the workflows that use luatex, because there is no harfbuzz code in luatex. It's better to think luahbtex as "luatex + a binding to harfbuzz." and not as a variant of luatex adapted to harfbuzz. So any change in luatex will be in luahbtex, because there is a single source. On the other side, the only constrain on the hb binding is that it cannot modify the luatex source, so in principle it can grow to cover all the harfbuzz API --- there are of course others constrains to consider as maintenance and compatibility with formats, just to say the most obvious. -- luigi
On Mon, Jul 8, 2019 at 10:22 AM Khaled Hosny
On Mon, Jul 8, 2019 at 9:05 AM luigi scarso
wrote: even considering the API stability of harfbuzz itself
HarfBuzz has stable ABI/API and has been so even before version 1.0.0.
Regards, Khaled
1 ) "stable api" doesn't mean that that private implementation stays the same. This is (one of ) the problem in using dynamic binding 2) "stable api" is a promise by the developer(s) --- but already in texlive there are the TLpatches, e.g Build/source/libs/harfbuzz/TLpatches -- luigi
participants (4)
-
Khaled Hosny
-
luigi scarso
-
Norbert Preining
-
Patrick Gundlach