On Monday, 6 January 2014 at 16:49:44 UTC, ilya-stromberg wrote:
Unfortunately, Deimos does not good enough.
I used `libfcgi` ~2 years ago, and it was completely broken (segmentation fault after 1-st GC memory free). So, I agree with Jacob: we should close down Deimos. As alternative, we should use the same review process as for Phobos.

So there is a single library that is not "good enough". Where is your bug report? Your pull request?

I just had a look at the libfcgi repository, and it seems like Jonathan recommends building the binding with "ldc2 -shared" in the readme. There are two things wrong with this: 1) -shared is not yet supported in LDC for D2 (it will lead to GC-related crashes), and Jonathan knows this. 2) Deimos headers should *never* require actually building something, they should be "header-only", in C terms. So, yes, there are apparently problems with getting the Deimos idea across (and Walter's code review practices), but I don't see how this justifies ditching the whole idea.

The idea behind Deimos is that there should be a single of plain, "no-frills" C bindings, because it makes exactly zero sense to duplicate work here. Other people can build on these for higher-level libraries. Whether these are managed in one central place or in separate repositories doesn't matter in the end; the thing that counts is that we have a common understanding of how bindings that are "officially" accepted are supposed look like. If every single C binding on code.dlang.org follows a different naming scheme, loading convention, …, just using a C library will become a lot less of a plug-and-play experience than it could be.

Yes, there are currently issues with the way Deimos is handled, starting with the fact that a ridiculously small number of people actually has push access to them (e.g. I have access to all the D-P-L ones, but not to Deimos). In fact, I think it might even make sense idea to give the original creator of a binding write access to the repository after the initial review is complete, which ensures that the author is familiar with the Deimos conventions. There isn't really a lot to get wrong with C bindings that would necessitate much review afterwards.

Also, we need to improve the documentation about the Deimos standards and process. But still, I don't think we should outright ditch the idea at this point; the situation certainly won't get better without Deimos being in the picture.

David

Reply via email to