A little bit of feedback

Dennis Filder via Matroska-devel <[email protected]> Mon, 19 Apr 2021 18:02:20 +0200
Newsgroups gmane.comp.multimedia.matroska.devel
Message-ID <20210419160220.GA3802@reader>
--xjyYRNSh/RebjC6o
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Apr 18, 2021 at 07:59:12PM +0200, Moritz Bunkus via Matroska-devel=
 wrote:

> Personally I'm fine with refactoring and moving both libraries closer to
> more modern C++ standards. Within limits, of course, and we can certainl=
y
> talk about those limits.[1]
>
> What I do have an issue with is your long list of "before anyone can
> contribute, you should do this" and "you should really do that" etc. tha=
t
> you started this discussion off with. I get it, contributing in its curr=
ent
> form is really, really hard; the situation not welcoming to new
> contributors at all.

But you do acknowledge that there is a bit of a chicken-and-egg
problem here, don't you?  Contributing under such conditions is not
just hard, it's worse: A prospective contributor risks having to throw
away his work if he guessed the mode of proper contribution wrong.
Thus he won't ever do it, thus nothing will ever improve.

Also I wouldn't get hung up on using more modern C++.  That's the
least of problems.  It's far more important IMO that the libraries
become more comprehensible through better structure and naming of
concepts, definition of design and implementation
considerations/goals, and also deciding what is part of the API and
what is to be considered internal.

> But I simply have neither the time nor the motivation to tackle that lon=
g
> list. That's what I meant with "the libs are good enough for my use". I
> have more than enough on my plate with MKVToolNix & general spec work. I
> already have to leave so much stuff undone with those two that I don't w=
ant
> to take even more time away from them.
>
> What I would be fine doing includes: giving feedback on proposed directi=
ons
> for changes; explaining things from time to time if I know how they work=
;
> reviewing merge requests; testing merge requests with MKVToolNix.
>
> What I will not commit to includes: extending the test suite(s); writing
> documentation; writing a lot of code.

All that is fair.

> > * =E2=80=A6 Adding an intermediate class EbmlLeaf=E2=80=A6
>
> No need for a new class for that; a stand-alone function will do
> nicely. Wouldn't even have to be a function template.
>
> > * =E2=80=A6With an intermediate class pair EbmlLarge/EbmlSmall=E2=80=
=A6
>
> Stand-alone functions would suffice for this purpose as well.

Is there a reason for this seeming aversion to introducing new
classes?  If it is to minimize vtable look-up time then measurements
should be the arbiter in this question.  These new classes would be
abstract and needn't add any more code, but just more structure to the
hierarchy.  Being able to discern between subtly different things
using the compiler's type system strikes me as rather important not
just for catching logic bugs, but for idiomatically expressing one's
intentions.  And how else would you implement a method that should
only ever take a non-master as an argument (or return one) if you just
define a function to test for that?  Defining a dozen different ones
manually?  Currently you can only discern between EbmlElement,
EbmlMaster and the individual atomic Ebml datatypes.  You can do
almost nothing with that unless you write a ton of classifying code
manually.

Mandating underusing the type system like that would be a constraint
that would need some very, very good reason to justify it.  Merely
having to click more in the VS Code class browser, while annoying,
isn't a good enough one IMO.

> We've had the discussion about the minimum C++ version we'd like to supp=
ort
> last year. As VLC is still built with some older compilers, we settled o=
n
> C++11 for the time being. See here:
> https://github.com/Matroska-Org/libebml/issues/65

Pasting that into a file took 5 seconds.  The attached file also
summarizes what else I gathered so far.

Regards,
Dennis.

--xjyYRNSh/RebjC6o
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=CONTRIBUTE
Content-Transfer-Encoding: base64

