107 lines
2.2 KiB
Markdown
107 lines
2.2 KiB
Markdown
scsh - The Scheme Shell
|
|
|
|
This is an implementation of [scsh](https://scsh.net/) on top of
|
|
[(foreign c)](https://codeberg.org/foreign-c/foreign-c). It is not a port but
|
|
remake, trying to conform to the scsh as much as is possible but sane.
|
|
|
|
|
|
Not everything is implemented yet, see scsh.sld for commented out exports.
|
|
|
|
Currently only supports Linux.
|
|
|
|
|
|
## Documentation
|
|
|
|
See [https://scsh.net/docu/html/man-Z-H-13.html#node_index_start](https://scsh.net/docu/html/man-Z-H-13.html#node_index_start)
|
|
|
|
|
|
## Differences
|
|
|
|
Since the scsh proper is a program that you give source file to run to, and
|
|
this is a library. This version does not include everything. You should be able
|
|
to use other libraries to replace most things from scsh proper that this
|
|
library does not implement.
|
|
|
|
### alist->env, env->alist
|
|
|
|
For some reason the manual says that alist->env modifies the environment, yet
|
|
the scsh code does not. So this it returns a list of strings. Similarily
|
|
env->alist takes string as argument and returns alist instead of writing to env.
|
|
Check tests for examples.
|
|
|
|
|
|
### No SRFI's by default
|
|
|
|
SRFI's that come with scsh proper are not included. See snow-fort for them, or
|
|
your implementation.
|
|
|
|
|
|
### No scsh specifics
|
|
|
|
- bin-dir
|
|
- prefix
|
|
- exec-prefix
|
|
- lib-dir
|
|
- include-dir
|
|
- man-dir
|
|
- cflags
|
|
- clean-up-cres
|
|
- compiler-flags
|
|
- cppflags
|
|
- default-lib-dirs
|
|
- define-record
|
|
- defs
|
|
- dump-scsh
|
|
- dump-scsh-program
|
|
|
|
|
|
### No sockets
|
|
|
|
- accept-connection
|
|
- bind-listen-accept-loop
|
|
- bind-prepare-listen-accept-loop
|
|
- bind-socket
|
|
- close-socket
|
|
- connect-socket
|
|
- connect-socket-no-wait
|
|
- connect-socket-successful?
|
|
- create-socket
|
|
- create-socket-pair
|
|
- file-info-socket?
|
|
- file-socket?
|
|
- host-info
|
|
- internet-address->socket-address
|
|
- listen-socket
|
|
- network-info
|
|
- port->socket
|
|
- receive-message
|
|
- receive-message!
|
|
- receive-message!/partial
|
|
- receive-message/partial
|
|
|
|
Since this implementation of scsh is library you can get them as library elsewhere.
|
|
|
|
|
|
### No threads
|
|
|
|
Since this implementation of scsh is library you can get them as library elsewhere.
|
|
|
|
- current-thread
|
|
|
|
### No buffered io
|
|
|
|
- bufpol/block
|
|
- bufpol/line
|
|
- bufpol/none
|
|
|
|
|
|
### No date/time
|
|
|
|
- date
|
|
- date->string
|
|
|
|
|
|
### process-sleep
|
|
|
|
Same as sleep except instead of milliseconds uses seconds.
|