diff --git a/.gitignore b/.gitignore index 418fdb6..8c029f8 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,3 @@ tmp deb *.deb test-result.txt -compile-scheme.pdf diff --git a/Makefile b/Makefile index a3b54a8..f7ac403 100644 --- a/Makefile +++ b/Makefile @@ -18,9 +18,6 @@ all: build-chibi README.md: doc/compile-scheme.1 printf "
\n$$(MANWIDTH=80 man -l doc/compile-scheme.1)\n" > README.md -compile-scheme.pdf: doc/compile-scheme.1 - mandoc -T pdf -l doc/compile-scheme.1 > compile-scheme.pdf - build-chibi: echo "#!/bin/sh" > compile-scheme echo "chibi-scheme -A ${PREFIX}/lib/compile-scheme ${PREFIX}/lib/compile-scheme/compile-scheme.scm \"\$$@\"" >> compile-scheme @@ -155,5 +152,3 @@ test-r7rs-php-docker: clean: git clean -X -f - - diff --git a/README.md b/README.md index e69de29..346aac6 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,93 @@ +
+compile-scheme(1) General Commands Manual compile-scheme(1)
+
+NAME
+ compile-scheme - Compiling Scheme programs to executables
+
+SYNOPSIS
+ compile-scheme { [-A path] [-I path] [-o path] [-t target] input-
+ file{.scm | .sps} | long-option }
+
+DESCRIPTION
+ compile-scheme is a tool to compile R6RS and R7RS Scheme programs. It
+ supports most of SRFI-138 but also adds more features.
+
+ The program input-file is compiled into an executable file. The result‐
+ ing executable file is written to file specified by the -o path (if
+ present) or to the file named same as input-file but without the .scm or
+ .sps suffix. On Windows either .bat or .exe is appended to the output
+ name.
+
+ SUPPORT LIST
+ Some implementations support both compiling and interpreting, in that
+ case only the compiler functionality is used and the implementation is
+ marked as compiler.
+
+ R6RS Compilers
+ loko
+
+ R6RS Interpreters
+ chezscheme guile ikarus ironscheme mosh racket sagittarius yp‐
+ silon
+
+ R7RS Compilers
+ chicken cyclone loko
+
+ R7RS Interpreters
+ chibi foment gauche guile kawa larceny meevax mit-scheme mosh
+ racket sagittarius skint stklos tr7 ypsilon
+
+OPTIONS
+ -A path Append path to the list of directories that are searched in or‐
+ der to locate imported libraries.
+
+ -I path Prepend directory to the list of directories that are searched
+ in order to locate imported libraries.
+
+ -o output-file Use the output-file file, instead of the default deducted
+ from input-file, for the executable file produced.
+
+ Multiple instances of the -A, and -I options can be specified.
+
+ -t { unix | windows | php } Set the compilation target. This is not
+ needed if you are compiling for the target OS you are running. Cross
+ compilation is only supported in following cases:
+
+ From unix host to php target when chosen implementation is inter‐
+ preter.
+
+ From unix host to windows target when chosen implementation is
+ interpreter.
+
+ --list-r6rs List supported R6RS implementations.
+
+ --list-r7rs List supported R7RS implementations.
+
+ --list-all List all supported implementations.
+
+ --list-targets List all supported compilation targets.
+
+ENVIRONMENT
+ COMPILE_R7RS/COMPILE_SCHEME
+
+ This environment variable must be set. Set it to the name of the
+ implementation as specified in the support list. This differs
+ from SRFI-138 as the SRFI excepts a path.
+
+STANDARDS
+ SRFI 138: Compiling Scheme programs to executables.
+ https://srfi.schemers.org/srfi-138/srfi-138.html
+
+CAVEATS
+ Differences from SRFI-138
+
+ No support for -D flag.
+
+ Not all implementations support adding to beginning or end of
+ load path so -I and -A might work the same
+
+ Only supports one input-file.
+
+EXAMPLES
+ compile-scheme(1)
+
\ No newline at end of file
diff --git a/doc/compile-scheme.1 b/doc/compile-scheme.1
index ed39018..cad7d6e 100644
--- a/doc/compile-scheme.1
+++ b/doc/compile-scheme.1
@@ -2,7 +2,7 @@
.SH NAME
compile-scheme \- Compiling Scheme programs to executables
.SH SYNOPSIS
-\fBcompile-scheme\fR { [\fB-A\fR \fIpath\fR] [\fB-I\fR \fIpath\fR] [\fB-o\fR \fIpath\fR] [\fB-t\fR \fItarget\fR] input-file\fI{.scm | .sps}\fR | \fIlong-options...\fR }
+\fBcompile-scheme\fR { [\fB-A\fR \fIpath\fR] [\fB-I\fR \fIpath\fR] [\fB-o\fR \fIpath\fR] [\fB-t\fR \fItarget\fR] \fIinput-file\fR{\fI.scm\fR | \fI.sps\fR} | \fIlong-option\fR }
.SH DESCRIPTION
.P
\fBcompile-scheme\fR is a tool to compile R6RS and R7RS Scheme programs.
@@ -59,9 +59,13 @@ List all supported implementations.
List all supported compilation targets.
.SH ENVIRONMENT
.P
-\fBCOMPILE_R7RS/COMPILE_SCHEME\fR
+\fBCOMPILE_R7RS\fR
+.P
+\fBCOMPILE_SCHEME\fR
.IP
-This environment variable \fBmust\fR be set. Set it to the \fBname\fR of the implementation as specified in the support list.
+
+Either of these environment variables \fBmust\fR be set.
+Set either to the \fBname\fR of the implementation as specified in the support list.
\fBThis differs from SRFI-138\fR as the SRFI excepts a path.
.SH STANDARDS
.P