Judging by the name and by these opcodes<p><a href="https://github.com/emacs-mirror/emacs/blob/7cb77385d38b96377d404a2ab0e778b2dfce5c77/src/ccl.c#L690-L692">https://github.com/emacs-mirror/emacs/blob/7cb77385d38b96377...</a><p>it seems to be intended for character set conversion especially JIS.
The source code mentioned in the article is well documented and an interesting read too; e.g.:<p><a href="https://github.com/emacs-mirror/emacs/blob/master/src/ccl.c">https://github.com/emacs-mirror/emacs/blob/master/src/ccl.c</a>
I have used Emacs since 1986 or so, daily since 1989 (with smaller breaks while working at companies where it was not available). I had no idea this exists.<p>Here is my first CCL program.<p><pre><code> (define-ccl-program hw
'(1
(loop
(write r0 [72 101 108 111])
(r1 += 1)
(if (r1 == 3) (repeat) ())
(r0 += 1)
(if (r0 < 4) (repeat) (break))
)
)
)
(ccl-execute-on-string
'hw
[0 0 0 0 0 0 0 0 1] "")
</code></pre>
Tested in *scratch* buffer, worked. Probably not very idiomatic...
Interesting. I've been using Emacs for 6 years and have never heard of CCL. I would love to read a book on all the strange and fascinating code that Emacs has accumulated over the years.