GNU bug report logs - #45342
28.0.50; Native compiled function returns raw bytes, not string

Previous Next

Package: emacs;

Reported by: Alexander Miller <alexanderm <at> web.de>

Date: Sun, 20 Dec 2020 17:32:01 UTC

Severity: normal

Found in version 28.0.50

Done: Andrea Corallo <akrl <at> sdf.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Andrea Corallo <akrl <at> sdf.org>
To: Alexander Miller <alexanderm <at> web.de>
Cc: 45342 <at> debbugs.gnu.org
Subject: bug#45342: 28.0.50; Native compiled function returns raw bytes, not string
Date: Sun, 20 Dec 2020 20:24:30 +0000
Alexander Miller <alexanderm <at> web.de> writes:

> In my config I have the following function that is used to prettify my
> mode-line (the actual version is pure and side-effect-free and inlined,
> but that does not seem to have any effect here):
>
> (defun f (n)
>   (pcase n
>     (1 " ➊") (2 " ➋") (3 " ➌") (4 " ➍") (5 " ➎") (6 " ➏")
>     (7 " ➐") (8 " ➑") (9 " ➒") (10 " ➓") (_ "")))
>
> When native compiled it appears to return raw bytes instead of the
> unicode symbols, for example I am seeing \342\236\212 instead of ➊.
>
> I can circumvent that by using (1 (decode-coding-string " ➊" 'utf-8)),
> but of course that should not be necessary, since there's no such
> problem with the byte-compiled version.

Hi Alexander,

72c1a41573 fix this for me, would you like to confirm?

> And on a probably unrelated note: is it normal for such a simple
> function to be compiled to 100 LOC of assembly? That seems surprisingly
> to my amateur eyes.

Yes, big switch cases is ATM a case we do not generate optimal code for.

Thanks for the report!

  Andrea




This bug report was last modified 4 years and 237 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.