unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Richard Sent <richard@freakingpenguin.com>
To: "Thompson, David" <dthompson2@worcester.edu>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: The Guile junk drawer and a C plea
Date: Sat, 29 Jun 2024 15:02:35 -0400	[thread overview]
Message-ID: <87cynzr2r8.fsf@freakingpenguin.com> (raw)
In-Reply-To: <CAJ=RwfYZuorxp+n7BskBfP+H_-YxS3MHAQsxWonjhbCuJFm98Q@mail.gmail.com> (David Thompson's message of "Fri, 28 Jun 2024 22:52:46 -0400")

Hi David and all,

"Thompson, David" <dthompson2@worcester.edu> writes:

> As a rule, I think Guile should *not* add any additional names to the
> default environment without an extremely good reason. Because (guile)
> is imported implicitly, new names can cause clashes with existing code
> that require #:replace to suppress the warning about shadowing core
> bindings. For example, the newish 'spawn' procedure collides with
> 'spawn' in (goblins core) in the Goblins project. I think Guile needs
> a (multi-year, multi-major version) plan to deprecate cruft and move
> the good stuff into different modules. Give a hoot, don't pollute (the
> default environment)!
>
> Second, please please please, no more C! Guile's substantial amount of
> C code is a legacy of its origins decades ago, and we need to make it
> clear to new users and contributors that new code should be written in
> Scheme!

I see my little patch has ignited a comparatively oversized firestorm.
Oops. ;)

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 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.

It's quite possible as a first-time contributor I am missing something
that already exists. If so, oops again!

[1]: (guile) Status

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.



  parent reply	other threads:[~2024-06-29 19:02 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-29  0:19 [PATCH] Add nondestructive delq1, delv1, and delete1 Richard Sent
2024-06-29  2:52 ` The Guile junk drawer and a C plea (was: [PATCH] Add nondestructive delq1, delv1, and delete1.) Thompson, David
2024-06-29  7:37   ` Mikael Djurfeldt
2024-06-29  8:12     ` The Guile junk drawer and a C plea Dr. Arne Babenhauserheide
2024-06-29  8:33       ` Damien Mattei
2024-06-29  9:59         ` Dr. Arne Babenhauserheide
2024-06-29  9:07     ` The Guile junk drawer and a C plea (was: [PATCH] Addnondestructive delq1, delv1, and delete1.) Maxime Devos
2024-06-29 10:41     ` Maxime Devos
2024-06-29 18:12       ` The Guile junk drawer and a C plea Dr. Arne Babenhauserheide
2024-06-29 18:18         ` Lassi Kortela
2024-06-29 18:27         ` Maxime Devos
2024-06-29 19:04           ` GRFI [was: The Guile junk drawer and a C plea] Matt Wette
2024-06-29 19:13             ` Lassi Kortela
2024-07-02 19:42               ` Jason Hemann
2024-06-29 19:39             ` Jean Abou Samra
2024-06-29 21:53       ` The Guile junk drawer and a C plea Philip McGrath
2024-06-29 22:41         ` Maxime Devos
2024-06-30  7:12           ` Dr. Arne Babenhauserheide
2024-06-30  9:45             ` Maxime Devos
2024-06-30 14:34               ` Dr. Arne Babenhauserheide
2024-07-01  9:06                 ` Maxime Devos
2024-07-01 10:42                   ` Dr. Arne Babenhauserheide
2024-06-30  6:16         ` #lang header Lassi Kortela
2024-06-30  0:17     ` The Guile junk drawer and a C plea Thompson, David
2024-07-17  2:25     ` The Guile junk drawer and a C plea (was: [PATCH] Add nondestructive delq1, delv1, and delete1.) Olivier Dion
2024-07-17 10:01       ` Library namespaces (guile ...) and (srfi ...) Lassi Kortela
2024-07-17 10:45       ` The Guile junk drawer and a C plea Dr. Arne Babenhauserheide
2024-07-17 10:53         ` MSavoritias
2024-07-17 11:12           ` Lassi Kortela
2024-07-17 15:44             ` Olivier Dion
2024-07-17 16:09               ` tomas
2024-07-17 16:29                 ` Attila Lendvai
2024-07-17 20:32                   ` Dr. Arne Babenhauserheide
2024-07-18  9:04                     ` Attila Lendvai
2024-07-18 15:11                       ` Dr. Arne Babenhauserheide
2024-07-17 20:33           ` Dr. Arne Babenhauserheide
2024-07-18 22:56             ` Greg Troxel
2024-07-19  8:46               ` Maxime Devos
2024-07-20  9:34                 ` Attila Lendvai
2024-07-20 13:01                   ` [PATCH] " Dr. Arne Babenhauserheide
2024-07-20 13:30                     ` Name of the standard library Lassi Kortela
2024-07-20 14:52                       ` Dr. Arne Babenhauserheide
2024-07-20 15:24                         ` Lassi Kortela
2024-07-20 15:46                           ` Dr. Arne Babenhauserheide
2024-07-20 16:04                             ` Portable code Lassi Kortela
2024-07-20 16:24                               ` Dr. Arne Babenhauserheide
2024-07-20 16:37                                 ` Lassi Kortela
2024-07-20 21:48                                   ` Dr. Arne Babenhauserheide
2024-07-26  9:21                                     ` Lassi Kortela
2024-07-20 16:11                             ` Name of the standard library Maxime Devos
2024-07-20 16:26                               ` Dr. Arne Babenhauserheide
2024-07-20 16:48                                 ` Maxime Devos
2024-07-20 18:42                                   ` Portable imports Lassi Kortela
2024-07-20 19:18                                     ` Maxime Devos
2024-07-20 19:46                                       ` Encoding library names Lassi Kortela
2024-07-20 20:35                                         ` Maxime Devos
2024-07-21  5:55                                       ` Portable imports tomas
2024-07-20 19:23                                     ` Maxime Devos
2024-07-20 16:54                                 ` Name of the standard library Lassi Kortela
2024-07-20 21:56                                   ` Dr. Arne Babenhauserheide
2024-07-26  9:38                                     ` Lassi Kortela
2024-07-20 15:43                         ` Maxime Devos
2024-07-20 15:58                           ` Lassi Kortela
2024-07-21  7:15                         ` MSavoritias
2024-07-21  8:04                           ` Dr. Arne Babenhauserheide
2024-07-26 16:37                             ` Library names describe APIs Lassi Kortela
2024-07-21 16:50                           ` Name of the standard library Ricardo Wurmus
2024-07-21 13:00                         ` Attila Lendvai
2024-07-20 16:01                       ` Maxime Devos
2024-07-20 16:27                         ` Lassi Kortela
2024-07-20 16:55                           ` Maxime Devos
2024-07-21 12:16                     ` [PATCH] The Guile junk drawer and a C plea Attila Lendvai
2024-07-21 21:10                       ` Dr. Arne Babenhauserheide
2024-07-22 14:52                         ` Attila Lendvai
2024-07-20 15:26                   ` Maxime Devos
2024-07-17 11:04         ` Lassi Kortela
2024-06-29 18:38   ` The Guile junk drawer and a C plea (was: [PATCH] Add nondestructive delq1, delv1, and delete1.) Jean Abou Samra
2024-06-29 19:02   ` Richard Sent [this message]
2024-06-29 23:51     ` The Guile junk drawer and a C plea Thompson, David
2024-06-30  7:23       ` Dr. Arne Babenhauserheide
2024-07-01  2:55   ` Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cynzr2r8.fsf@freakingpenguin.com \
    --to=richard@freakingpenguin.com \
    --cc=dthompson2@worcester.edu \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).