Subject: bug#2816: closed (Re: bug#2816: regexp-opt: does not optimize 'Abc' and 'abc')

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 11 Mar 2025 16:45:02 +0000

Your bug report

#2816: regexp-opt: does not optimize 'Abc' and 'abc'

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
2816: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=2816
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#2816: regexp-opt: does not optimize 'Abc' and 'abc'
From: Stefan Kangas <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked], Jari Aalto <[email-masked]>
Date: Tue, 11 Mar 2025 09:44:31 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Stefan Monnier <[email-masked]> writes:

>> A)
>
>>     (regexp-opt
>>       '("Abc"
>>         "abc"))
>
>>     => "\\(?:[Aa]bc\\)"
>
>> B)
>
>>     (regexp-opt
>>       '("Abc"
>>         "def"
>>         "abc"))
>
>>     => "\\(?:Abc\\|abc\\|def\\)"
>
>> Shouldn't regexp-opt optimize B case as well?
>
> The `opt' of regexp-opt should be understood in the sense of
> optimization used in compilers, not in the formal mathematical sense of
> "optimal".  I.e. it does some effort to improve things, but without any
> guarantee about what is and what isn't optimized.
>
> So, yes, it would be good if it did do what you suggest, but it's not
> a bug if it doesn't.

Without a proposed patch, I think it's unlikely that we'll make much
progress here.  After 16 years, I'm closing this bug now.

If anyone wants to propose improvements to `regexp-opt`, please open a
new bug report.

Subject: regexp-opt: does not optimize 'Abc' and 'abc'
From: Jari Aalto <[email-masked]>
To: Emacs bug BTS <[email-masked]>
Date: Sun, 29 Mar 2009 18:28:55 +0300

A)

    (regexp-opt
      '("Abc"
        "abc"))

    => "\\(?:[Aa]bc\\)"

B)

    (regexp-opt
      '("Abc"
        "def"
        "abc"))

    => "\\(?:Abc\\|abc\\|def\\)"

Shouldn't regexp-opt optimize B case as well?

Jari