[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mule-UCS in 21.3 and newer

From: Ilya N. Golubev
Subject: Mule-UCS in 21.3 and newer
Date: Tue, 06 Sep 2005 23:20:04 +0400

Versions: 21.3, 21.4a

Mule-UCS, as referenced by `etc/MORE.STUFF', will not work with emacs
21.3 or 21.4a.  Worked only after patching as reproduced below, and
did not observe critical bugs in it yet.  Wrote to <address@hidden>
about that on 2005-08-31, and on 2005-09-02 posted the fix.  Still
received no response to neither of messages, and it is very unlikely
to happen in the nearest future.
<http://www.m17n.org/mlarchive/mule/> that mailing list contains at
most half-dozen msgs a month, and often no one in a month, so the
mailing list appears near to dead, and patch release of mule-ucs is
very unlikely.

Perhaps you will decide to maintain its own branch of mule-ucs.
Perhaps putting the patch in `PROBLEMS' file is enough.  Anyway,
posting it.

To comments and `ChangeLog' entry may add that actually checked the
byte compilers misfeature in question.  In both emacs 20.7 and xemacs
21.4 they process `(progn progn ...)' the same way as `(progn ...)'.
In emacs 21.3, 21.4a `(progn progn ...)'  is processed just as
interpreter does, that is, as `progn' variable reference.  Never
figured what such a misfeature depends on and what version changed it.

        * mucs-ccl.el (mucs-ccl-generate-registration-program): Return
        exactly list of forms suitable for including in BODY of `progn' or
        like.  Do not rely on byte-compiler (mis-) features.

--- mucs-ccl.el 2 Sep 2005 00:42:23 -0000
+++ mucs-ccl.el 2 Sep 2005 01:31:51 -0000       1.3
@@ -639,10 +639,14 @@
       (mucs-notify-embedment 'mucs-ccl-required name)
       (setq ccl-pgm-list (cdr ccl-pgm-list)))
 ;   (message "MCCLREGFIN:%S" result)
-    `(progn
-       (setq mucs-ccl-facility-alist
-            (quote ,mucs-ccl-facility-alist))
-       ,@result)))
+    ;; The only way the function is used in this package is included
+    ;; in `mucs-package-definition-end-hook' value, where it must
+    ;; return (possibly empty) *list* of forms.  Do this.  Do not rely
+    ;; on byte compiler to remove extra `progn's in `(progn ...)' 
+    ;; form.
+    `((setq mucs-ccl-facility-alist
+           (quote ,mucs-ccl-facility-alist))
+      ,@result)))
 ;;; Add hook for embedding translation informations to a package.
 (add-hook 'mucs-package-definition-end-hook

reply via email to

[Prev in Thread] Current Thread [Next in Thread]