From f136b4ee4fe1f2a5621c043c084a0516cd491e2b Mon Sep 17 00:00:00 2001 From: retropikzel Date: Thu, 25 Dec 2025 11:08:54 +0200 Subject: [PATCH] Update readme --- Makefile | 2 +- README.md | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1574d39..ca10ed0 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ build: build-gauche README.md: doc/compile-scheme.1 echo "
" > README.md
 	echo "$$(MANWIDTH=80 man -l doc/compile-scheme.1)" >> README.md
-	echo "" > README.md
+	echo "" >> README.md
 	cat README_ADDITIONAL.md >> README.md
 	echo "" >> README.md
 	echo "
" >> README.md
diff --git a/README.md b/README.md
index 7afc32f..b7c21e3 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,135 @@
+
+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] input-file.sps
+
+       compile-scheme [-A path] [-I path] [-o path] input-file.scm
+
+       compile-scheme 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  re‐
+       sulting 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 out‐
+       put name.
+
+SUPPORTED IMPLEMENTATIONS
+       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 ypsilon
+
+   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 de‐
+       ducted from input-file, for the executable file produced.
+
+       Multiple instances of the -A, and -I options can be specified.
+
+       --list-r6rs List supported R6RS implementations.
+
+       --list-r7rs List supported R7RS implementations.
+
+       --list-all List all supported implementations.
+
+       --version Show the software version.  --debug Turn on debug output.
+
+       --help Shows you command to read this manual page. :)
+
+ENVIRONMENT
+       COMPILE_R7RS
+
+       COMPILE_SCHEME
+
+              Either of these environment variables must be set.   Set  either
+              to  the  name  of the implementation as specified in the support
+              list.  This differs from SRFI-138 as the SRFI excepts a path.
+
+       COMPILE_SCHEME_DEBUG
+
+              Another way in addition to --debug to turn on debug output.
+
+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 R6RS file with all dependencies in the same directory.
+
+              COMPILE_SCHEME=SCHEME compile-scheme main.sps
+
+       Compile R7RS file with all dependencies in the same directory.
+
+              COMPILE_SCHEME=SCHEME compile-scheme main.scm
+
+       Compile R6RS file with dependencies in libs directory.
+
+              COMPILE_SCHEME=SCHEME compile-scheme -I ./libs main.sps
+
+       Compile R7RS file with dependencies in libs directory.
+
+              COMPILE_SCHEME=SCHEME compile-scheme -I ./libs main.scm
+
+       Compile R6RS file with dependencies in libs directory, to output  named
+       foo.
+
+              COMPILE_SCHEME=SCHEME compile-scheme -I ./libs -o foo main.sps
+
+       Compile  R7RS file with dependencies in libs directory, to output named
+       foo.
+
+              COMPILE_SCHEME=SCHEME compile-scheme -I ./libs -o foo main.scm
+
+       Makefile for interpreter
+
+              PREFIX=/usr/local
+              SCHEME=chibi
+
+              build:
+                   COMPILE_SCHEME=${SCHEME} compile-scheme -I ${PREFIX}/lib/myapp/librarydirectory -o myapp myapp.scm
+
+              install:
+                   mkdir -p ${PREFIX}/lib/myapp
+                   cp -r librarydirectory ${PREFIX}/lib/myapp/
+                   cp  myapp.scm ${PREFIX}/lib/myapp/myapp.scm
+                   install myapp ${PREFIX}/bin/myapp
+
+                                                             compile-scheme(1)
 
 # Install