Subject: Re: [bug#56204] Add guile-goblins
From: Christine Lemmer-Webber <[email-masked]>
To: Maxime Devos <[email-masked]>
Cc: [email-masked]
Date: Fri, 24 Jun 2022 22:36:39 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hey Maxime!

Maxime Devos <[email-masked]> writes:

> [[PGP Signed Part:Undecided]]
> Christine Lemmer-Webber schreef op vr 24-06-2022 om 17:24 [-0400]:
>> +    (arguments
>> +     `(#:phases
>> +       (modify-phases %standard-phases
>> +         (replace 'bootstrap
>> +           (lambda _
>> +             (invoke "autoreconf" "-vif"))))
>
> I don't know if it works in this particular case, but I thought that
> normally 'bootstrap' would automatically do that already?

Ah yeah, seems to work without it...!

>> +       #:make-flags
>> +       ,#~(list "GUILE_AUTO_COMPILE=0")))
>
> Nesting different forms of quasiquotation seems to be disliked (at
> least according to a mini poll I did on #guix some time ago),
> apparently
>
> (arguments
>   (list #:phases
>         #~(modify-phases ...)
>         #:make-flags
>         #~(list ...)))
>
> seems to be the way to go?
>
>> +    (native-inputs
>> +     (list autoconf automake pkg-config texinfo))
>> +    (inputs
>> +     `(("guile" ,guile-3.0)))
>
> Can be simplified to (inputs (list guile-3.0))?

Cool, done.  For (inputs ...) anyway... the above native-inputs did
still seem needed, presumably because we *are* running the bootstrap
code in this case.

>> +     "@code{guile-goblins} is the Guile version of
>> + @url{https://spritely.institute/goblins, Spritely Goblins},
>> +a transactional, distributed programming environment following object
>> +capability security designs.  Goblins is a general toolkit, and also
>> +the core layer of Spritely's work to support healthy distributed
>> +networked communities.")
>
> Maybe mention that it can network with non-Guile goblin peers as well
> (e.g. Racket?), assuming that's correct?
>
> Greetings,
> Maxime.

It's true, but more accurately, it will be true in the next version,
since guile-goblins v0.8 doesn't have finished networking support.
But yes, that's coming, so I put this comment above the description:

    ;; In guile-goblins 0.9, OCapN support will be added (it already
    ;; exists in racket-goblins).  At that point we should add the
    ;; following to this description:
    ;;
    ;;   Goblins allows for cooperation between networked programs
    ;;   in a mutually suspicious network through OCapN, the Object
    ;;   Capability Network.  This includes collaboration across
    ;;   runtimes; for instance, programs written in the Guile and Racket
    ;;   versions of Goblins are able to speak to each other.

And we can do that then.  As said in the other email, I don't think this
is far away.

Thanks to both Maxime and Ludo' for reviewing!  I pushed it upstream.
Happy hacking with guile-goblins... if someone does anything with it,
let me know.  The next release will be the first big guile-goblins
release to celebrate, but was eager to get what we have up there. :)