-
+ 1E6959CA3EC52251E162D6C766CAF558F6FC222D337DBBCB313807C0B7F555F508E05865176D3DF5E92C8A2AA94E27529323A8A2E2F4264FDC1256276CF6B63Btinyscheme/MiniSCHEMETribute.txt(0 . 0)(1 . 88)
969 TinyScheme would not exist if it wasn't for MiniScheme. I had just
970 written the HTTP server for Ovrimos SQL Server, and I was lamenting the
971 lack of a scripting language. Server-side Javascript would have been the
972 preferred solution, had there been a Javascript interpreter I could
973 lay my hands on. But there weren't. Perl would have been another solution,
974 but it was probably ten times bigger that the program it was supposed to
975 be embedded in. There would also be thorny licencing issues.
976
977 So, the obvious thing to do was find a trully small interpreter. Forth
978 was a language I had once quasi-implemented, but the difficulty of
979 handling dynamic data and the weirdness of the language put me off. I then
980 looked around for a LISP interpreter, the next thing I knew was easy to
981 implement. Alas, the LeLisp I knew from my days in UPMC (Universite Pierre
982 et Marie Curie) had given way to Common Lisp, a megalith of a language!
983 Then my search lead me to Scheme, a language I knew was very orthogonal
984 and clean. When I found Mini-Scheme, a single C file of some 2400 loc, I
985 fell in love with it! What if it lacked floating-point numbers and
986 strings! The rest, as they say, is history.
987
988 Below are the original credits. Don't email Akira KIDA, the address has
989 changed.
990
991 ---------- Mini-Scheme Interpreter Version 0.85 ----------
992
993 coded by Atsushi Moriwaki (11/5/1989)
994
995 E-MAIL : moriwaki@kurims.kurims.kyoto-u.ac.jp
996
997 THIS SOFTWARE IS IN THE PUBLIC DOMAIN
998 ------------------------------------
999 This software is completely free to copy, modify and/or re-distribute.
1000 But I would appreciate it if you left my name on the code as the author.
1001
1002 This version has been modified by R.C. Secrist.
1003
1004 Mini-Scheme is now maintained by Akira KIDA.
1005
1006 This is a revised and modified version by Akira KIDA.
1007 current version is 0.85k4 (15 May 1994)
1008
1009 Please send suggestions, bug reports and/or requests to:
1010 <SDI00379@niftyserve.or.jp>
1011
1012
1013 Features compared to MiniSCHEME
1014 -------------------------------
1015
1016 All code is now reentrant. Interpreter state is held in a 'scheme'
1017 struct, and many interpreters can coexist in the same program, possibly
1018 in different threads. The user can specify user-defined memory allocation
1019 primitives. (see "Programmer's Reference")
1020
1021 The reader is more consistent.
1022
1023 Strings, characters and flonums are supported. (see "Types")
1024
1025 Files being loaded can be nested up to some depth.
1026
1027 R5RS I/O is there, plus String Ports. (see "Scheme Reference","I/O")
1028
1029 Vectors exist.
1030
1031 As a standalone application, it supports command-line arguments.
1032 (see "Standalone")
1033
1034 Running out of memory is now handled.
1035
1036 The user can add foreign functions in C. (see "Foreign Functions")
1037
1038 The code has been changed slightly, core functions have been moved
1039 to the library, behavior has been aligned with R5RS etc.
1040
1041 Support has been added for user-defined error recovery.
1042 (see "Error Handling")
1043
1044 Support has been added for modular programming.
1045 (see "Colon Qualifiers - Packages")
1046
1047 To enable this, EVAL has changed internally, and can
1048 now take two arguments, as per R5RS. Environments are supported.
1049 (see "Colon Qualifiers - Packages")
1050
1051 Promises are now evaluated once only.
1052
1053 (macro (foo form) ...) is now equivalent to (macro foo (lambda(form) ...))
1054
1055 The reader can be extended using new #-expressions
1056 (see "Reader extensions")