gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pre-announcement of partial Scheme port of client libraries


From: Maxime Devos
Subject: Re: Pre-announcement of partial Scheme port of client libraries
Date: Wed, 15 Sep 2021 22:07:56 +0200
User-agent: Evolution 3.34.2

Christian Grothoff schreef op wo 15-09-2021 om 16:12 [+0200]:
> On 9/15/21 12:57 PM, Maxime Devos wrote:
> > Hi,
> > 
> > I've been porting parts of the client libraries of GNUnet to Guile (*) and
> > changing a few things.  It now has sufficient functionality for a v0.1
> > POC release (**), but I have a few questions to ask before I announce it.
> 
> Nice.
> 
> > (*) See ‘4. Relation to gnunet-guile’ for differences with
> > <https://git.gnunet.org/gnunet-guile2.git/> and
> > <https://git.savannah.gnu.org/cgit/guix/gnunet.git/>;;.
> > (**) It can talk with the NSE service.
> > 
> > 1. Name
> > 
> >    I've been calling the port ‘Scheme-GNUnet’.  Would this be acceptable,
> >    or do I have to remove GNUnet from the name?
> 
> See https://git.gnunet.org/: usually we'd call it gnunet-scheme. At
> least that'd be consistent with the cocoa, go, nim, java and python
> bindings / integrations...

Right.  I think I'll rename it to gnunet-scheme or gnunet-guile.  The latter
might cause confusion with <https://git.gnunet.org/gnunet-guile2.git> though
...

> > 2. Infrastructure
> > 
> >    As it is library for interacting with GNUnet services, I thought
> >    the pre-existing gnunet-developers@gnu.org, help-gnunet@gnu.org and
> >    info-gnunet@gnu.org mailing lists might be appropriate.  Can I direct
> >    people help-gnunet@ for help about Scheme-GNUnet and gnunet-developers@
> >    for sending patches for Scheme-GNUnet?  And can I send release 
> > announcements
> >    at info-gnunet@?
> 
> Yes, alas I might need to manually approve info-gnunet@ (ditto for
> messages from non-subscribers), so they might arrive with some delay.

Messages to info-gnunet@ will be relatively infrequent, so that shouldn't
be a problem.

> > 3. Copyright assignment
> > 
> >    I noticed most source code of GNUnet, with some exceptions, only lists
> >    ‘GNUnet e.V.’ under the copyright notices.  Would it be possible for
> >    contributors to Scheme-GNUnet to (if they want to) assign the copyright
> >    to GNUnet e.V.?  And would this be desirable?
> 
> Yes, that would be desirable (also for your contributions), as that
> could allow GNUnet e.V. to re-license/dual-license if ever required.
> Note that the process is very simple (one signature), can be done under
> a pseudonym (if you contribute under a pseudonym), and you also get to
> keep the copyright! See https://gnunet.org/en/copyright.html for details.

I don't have access to a printer at the moment, so this will have to wait
a little.

> As a rule of thumb, if you want write-access to git.gnunet.org, you must
> sign the copyright agreement (technically what we do is not an
> _assignment_ but _sharing_ of the copyright).

FWIW, the title of ‘copyright.pdf’ is ‘Copyright Assignment Agreement for
Contributors to GNUnet’.

> > 4. Relation to gnunet-guile (not a question).
> > 
> > Some may be wondering why I didn't use the
> > <https://git.savannah.gnu.org/cgit/guix/gnunet.git/> or
> > <https://git.gnunet.org/gnunet-guile2.git> Guile bindings instead of writing
> > my own <https://notabug.org/maximed/scheme-gnunet>;;.  The answer is that:
> > 
> >    (1) I didn't write Guile->C bindings, I ported parts of GNUnet from C to
> >        Guile
> >    (2) A few parts of the Guile bindings are reused in the Guile port
> >    (3) there were some crashes with the Guile bindings (things like
> >        NULL-pointer exceptions)
> >    (4) I couldn't figure out the issue
> >    (5) I would like to use GNUnet from within guile-fibers, but didn't 
> > succeed
> >        in letting the C event loop cooperate with guile-fibers' scheduling
> >    (6) I find Scheme easier to hack on than C.
> 
> I think that's a fine (and maybe generally preferable) approach rather
> than doing bindings. I'd just not do the crypto itself directly in
> Guile, that's likely neither performant nor safe.

Bindings for crypto libraries already exist and appear to work well
and easy to use.  E.g. guile-gcrypt has been succesfully used in Guix
and nettle's C API seems trivial to wrap.  The pure crypto (I'm including
hashing here) will be done by a wrapped C library.

>  The real question is,
> does your work render the bindings obsolete?

At the moment, not yet, because it doesn't support GNS, DHT, FS ...
But eventually, I think it will.

> > For the interested, I have included a copy of the manual.
> 
> Very nice ;-).
> 
> Happy hacking!

Greeting,
Maxime.

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]