Yihui Xie

@yihui.org

https://yihui.org

I just discovered TeX Live dropped support for Solaris from the automatic PR github.com/rstudio/tiny... today; with indescribable joy and uncertainty, I went to texlive-source repo and indeed I was not dreaming: github.com/TeX-Live/tex... as if they heard me in my post: yihui.org/en/2026/03/t...

remove (oracle) solaris binaries and builds · TeX-Live/texlive-source@0cdf2d8

git-svn-id: svn://tug.org/texlive/trunk/Build/source@78957 c570f23f-e606-0410-a88d-b1316a301751

github.com

I've used testit quietly for testing R packages for ~13 years until John Blischak offered a few usability suggestions recently, which made me believe this tiny package is worth a v1.0 release. If you appreciate minimalism like me, you may enjoy life minus 22 dependencies: yihui.org/en/2026/05/t...

Converting testthat Tests to testit - Yihui Xie | 谢益辉

Back in 2013, I wrote about testing R packages when I first released testit. Thirteen years later, I still believe that unit testing should be nothing more than “tell me if something unexpected …

yihui.org

I don't know why I just realized what the refresh button on r-universe.dev means and clicked it for the first time. I had wished for this for years, and it may have existed for years but I just didn't know it was triggering new builds! One of many reasons @jeroenooms.bsky.social is our hero ninja!

Check for package updates on r-universe

Oh, S, John Chambers, and Rick Becker... When I did internship at AT&T Labs in 2012, Rick's office was next to mine. It was fun talking to him from time to time and showing him my new toy for interactive graphics (cranvas). Happy birthday, S! Thanks to these pioneers!

The R Foundation@r-foundation.bsky.social · 4mo ago

Today marks 50 years since John Chambers and Rick Becker presented a new project to colleagues at Bell Labs - an interactive environment that became the S language. For more details, see the #RStats blog entry "S at 50": blog.r-project.org/2026/05/05/s...

I didn't know until today that curl.exe has been available on Windows for 8 years. Sigh. How much of my life has been wasted in fighting with those stupid download methods in .bat and power(???)shell scripts over these years! Anyway, TinyTeX users on Windows can enjoy a faster installation now.

A new document format .Rtyp in knitr for Typst output: yihui.org/en/2026/04/k... (I also wrote down my thoughts on Typst since people keep asking me; I stand firmly on the HTML path but I'll be happy to continue supporting Typst and LaTeX, even though I don't use them myself)

Preliminary Support for Typst in knitr - Yihui Xie | 谢益辉

A few weeks ago I added preliminary support for Typst to knitr. The way it works is simple: if your file has the extension .Rtyp, knitr will recognize it as a Typst document, knit it, and produce a &h...

yihui.org

All CRAN source packages (22749 tarballs as of today) contain 5.8Gb PNG images in total. Lossless compression via tinyimg::tinyping() can save 1.9Gb (32.0% savings), and lossy compression without noticeable differences can save 2.8Gb (48.2%): pkg.yihui.org/tinyimg/exam... (plot on the page is slow)

PNG Savings in CRAN Packages

pkg.yihui.org

Yihui Xie@yihui.org · 4mo ago

Out of curiosity, I wondered how much we can reduce the size of all PNGs in all CRAN packages via tinyimg. Interestingly, I ran out of memory (on GHA) in one package and it turned out it has a 12Mb hex sticker: github.com/cran/estar/b... 12M is more than enough for 2 base Alpine Linux Docker images!

Out of curiosity, I wondered how much we can reduce the size of all PNGs in all CRAN packages via tinyimg. Interestingly, I ran out of memory (on GHA) in one package and it turned out it has a 12Mb hex sticker: github.com/cran/estar/b... 12M is more than enough for 2 base Alpine Linux Docker images!

github.com

12 years ago I created crandalf at github.com/yihui/crandalf to check reverse dependencies of R packages on Travis CI and switched to GHA later. If your pkg has < 400 revdeps, you can do a simple edit in a .yaml file and submit a PR to let GHA do the hard work. More info: yihui.org/en/2021/06/c...

GitHub - yihui/crandalf: Check all reverse dependencies of your R package with Github Actions

Check all reverse dependencies of your R package with Github Actions - yihui/crandalf

github.com

In case you aren't aware, TinyTeX has started offering binaries for ARM and musl-based Linux since last month: yihui.org/en/2026/03/t... Enjoy the extra 5 minutes saved! BTW, I didn't know musl/Alpine Linux before. While working on TinyTeX binary for it, I was intrigued and also quite impressed.

Announcing TinyTeX Binaries for arm64 and musl-based Linux - Yihui Xie | 谢益辉

Three years ago, Cole Arendt requested pre-built TinyTeX binaries for ARM Linux. Today, I&rsquo;m happy to announce that we now provide pre-built TinyTeX binaries for arm64 and musl-based Linux (e.g. ...

yihui.org

Sometimes I feel I must be crazy to spend a whole day trying to come up with a proper solution to save only 400Kb for users. Storage is cheap, bandwidth is fast, my time is precious, and does anyone (besides my insane self) care about this 400Kb at all?

`grepl('^[A-Z]', commit_message)` is a simple indicator on whether the work was done by me or AI. If a git commit message starts with a lowercase letter, you can know for sure the work was done by my own fingers because I'm often too lazy/tired to press Shift when writing a commit message.

Naming used to be hard because it was just hard to come up with good names (expressive, memorable, etc). Now I think naming is hard mostly because good names have been exhausted. I feel so hard to find a verb or noun for a func name that hasn't been used in base R or any moderately popular R package