guix-devel
[Top][All Lists]
Advanced

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

Re: FYI: guile-scheme bindings to GNU Mach and the Hurd


From: Maxime Devos
Subject: Re: FYI: guile-scheme bindings to GNU Mach and the Hurd
Date: Tue, 04 May 2021 22:18:03 +0200
User-agent: Evolution 3.34.2

Ludovic Courtès schreef op zo 02-05-2021 om 22:51 [+0200]:
> > [...] moved it to <https://notabug.org/guile-hurd/guile-hurd>;.
> 
> Nice!  I knew of the Common Lisp effort this is based on, and the idea
> of reusing the .lisp code unchanged is smart.  Looks promising!

The initial idea was to keep most of the .lisp code unchanged and ‘convert’
most lisp -> Scheme by defining appropriate macro's. However:

 * the procedure names are adapted to Scheme conventions
   (! for imperative procedures, ? instead of -p for predicates, ...)

 * the Lisp code is rather sparsely documented, so I'm adding docstrings
   and some comments. Particularily important for people who don't know much
   about how the Hurd and Mach works (e.g. me (-:)).

 * the Lisp code uses <https://www.common-lisp.net/project/cffi/>
   as foreign function interface, which uses CLOS.  While much of CLOS
   can be ‘implemented’ with macros that use GOOPS, there are some 
incompatibilities
   (e.g., :after, :before and something else I forgot do not exist in GOOPS)
   which cannot be easily worked around

   It is (in-progress) fairly easy to modify the mach/*.lisp code to use guile's
   FFI instead.  E.g., see

   
<https://notabug.org/guile-hurd/guile-hurd/src/cafd4a0e3b679bef14ff8327773c00221d5c0981/mach/port-move.scm>

  and

  
<https://notabug.org/guile-hurd/guile-hurd/src/cafd4a0e3b679bef14ff8327773c00221d5c0981/mach/ffi.scm>

I probably need to change the README.org.

There were some other points I wished to raise, but I'll stop here so
you don't have to wait a week on my response.

Greetings,
Maxime.


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


reply via email to

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