Wireshark-dev: Re: [Wireshark-dev] Lua 5.3
From: João Valverde <joao.valverde@xxxxxxxxxxxxxxxxxx>
Date: Mon, 22 Aug 2016 20:27:02 +0100


On 08/22/2016 07:55 PM, Jeff Morriss wrote:


On Sat, Aug 20, 2016 at 9:47 AM, João Valverde
<joao.valverde@xxxxxxxxxxxxxxxxxx
<mailto:joao.valverde@xxxxxxxxxxxxxxxxxx>> wrote:

    I'm not aware of any policy that says our Lua dialect and APIs must
    be stable forever. That's nice, I don't like fixing working code as
    much as the next person, but sometimes reality intervenes. It would
    be difficult to provide that guarantee, seeing as Lua 5.2 is already
    unmaintained upstreams.


 I think you're correct that there isn't any policy.  Maybe there should be.

I really don't have a problem with C API changes.  For many years I
maintained a set of C dissectors for proprietary protocols that were not
really of general interest (and anyway I really did not want to even
think about jumping through the hoops that would be necessary to get my
employer to allow submitting the changes).  I figured that my penance
for that "sin" was having to update them regularly as the API changed.
(IOW in general I think C dissectors should be contributed to
Wireshark--if you don't then you get to live with the pain. :-))

But I think Lua dissectors are different.  (I would think) it's a
different type of person writing them and the distribution model is
different--I think it would be painful if Lua dissector writers have to
start saying "this version is compatible with Wireshark 2.0-2.2, this
other version is compatible with 2.4-2.6."  Would it even make sense to
have a Lua equivalent to the VERSION_MAJOR, etc., macros (that I used in
C code to make one dissector compatible with several versions of Wireshark)?

I see the point but that (relatively minor) pain is not new to anyone choosing to use Lua. It's easy enough to say Wireshark 2.2 uses Lua 5.2, Wireshark 2.4 uses Lua 5.3. Everyone knows what that means in terms of compatibility, from the Lua reference manuals.

I would be very careful about making such hard promises of compatibility. No one is forced to upgrade Wireshark either and I'm not proposing being lax about backward compatibility. There must be some perceived major advantage. Maybe it isn't the case here.