opentype-shaping-documents
quickjs
opentype-shaping-documents | quickjs | |
---|---|---|
2 | 67 | |
159 | 7,714 | |
- | - | |
6.8 | 9.1 | |
7 months ago | 7 days ago | |
HTML | C | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
opentype-shaping-documents
-
Ligatures in programming fonts: hell no
> The tangent in (1) on how they contradict unicode could have been skipped as well
Not only because confusables already exist, but also (as I already said[1] the previous time this was posted) covering all ligatures used in all typographical styles is very much a non-goal of Unicode. The official position is that the font shaping layer[2] sits atop Unicode’s semantic representation and is free to ligate, spindle, or mutilate it for display however it prefers (at least for Latin, Greek, and Cyrillic it’s a preference; other scripts can’t be rendered at all without doing it, such as Arabic—barring the legacy presentational forms—or Burmese[3]).
The only reason Unicode even has those ligatures is that some IBM encodings (which were more presentational in nature) encoded them, and IBM employees wrote a large part of the early standard (based on the decades of i18n experience they had at that point) and wanted roundtripping.
[1] https://news.ycombinator.com/item?id=29639966
[2] https://github.com/n8willis/opentype-shaping-documents
[3] https://r12a.github.io/scripts/mymr/my.html#combiningV
-
Libgrapheme: A simple freestanding C99 library for Unicode
> Off the top of my head, I don't know of a terminal that actually implements the entire (very complex) set of Unicode text rendering behaviors
There are likely two problems with this:
First, nobody actually seems to know how bidirectional text should interact with terminal control sequences, or indeed how it should be typeset on a terminal in the first place (where are the paragraph boundaries?). There is the pre-Unicode bi-directional support mode (BDSM, I kid you not) in ECMA-48[1] and TR/53[2], which AFAIK nobody implements nor cares about, and which doesn’t seem to actually; there are terminal emulators made by bidi-language users[3], which AFAIK nobody has written down the behaviour of; there is the Freedesktop bidi terminal spec[4], which is a draft and AFAIK nobody implements yet either but at least some people care about; finally, there are bidi-language users who say that spec is a mistake[5].
Second, aside from bidi and a smattering of other things such as emoji, there is no detailed “Unicode rendering behaviour”, there are only standards specific to font formats, the most recent being OpenType, which is dubiously compatible across implementations, decently documented only through painstaking reverse engineering (sometimes in words[6], sometimes only in Freetype library code), and generally full of snakes[7]. And it has no notion of monospace font—only of a (proportional) font where all Lat/Cyr/Grk characters just happen to have the same advance.
AFAICT that is not an oversight or negligence, but rather a concession to the fact that there are scripts which don’t really have a notion of monospace in the typographic tradition and in fact are written such that it’s extremely unclear what monospace would even mean—certainly not one or two cells per codepoint (e.g. Burmese or Tibetan; apparently there are Arabic monospace fonts[8] but I’ve no idea how the hell they work). Not coincidentally, those are the scripts where you need that shaper, otherwise nothing works.
[1] https://www.ecma-international.org/publications-and-standard...
[2] https://www.ecma-international.org/publications-and-standard...
[3] https://news.ycombinator.com/item?id=8086417
[4] https://terminal-wg.pages.freedesktop.org/bidi/
[5] http://litcave.rudi.ir/
[6] https://github.com/n8willis/opentype-shaping-documents
[7] https://litherum.blogspot.com/2019/03/addition-font.html
[8] https://news.ycombinator.com/item?id=10395464
quickjs
-
What Is in a Rust Allocator?
You may be familiar, but I just wanted to show how it is available in many C implementations and is used, for example, in QuickJS: https://github.com/bellard/quickjs/blob/0c8fecab2392387d76a4...
-
Show HN: Happy Pi day with this PWA to cut 100k Pi digits offline
It uses service workers to cache static files, by the time it opens up you already free to be offline, try toggle network switch to verify.
It has download link at bottom of the about page ([accdoo.app/about]) which you could then self host it by dropping into any static hosting services.
btw, the Pi feature was by-product from the original App but I won't expand here, if you'd like to learn more, please checkout its two Show HN post (39115559 and 39138957) previously.
[wiki]: https://en.wikipedia.org/wiki/Chudnovsky_algorithm
[quickjs/pi]: https://bellard.org/quickjs/pi.html
[pi_bigint.js]: https://github.com/bellard/quickjs/blob/master/examples/pi_b...
[accdoo.app/about]: https://accdoo.app/about#releases
[39115559]: https://news.ycombinator.com/item?id=39115559
[39138957]: https://news.ycombinator.com/item?id=39138957
-
Ask HN: C/C++ plugin make JavaScipt end up with C/C++ binary?
Just go with quickjs, I think this is what you are looking for.
https://bellard.org/quickjs/
- Show HW: accdoo cipher web app now fused with offline Pi cutter (100k digits)
- QuickJS JavaScript Engine
-
A list of JavaScript engines, runtimes, interpreters
QuickJS
-
Can you make your own JavaScript by implementing ECMAScript standard?
I think QuickJS, written in C, is a user-"friendly" starting point for implementing ECMA-262. Documentation QuickJS Javascript Engine.
-
New QuickJS Release
There is a readme on the project's main page: https://bellard.org/quickjs/
The newsworthy bit here is that the activity seemed to have stalled for year or two and now Fabrice pushed a few fixes and made a new release.
-
GitHub
Just to demonstrate GitHub repositories do not necessarily reflect upon a programmers' body of work, Fabrice Bellard has one (1) repository published on GitHub, quickjs. Compare the list of work on Bellard's home page https://bellard.org/.