Bug#341593: mule-ucs: package clobbers encode-char and decode-char
On December 2, 2005 at 10:51AM +, fx (at gnu.org) wrote: > > BTW, the current mule-ucs startup is for various reasons: > > > > * un-define is needed for utf-* on emacs21/xemacs21 > > There isn't a problem just loading `un-define'. That doesn't redefine > decode-char/encode-char. (I should have said that is probably only a > problem in Emacs, since XEmacs doesn't have those functions.) > However, the package loads `unicode', which does cause the trouble. > That should certainly not be necessary if you only want mule-ucs for > the coding systems it defines. (I haven't heard of anyone apart from > himi who understands it well enough to do anything else :-/.) `jisx0213' requires `mucs', and `mucs' redefines {en,de}code-char and causes problems, such as (decode-char 'ucs #x00B7) -> nil. Loading `unicode' prevents it. However, your report mentions that loading `unicode' is not a complete solution. > > * loading un-define after other packages might cause problems > > In what way? I can't think how it would cause problems (apart from > possible conflict with ucs-tables, but that could happen anyway). At least, bitmap-mule on emacs20 failed if un-define wasn't loaded early in startup. However, emacs20 is no longer exists in Debian... > > * loading ucs-tables after un-define might cause problems > > It is actually preloaded in the current Emacs. (Loading it after the > Debian mule-ucs startup might fail, since it uses decode-char.) Ah, right. > > * unify-8859-on-encoding-mode is usefull even if un-define is loaded > > I thought that mule-ucs managed to do essentially the same thing, > though I've forgotten the details. However, I think they will give > inconsistent results with the find-coding-systems-... functions. I felt that unify-8859-on-encoding-mode's unification for iso-8859-* is a good thing than mule-ucs's unification. > > * unify-8859-on-decoding-mode conflicts with un-define > > [Just for my information, what is the conflict? I don't know whether > I ever looked at that when I did ucs-tables.] mule-ucs's unification seems to depend on legacy charset (such as latin-iso8859-*). However, unify-8859-on-decoding-mode prefer mule-unicode-* rather than the legacy charset. So, if unify-8859-on-decoding-mode is enabled, mule-ucs is unusable for me. > > * setting utf-8 coding-priority is needed to prefer mule-ucs > > That can be done (and undone) at any time. You are right. I thought that prefering mule-ucs's utf-8 than emacs's mule-utf-8 is better for users if un-define is enabled in startup. > The most important thing is that loading the package should not > clobber {en,de}code-char (or other Emacs functions -- I haven't > checked for others). I agree with it. BTW, next release of Emacs (22.1) supports utf-* (includes CJK), mule-ucs is proving troublesome, and the mule-ucs upstream development is not active. I cannot recommend mule-ucs at this time. Anyway, I'll reconsider the mule-ucs startup. Thanks, -- Tatsuya Kinoshita pgpPVmyxpZ83g.pgp Description: PGP signature
Bug#341593: mule-ucs: package clobbers encode-char and decode-char
Tatsuya Kinoshita <[EMAIL PROTECTED]> writes: > BTW, the current mule-ucs startup is for various reasons: > > * un-define is needed for utf-* on emacs21/xemacs21 There isn't a problem just loading `un-define'. That doesn't redefine decode-char/encode-char. (I should have said that is probably only a problem in Emacs, since XEmacs doesn't have those functions.) However, the package loads `unicode', which does cause the trouble. That should certainly not be necessary if you only want mule-ucs for the coding systems it defines. (I haven't heard of anyone apart from himi who understands it well enough to do anything else :-/.) > * loading un-define after other packages might cause problems In what way? I can't think how it would cause problems (apart from possible conflict with ucs-tables, but that could happen anyway). > * loading ucs-tables after un-define might cause problems It is actually preloaded in the current Emacs. (Loading it after the Debian mule-ucs startup might fail, since it uses decode-char.) > * unify-8859-on-encoding-mode is usefull even if un-define is loaded I thought that mule-ucs managed to do essentially the same thing, though I've forgotten the details. However, I think they will give inconsistent results with the find-coding-systems-... functions. > * unify-8859-on-decoding-mode conflicts with un-define [Just for my information, what is the conflict? I don't know whether I ever looked at that when I did ucs-tables.] > * setting utf-8 coding-priority is needed to prefer mule-ucs That can be done (and undone) at any time. The most important thing is that loading the package should not clobber {en,de}code-char (or other Emacs functions -- I haven't checked for others). -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#341593: mule-ucs: package clobbers encode-char and decode-char
On December 1, 2005 at 3:27PM +, fx (at gnu.org) wrote: > Package: mule-ucs > Severity: important > > I'm not sure whether this should be higher severity than `important' > -- it affects other packages. In particular, nxml-mode now conflicts > with mule-ucs because of this issue, but it shouldn't need to. > > The mule-ucs startup sucks in the library `mucs', which redefines > `encode-char' and `decode-char'. These are fairly fundamental in > multilingual handling, and they no longer work properly. E.g. > > (decode-char 'ucs #xfffe) > => nil > > Firstly, these definitions should be renamed (or possibly advised so > that they try the mule-ucs stuff if the normal functions return nil). > > Secondly, I don't think the startup should pull in the support > libraries anyway. They aren't needed for just defining the utf coding > systems. The startup could define what it needs in compiled code -- > the four versions of `un-define' that it basically wants > (`jisx0213-flag' × `prefer-latin-flag') -- and choose one at run time. > > Also, I'm surprised the startup turns on unify-8859-on-encoding-mode. > I'd expect that to conflict with mule-ucs, but I haven't checked what > actually happens now. > > I don't think the un-define-style code should be turned on by default; > I see you've rejected that already in #312883, but I don't understand > the comments about it. On the SPARC I just tried, mule-ucs adds 25s > to Emacs startup. It doesn't really help that the development Emacs > makes mule-ucs mostly obsolete, since there's no sign of it even > becoming stable :-(. Thanks for the report. I rejected the request about loading speed issue (#312883). However, your report mentions that loading mule-ucs causes other important problems. I'll reconsider the mule-ucs startup issue. BTW, the current mule-ucs startup is for various reasons: * un-define is needed for utf-* on emacs21/xemacs21 * loading un-define after other packages might cause problems * loading ucs-tables after un-define might cause problems * unify-8859-on-encoding-mode is usefull even if un-define is loaded * unify-8859-on-decoding-mode conflicts with un-define * setting utf-8 coding-priority is needed to prefer mule-ucs * etc... -- Tatsuya Kinoshita pgpXEO3NhrbUd.pgp Description: PGP signature
Bug#341593: mule-ucs: package clobbers encode-char and decode-char
Package: mule-ucs Severity: important I'm not sure whether this should be higher severity than `important' -- it affects other packages. In particular, nxml-mode now conflicts with mule-ucs because of this issue, but it shouldn't need to. The mule-ucs startup sucks in the library `mucs', which redefines `encode-char' and `decode-char'. These are fairly fundamental in multilingual handling, and they no longer work properly. E.g. (decode-char 'ucs #xfffe) => nil Firstly, these definitions should be renamed (or possibly advised so that they try the mule-ucs stuff if the normal functions return nil). Secondly, I don't think the startup should pull in the support libraries anyway. They aren't needed for just defining the utf coding systems. The startup could define what it needs in compiled code -- the four versions of `un-define' that it basically wants (`jisx0213-flag' × `prefer-latin-flag') -- and choose one at run time. Also, I'm surprised the startup turns on unify-8859-on-encoding-mode. I'd expect that to conflict with mule-ucs, but I haven't checked what actually happens now. I don't think the un-define-style code should be turned on by default; I see you've rejected that already in #312883, but I don't understand the comments about it. On the SPARC I just tried, mule-ucs adds 25s to Emacs startup. It doesn't really help that the development Emacs makes mule-ucs mostly obsolete, since there's no sign of it even becoming stable :-(. -- System Information: Debian Release: 3.1 APT prefers stable APT policy: (900, 'stable') Architecture: sparc (sparc64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.12-1-sparc64 Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]