[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#66261: Disassembling a regexp's bytecode
From: |
Stefan Monnier |
Subject: |
bug#66261: Disassembling a regexp's bytecode |
Date: |
Fri, 29 Sep 2023 11:47:50 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> - First, in order to easily use the same code between REGEX_EMACS_DEBUG
>> and my new `re--describe-compiled`, I need to print sometimes to
>> `stderr` and sometimes to a string, which I do using `open_memstream`.
>> AFAIK `open_memstream` is not directly available in Windows (and
>> maybe under some other Unixes either, tho it's in POSIX-2008, IIUC).
>> Could someone help me get an `opem_memstream` emulation working
>> (maybe via gnulib)?
> Gnulib doesn't have such an emulation, AFAICT.
> Why cannot you fall back to temporary files when open_memstream is not
> available?
Doesn't seem worth the trouble (and I must admit that the idea of using
a temp file hurts my sense of aesthetics, on top of it 😀. Tho, it'd be
OK if it were done for me by gnulib).
>> - I'm thinking of always providing this function. Another option would
>> be to do it under the control of a compilation flag, tho it doesn't
>> seem worth adding a new flag just for that. I guess we could
>> reuse REGEX_EMACS_DEBUG (tho it's too invasive IMO), or
>> ENABLE_CHECKING, but I'd rather just always offer the function.
>> After all, it might encourage users to look more carefully at their
>> regexps and maybe even to help us improve our regexp engine, who knows.
>
> I would suggest to have it under ENABLE_CHECKING first, and only
> remove the condition if there's a demand. (I assume that most people
> who debug regexps build Emacs with --enable-checking.)
OK, I'll make it conditional on ENABLE_CHECKING as well as on the
presence of `open_memstream`.
Stefan