R3VpZGVsaW5lcyBmb3IgY29udHJpYnV0aW5nDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCg0KKiBVc2UgcG9ydGFibGUsIGlkaW9tYXRpYyBDKysxMSBhbmQgb25seSB1c2UgY29u
c3RydWN0cyBzdXBwb3J0ZWQgYnkNCiAgdGhlIGNvbXBpbGVycyBvZiB0aGUgcGxhdGZvcm1z
IHRhcmdldHRlZCBieSBNS1ZUb29sTml4IGFuZCBWTEMsDQogIGkuZS4gaXQgbXVzdCB3b3Jr
IHdpdGggR0NDIDQuOS4gIFNlZQ0KICBodHRwczovL2dpdGh1Yi5jb20vTWF0cm9za2EtT3Jn
L2xpYmVibWwvaXNzdWVzLzY1DQoNCiogRmlsZXMgbXVzdCBiZSBVVEYtOC1lbmNvZGVkIGFu
ZCBpbmRlbnRlZCB3aXRoIFNQQUNFLCBub3QgVEFCLg0KDQoqIFN1Ym1pdCBjaGFuZ2VzIGVp
dGhlciBhcyBwdWxsIHJlcXVlc3RzIG9uIGdpdGh1YiBvciBvbiB0aGUgbWFpbGluZw0KICBs
aXN0IGFzIHNvbWV0aGluZyB0aGF0IHdvcmtzIHdpdGggImdpdCBhbSIuDQoNCiogQ29uc3Vs
dCB0aGUgbWFpbGluZyBsaXN0IGJlZm9yZSBhbnkgY2hhbmdlIHRoYXQgYnJlYWtzIHRoZSBB
Qkkgb3INCiAgQVBJLiAgSWYgeW91IHJlbmFtZSBzb21ldGhpbmcgZWl0aGVyIHByb3ZpZGUg
YWxpYXNlcyBvciAod29ya2luZyEpDQogIHBhdGNoZXMgZm9yIE1LVlRvb2xOaXggYW5kIFZM
QywgdG9vLiAgQXNrIG9uIHRoZSBsaXN0IGZpcnN0IGluDQogIGVpdGhlciBjYXNlIS4NCg0K
KiBZb3VyIGNoYW5nZXMgaGF2ZSB0byB3b3JrIHdpdGggYm90aCBWTEMgKGJvdGggZGV2IGFu
ZCBjdXJyZW50DQogIG1haW50ZW5hbmNlIHZlcnNpb24pIGFuZCBNS1ZUb29sTml4Lg0KDQoq
IERvbid0IG1ha2UgdGhpbmdzIHdvcnNlLiAgVGhhdCBtZWFuczoNCiANCiAgKyBObyBlZ3Jl
Z2lvdXMgdGVtcGxhdGUgZmVzdHMuDQoNCiAgKyBObyBCb29zdC4NCg0KICArIE5vIG5ldyBv
cGVyYXRvciBvdmVybG9hZGluZyAodW5sZXNzIHlvdSBwcm92aWRlIHdlbGwtcmVhc29uZWQN
CiAgICBhcmd1bWVudHMgZm9yIHdoeSBhbiBleGNlcHRpb24gc2hvdWxkIGJlIG1hZGUpLg0K
DQogICsgRG9uJ3QgYmx1ciB0aGUgbGluZSBiZXR3ZWVuIGxpYmVibWwgYW5kIGxpYm1hdHJv
c2thIG1vcmUuDQoNCiogTmVpdGhlciBleHRlbmQgbm9yIGNvbnN0cmFpbiB0aGUgc2NvcGUg
d2hpY2ggaXMgYXMgZm9sbG93czoNCg0KICAgIGxpYm1hdHJvc2thIGFuZCBsaWJlYm1sIHNl
cnZlIHRvIHByb3ZpZGUgdGhlIGJhcmUgcHJpbWl0aXZlcyBmb3INCiAgICBtYWtpbmcgTWF0
cm9za2EtbGlrZSBmaWxlcyBhdCB0b2xlcmFibGUgbWFpbnRlbmFuY2UgZWZmb3J0IHdoaWxl
DQogICAgYmVpbmcgY29uY2VwdHVhbGx5IGZpbmUtZ3JhaW5lZCBhbmQgZmxleGlibGUgZW5v
dWdoIHRvIGFsbG93IGJvdGgNCiAgICBNYXRyb3NrYSBhYnN0cmFjdGlvbnMgb2YgTUtWVG9v
bE5peCBhbmQgVkxDIHRvIHJlbWFpbg0KICAgIGluZGVwZW5kZW50bHkgbWFsbGVhYmxlIHRv
IGNhdGVyIHRvIGRpZmZlcmVudCBzdWJ0bGV0aWVzIG9mIHRoZWlyDQogICAgcmVzcGVjdGl2
ZSB1c2VjYXNlLiAgTW9zdCBpbXBvcnRhbnRseSwgbGlibWF0cm9za2EgZG9lcyBub3QgdHJ5
IHRvDQogICAgb2ZmZXIgYSBnZW5lcmFsLXB1cnBvc2UsIGVhc3ktdG8tdXNlIE1hdHJvc2th
IHJlYWRlci93cml0ZXIuDQoNCiAgWW91ciBhZGRpdGlvbnMgc2hvdWxkIGJlIHNtYWxsIGFu
ZCBzZWxmLW1haW50YWluaW5nLiAgVGhlIGluZXJ0aWEgb2YNCiAgdGhlIGxpYnJhcmllcyBh
cmUgdG8gYmUga2VwdCBzbWFsbC4gIElmIHlvdSBzZW5kIGtpbG9saW5lIHBhdGNoZXMgb2YN
CiAgYWRkaXRpb25zIHlvdSdyZSBsaWtlIGRvaW5nIGl0IHdyb25nLg0KDQoqIElmIHlvdSBy
ZWZhY3RvciBzb21ldGhpbmcgdGhhdCByZXN1bHRzIGluIHZlcnkgbG9uZyBkaWZmcywgc2Vu
ZCBhDQogIGRpZmYgZm9yIGEgc21hbGwgZmlsZSB0byB0aGUgbGlzdCBmaXJzdCB0byB0YWxr
IGl0IG92ZXIuDQoNCiogSXQncyB1bmxpa2VseSB0byBldmVyIGhhcHBlbiwgYnV0IGJlIG1l
bnRhbGx5IHByZXBhcmVkIHRvIG1haW50YWluIGENCiAgZm9yayBpbmRlcGVuZGVudGx5IGlu
IGNhc2Ugd2UgbmVlZCBzb21lIHJlYWxseSBiaWcgY2hhbmdlcyB3b3JrZWQNCiAgaW4uDQoN
CiogQWRkIG1vcmUgdGVzdHMgaWYgeW91IGNhbi4NCg0KKiBUYWtlIG5vdGVzIGFzIHlvdXIg
dW5kZXJzdGFuZGluZyBvZiB0aGUgY29kZSBpbXByb3ZlcyBhbmQgdHJ5IHRvDQogIHNoYXBl
IGl0IGludG8gZG9jdW1lbnRhdGlvbiwgaG93ZXZlciBydWRpbWVudGFyeS4NCg==

--xjyYRNSh/RebjC6o
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Matroska-devel mailing list
[email protected]
https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel

--xjyYRNSh/RebjC6o--