]> git.eshelyaron.com Git - emacs.git/commitdiff
* admin/unidata/emoji-zwj.awk: More efficient code generation
authorMattias Engdegård <mattiase@acm.org>
Thu, 7 Sep 2023 09:25:46 +0000 (11:25 +0200)
committerMattias Engdegård <mattiase@acm.org>
Thu, 7 Sep 2023 15:55:09 +0000 (17:55 +0200)
Hoist the `eval-when-compile` to encompass the entire list, since
backquote forms aren't automatically evaluated at compile time.
This results in a single constant list in the generated code, and
much less actual code.

admin/unidata/emoji-zwj.awk

index 53170214d8aebfd5d08dff613636febd89bec7fc..fc4a2edd559562ab8758815a228aa896229968a0 100644 (file)
@@ -100,14 +100,14 @@ END {
          vec[codepoint] = vec[codepoint] "\n\"\\N{U+" trigger_codepoints[trig] "}\\N{U+FE0F}\""
      }
 
-     print "(dolist (elt `("
+     print "(dolist (elt (eval-when-compile `("
 
      for (elt in ch)
     {
-        print "(#x" elt " .\n,(eval-when-compile (regexp-opt\n'(\n" vec[elt]
-        print "\"\\N{U+" elt "}\\N{U+FE0E}\"\n\"\\N{U+" elt "}\\N{U+FE0F}\"\n))))"
+        print "(#x" elt " .\n,(regexp-opt\n'(\n" vec[elt]
+        print "\"\\N{U+" elt "}\\N{U+FE0E}\"\n\"\\N{U+" elt "}\\N{U+FE0F}\"\n)))"
     }
-     print "))"
+     print ")))"
      print "  (set-char-table-range composition-function-table"
      print "                        (car elt)"
      print "                        (nconc (char-table-range composition-function-table (car elt))"