diff options
author | Darren Bane <darren.bane@gmail.com> | 2022-02-12 01:15:40 +0000 |
---|---|---|
committer | Darren Bane <darren.bane@gmail.com> | 2022-02-12 01:15:40 +0000 |
commit | 0a35cee67a6f8812db39806ed1f6b5975dea478b (patch) | |
tree | a8cc23bcb05f9e9d14d8114a4ded8ac8618a8c2b /doc/bane.21.cdr16.gmi | |
parent | ccb2aac02c83a057f9a22d59e6fbaecf25709073 (diff) | |
download | lsp-0a35cee67a6f8812db39806ed1f6b5975dea478b.tar.gz |
Making changes
Diffstat (limited to 'doc/bane.21.cdr16.gmi')
-rw-r--r-- | doc/bane.21.cdr16.gmi | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/doc/bane.21.cdr16.gmi b/doc/bane.21.cdr16.gmi new file mode 100644 index 0000000..dcd8d95 --- /dev/null +++ b/doc/bane.21.cdr16.gmi @@ -0,0 +1,75 @@ +title: POSIX API for ISLisp +author: Darren Bane +copyright: 2021 Darren Bane, CC BY_SA + +# Abstract + +A mapping from Scheme's SRFI-170, "POSIX API", to ISLisp is defined. + +# Introduction + +Although they are similar, Scheme and ISLisp are not the same language. This document adapts the standard Scheme POSIX interface to ISLisp accounting for: + +* Different naming conventions (e.g. `predicatep` rather than `predicate?`) +* Historical practice, in particular compatibility with OpenLisp (the only commercial implementation) is prioritised + +# Dependencies + +SRFI-170 depends on at least part of several other SRFIs, in particular: + +* SRFI-19, "Time Data Types and Procedures" +* SRFI-106, "Networking operations" +* SRFI-158, "Generators and Accumulators" + +SRFI-39, "Parameter objects", is superseded by ISLisp's dynamic variables. + +Only SRFI-106 is implemented fully; the subset of required symbols is taken from the others. + +# Mapping + +Any symbols not mentioned in the following are unchanged from SRFI-170. + +## S3.3, "File system" + +```table +┌──────────────────┬──────────────────┐ +│ Scheme │ ISLisp │ +╞══════════════════╪══════════════════╡ +│ file-info? │ file-info-p │ +├──────────────────┼──────────────────┤ +│ delete-directory │ remove-directory │ +└──────────────────┴──────────────────┘ +``` +## S3.5, "Process state" + +```table +┌────────────────────────┬──────────────────┐ +│ Scheme │ ISLisp │ +╞════════════════════════╪══════════════════╡ +│ set-umask! │ set-umask │ +├────────────────────────┼──────────────────┤ +│ set-current-directory! │ change-directory │ +├────────────────────────┼──────────────────┤ +│ pid │ getpid │ +├────────────────────────┼──────────────────┤ +│ user-uid │ getuid │ +└────────────────────────┴──────────────────┘ +``` +## S3.11, "Environment variables" + +```table +┌──────────────────────────┬────────┐ +│ Scheme │ ISLisp │ +╞══════════════════════════╪════════╡ +│ get-environment-variable │ getenv │ +└──────────────────────────┴────────┘ +``` +## S3.12, "Terminal device control" + +```table +┌───────────┬───────────┐ +│ Scheme │ ISLisp │ +╞═══════════╪═══════════╡ +│ terminal? │ terminalp │ +└───────────┴───────────┘ +``` |