README.org 2.3 KB

================================================ Hurd (Guile) Scheme bindings & translator library ================================================

Nothing to see yet, for now here's some documentation of the clisp bindings this code is based on:

I (Maxime Devos) intend to release my changes as GPLv3.0-or-later, but let's wait on a response from bug-hurd@gnu.org and Flavio Cruz first ...

Some Scheme conventions were adopted: xxx-set --> xxx-set! condition -> &condition class -> (don't do this for foreign enums) x-p -> x? t -> #t

Original Lisp code in defuns do not have to be converted to Scheme conventions if the differences are not visible to callers. Limiting changes should help with copying bug fixes & new features between the CL and Scheme port.

nil is replaced with #nil, which is a Guile Scheme object that is false (but not eq? #f) and null? (but not eq? '()). Later we can investigate when #nil can be replaced with '() or #f.

Mach code is in (mach) (which includes various *.lisp from mach/), hurd code is in (hurd) or (hurd STUFF) (likewise), some other code is in (common).

At least, that's the idea. Some code in (mach) needs to be reordered ...

---

A patched version of CFFI is included under cffi/, which is included by cffi.scm. Use --squash when fetching updates from upstream, & prefix the commit message with "cffi: ".

Compilation

Makefile.am and configure.ac are generated by guile-hall (use hall distribute -x and autoreconf -vif)

XXX fix guile-hall to set --target=TRIPLET.

================================================ Hurd Common Lisp bindings & translator library ================================================

  • common/

Contains common code to mach, hurd and hurd-translator packages.

  • mach/

Contains mach bindings for functions used to manipulate ports in the hurd package.

  • hurd/

Contains bindings to some RPC's. Implements the iouser abstraction and a Lispy libports implementation using only mach functions (not the libports library).

  • translator/

Contains the translator and node class. Implements the translator callbacks and describes the available API.

  • tree-translator/

Special translator class to easily implement directory based translators.

  • examples/

Translator examples.

  • tests/

Test the translator library using the 'test' translator.