Guile-Scheme bindings to Mach & the Hurd, based upon the Common Lisp bindings by Flavio Cruz. Very WIP!

Maxime Devos 8545f226b7 condition types 4 days ago
cffi fb3d3dab05 cffi: early-types: Eliminate some compile-time errors. 3 weeks ago
common c8e455127c Place < angle brackets > around define-foreign-type classes. 1 month ago
docs 686f9fceb8 Document the use of unzip, irc and mux translators. 12 years ago
examples a149a3c0e6 Create directory for irc translator. 12 years ago
hurd 48084fc355 More compilation (defmethod, in-package) 1 month ago
irc-translator a149a3c0e6 Create directory for irc translator. 12 years ago
launcher 8c437784a2 Add install target. 12 years ago
libs 176c924237 Fix link 8 years ago
mach c8e455127c Place < angle brackets > around define-foreign-type classes. 1 month ago
patches 7fe76a30d5 Update for write support. 12 years ago
streams 63f87a97a8 Implement and export hurd-stream-file-length. 12 years ago
tests c9e271211a Add io-read to symbolic links. 12 years ago
translator 4ddac5c169 Rename zip translator to unzip. Put it in its own directory. 12 years ago
tree-translator 066a4a5ecc Return new directory on create-directory. 12 years ago
unzip-translator 14f9093c04 Update instructions. 12 years ago
zip-translator 4f547eb104 Add zip translator. 12 years ago
.gitignore 1ba49bb154 build: Ignore build artifacts. 1 month ago
AUTHORS 51516aa923 build: Define guile-hall infrastructure. 1 month ago
COPYING 7f87a07a9c Fill author & project name. 13 years ago
DEPENDENCIES 51516aa923 build: Define guile-hall infrastructure. 1 month ago
README.org a6bb5a93b5 build: Correct guile-hall infrastructure. 1 month ago
TODO 05fbcd9a93 Update TODO. 12 years ago
cffi.scm c8cd32eeb7 cl-compat: Remove CFFI stubs. 4 weeks ago
common.scm 2943dbd87c Adjust common/*.lisp for use in Guile Scheme. 1 month ago
defs.mk 007000b13c Use same flags as hurd's build system. 12 years ago
hall.scm 2e64291827 build: Build the (patched) cffi as well. 1 month ago
hurd-cl-compat.scm 8545f226b7 condition types 4 days ago
hurd-common.asd eb1fb94e6b Rename flags to open-flags. 12 years ago
hurd-streams.asd 4c40f17424 Include file output.lisp. 12 years ago
hurd-translator.asd 652e784fbd Remove paths file. 12 years ago
hurd.asd 6611278003 Make io module depend on package and types. 12 years ago
indent.sh 4abdf03bed Indent script to GNU Coding Style. 12 years ago
irc-translator.asd a149a3c0e6 Create directory for irc translator. 12 years ago
mach.asd 652e784fbd Remove paths file. 12 years ago
mach.scm c8e455127c Place < angle brackets > around define-foreign-type classes. 1 month ago
tree-translator.asd 652e784fbd Remove paths file. 12 years ago
unzip-translator.asd 1c741bcd85 Change description and fix components. 12 years ago
zip-translator.asd 4f547eb104 Add zip translator. 12 years ago

README.org

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