-*- outline -*- * There Be Dragons Here This is a very incomplete port of some scsh functionality for Guile 1.9.x/2.0. I have intentionally not maintained full scsh compatibility--it may, however, be a future goal. * Implementation Goals ** scsh functionality *** Process Notation Reimplemented from scratch in syntax-case. This should work as per the scsh documentation. The code required to support it has been/will be ported. *** Syscalls - `with-errno-handler' is provided, but the `data' element of the exception packet is always #f - errno/ERROR are not provided (for now). Guile provides all errno values as variables with the C name (ugly, but it works) *** Process Object / Execution Interface This has a few differences from scsh. Notably: - environments are represented as ("VAR=VALUE" ...) instead of ((VAR . VALUE) ...) as per Guile's `environ' function - `exec-path-list' is an SRFI-39 parameter - `pid->proc' is intentionally not implemented - `with-autoreaping' is not supported *** SRE irregex-guile.scm (instructions within) Patch sent to irregex author to define a guile module. *** scsh awk loop This will be difficult to do well. A naive rewrite based on the docs using syntax-case will probably be best initially. The awk implementation in scsh does a number of hairy optimizations and is written in an explicit-renaming macro system and so any conversion will require quite a bit of effort. *** tty/pty interface This has slightly more features that the Guile tty/pty interfaces AFAICT (I've only looked at the docs so far). Will need to be a fresh implementation (no sense in porting the scheme48/scsh C interfaces) and probably belongs in Guile itself.