Hi Richard, On Sat, Jun 29, 2024 at 3:02 PM Richard Sent <rich...@freakingpenguin.com> wrote: > > I see my little patch has ignited a comparatively oversized firestorm. > Oops. ;)
I wasn't sure if my email would get 0 replies or a lot of replies... but the latter happened. I just want to be clear that this is *not* a judgement of your patch or saying that you made a mistake! A big reason why I changed the subject line is because I wanted to separate this discussion from the review of your patch. Thank you for sending a patch to improve Guile!! And thank you for bringing some important issues back to the front of my mind. :) > The current discussion is above my paygrade so I'll largely stay out of > it. (Although it's quite fascinating!) > > In the specific context of this patch I feel like the risks of namespace > pollution and C maintenance burden are low since both are near identical > to what already exists. But of course, someone else may argue that this > is a death by a thousand cuts situation. I agree that the risks are low in this case. It doesn't make sense to have destructive list operations without nondestructive equivalents, especially since mutation of pairs is strongly discouraged amongst seasoned Schemers. If it were my call (and it's not, to be clear), I'd say that they should just be implemented in Scheme, at least. There really is no good reason to implement Scheme procedures in C anymore. > I will suggest that if a consensus is reached on what new code must > adhere to (e.g. no (guile) namespace pollution, no new procedures > written in C), it should be documented in the reference manual. There > are traces of this but nothing concrete [1]. What little documentation > exists is secreted away into the darkest corners of Texinfo. I believe a > top-level "Contributing" section in a similar vein to GNU Guix would be > a valuable addition. Right, there is no consensus about this right now. It's been talked about vaguely on IRC and in person over the years (maybe the mailing list, too, but I don't feel like checking). I'm just prodding the issue again (uh oh, did I prod a hornet's nest?) to see if it creates some positive momentum. > It's quite possible as a first-time contributor I am missing something > that already exists. If so, oops again! Nope! Not missing a thing. There's literally no way for you to know that there's a desire amongst some Guilers to discourage implementing new standard library procedures in C and expanding the default namespace. I really hope I haven't discouraged you from future contributions by using your patch as a case study. Thank you again for hacking on Guile! - Dave