summaryrefslogtreecommitdiffstats
path: root/ANNOUNCE
blob: 176bf90ed8fa781a5f267ea3cb1c0234fbd0532e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
This message announces the availability of Scheme release scm5d2.

New in scm5d2:

	* Makefile (install): Make sure $(libscmdir)require.scm exists.
	(libscmdir): Use instead of IMPLPATH.
	* repl.c (scm_top_level): Corrected error test on exit in case 0
	is not success.
	(repl): Return MAKINUM(EXIT_SUCCESS) when exiting an interactive
	session on EOF, this should not be an error.
	* build.scm (define-compile-commands): Added.
	(defcommand): Added.
	(platform): formatted; simplified names.
	* Makefile (features.txi): Added.
	* scm.texi (Build Options): take feature documentation from
	"features.txi".
	* build (make-features-txi): Creates documentation of build
	features from 'features table.
	* build.scm (build:define-feature): Added.  Feature definitions
	moved to top level.
	* Init5d1.scm (comment): Added.
	(read:sharp): Added `#;' comment syntax, *feature* SHARP:SEMI.
	* sys.c (scm_env_v2lst): Made tolerant to argc of zero,
	since ecache_evalx may call it thus for DO loops binding
	no values.
	* eval.c (debug_env_save): Function for use in ENV_SAVE when the
	CAREFUL_INTS paranoid debugging flag is #defined.
	(ecache_eval_args): Now calls ecache_evalx(), which
	evaluates a list of expressions and returns a list allocated on
	the ecache in scm_env_tmp.
	(m_do): (m_letrec1): (ceval_1): LET, LETREC, and DO now call
	ecache_evalx instead of using inline loops, this seems to improve
	speed by 5% - 10% for jacal and for simsynch simulation.  C stack
	usage will increase somewhat for large env frames.
	(lookupcar): Added support for constant bindings, to be created by
	LET, LETREC, LET*.
	* scl.c (dbl_prec): Use dbl_mant_dig in preference of potentially
	undefined DBL_MANT_DIG.
	* gmalloc.c: include "getpagesize.h" conditionalized on __svr4__.
	* build.scm (batch:chop-to-fit-system): Removed.  Use new
	batch:try-chopped-command instead.
	(mysql): Added to features.
	(build:build): Added comments describing stages and errors.
	* Makefile: Added platform.txi dependency where dependent on
	scm.texi.
	* Makefile (scm.info require.scm): "cp -p" more portable than "cp -a"?
	* sys.c (mode_bits): Fix for null output string case.
	* unif.c (make_sh_array): Reduced consing by using scm_cvapply
	instead of apply.
	*sys.c (mode_bits): Now takes an optional buffer which, on exit,
	will hold a mode string suitable to pass to fopen(), without any
	SCM extension characters.
	* r4rstest.scm (float-print-test): stop after first error.
	* sys.c (try_open_file): Insure that only 'r', 'w', 'b', or '+'
	may be included in mode strings passed to fopen.
	* repl.c (scm_freshline): Added FRESHLINE.
	* sys.c (init_storage): Make def_outp tracked, so freshline will
	work with it.
	* ramap.c (cind): Now takes C vector of indices, which may be
	allocated on the C stack, rather than a uve.
	(ramapc): (ramap): (ramap_cxr): (array_imap): (array_for_each): (rafe):
	Use scm_cvapply instead of apply, allocate index and argument vectors
	on the C stack for array ranks < 5.
	* record.c (makrectyp): (recprin1): Use scm_cvapply instead of
	apply.
	(rec_prinset): Checks arity of argument procedure.
	* sys.c (sfputc): (sfwrite): (sfgetc): Use scm_cvapply instead of
	apply.
	(mksfpt): Checks arities of soft port procedures when the port is made.
	* eval.c (scm_cvapply): (scm_arity_check): Exported.
	(makacro): (makmacro): (makmmacro): Call scm_cvapply rather than
	consing up argument lists.  Check arity of macro transformers
	once, when syntax is defined.
	* subr.c (make_vector): Fixed broken length argument test.
	* sys.c (scm_env_v2lst): Now takes list tail in scm_env_tmp, so
	tail can be allocated on ecache.
	* repl.c (scm_top_level): Print out supplied program arguments for
	failure exits to simplify debugging scripts.
	* eval.c (varcheck): Fixed for RECKLESS case.
	* eval.c (scm_arity_check): (macroexp1): Argument number checking
	in macroexp1 abstracted as scm_arity_check, for use in map,
	for-each ...
	(scm_cvapply):  Apply a function to a C vector of arguments, used by
	map and for-each.
	(scm_v2lst):  Added for use in scm_cvapply.
	(map): (for_each): Speed considerably improved: No longer allocate
	Scheme vector temporaries for up to 5 list arguments.  No longer
	allocate unnecessary argument lists, allocate on ecache if
	possible.
	* repl.c (iprin1): Print out first elt of cclo environment --
	makes record procedures more identifiable.
	* sys.c (scm_env_v2lst): Now takes last cdr of list as argument.
	* sys.c (scm_port_entry): Make 16-bit safe.
	* Tscript.scm: File added to implement transcript-on,
	transcript-off without burdening normal i/o.
	* Init5d1.scm (transcript-on): (transcript-off): Now autoloads
	from SCM/Tscript.scm
	(_TRACKED): Added.
	* socket.c (l_socket): (l_connect): (l_listen): Modified to use
	port table.
	(l_shutdown): (l_getpeername): (l_getsockname): Test for OPFPORTP, not
	just OPPORTP.
	* posix.c (l_pipe): Modified to use port table.
	(prinpipe): Removed.
	* ioext.c (reopen_file): (l_dup): (l_dup2): Modified to use port
	table.
	* crs.c (prinwindow): Removed.
	(mkwindow): Uses scm_port_entry.
	* repl.c (iprin1): Uses "name" field for printing ports.
	(input_waiting):  (wait_for_input):
	(trans_on): (trans_off): Removed in favor of soft-port implementation.
	(lputc): (lgetc): (lputs): (lfwrite): (lungetc): Removed check for
	transcript, added line and column number support.  Unread char now
	kept in port table rather than CAR.
	(lreadpr): (line_num): Removed line counting for load port, now done
	using general line and column counting.
	(scm_port_line): (scm_port_column): (scm_port_filename): Added.
	(err_head): Now prints out multiple filenames for nested loads.
	Tries to recover from recursive errors if current-error-port is a
	soft-port.
	* unif.c (uve_read): Removed ungetc call, if there is an unread
	character, just call lgetc repeatedly for the first elt.
	* sys.c (must_malloc): (must_realloc): Now check whether the heap
	is initialized or not, so may be called earlier.
	(scm_init_gra): (scm_grow_gra):  Use above feature.
	(scm_port_entry):  Added, allocates entry in a port table used to store
	unread characters, file names, line & column numbers, &c.
	(mark_port_table): (sweep_port_table): Gc support for port table.
	ptobfuns now has a "name" element, used for printing.
	(prinfport): (prinstpt): (prinsfpt):  Removed.

 From David Yeh:
	* scl.c (makdbl): Mods to compile using MSVC.
	* scmfig.h: Don't #define SINGLES for MSC.

				-=-=-

Scm conforms to Revised^5 Report on the Algorithmic Language Scheme
and the IEEE P1178 specification.  Scm is written in C and runs under
Amiga, Atari-ST, MacOS, MS-DOS, OS/2, NOS/VE, Unicos, VMS, Windows,
Unix, and similar systems.  ASCII and EBCDIC are supported.

Documentation is included explaining the many Scheme Language
extensions in scm, the internal representations, and how to extend or
include SCM in other programs.  Documentation is online at:

	     http://swissnet.ai.mit.edu/~jaffer/SCM.html

SCM source is available from:
 http://swissnet.ai.mit.edu/ftpdir/scm/scm5d2.zip
 ftp.gnu.org:pub/gnu/jacal/scm5d2.zip (FTP instructions follow)

SLIB is a portable Scheme library which SCM uses:
 http://swissnet.ai.mit.edu/ftpdir/scm/slib2c7.zip
 ftp.gnu.org:pub/gnu/jacal/slib2c7.zip

JACAL is a symbolic math system written in Scheme:
 http://swissnet.ai.mit.edu/ftpdir/scm/jacal1b0.zip
 ftp.gnu.org:pub/gnu/jacal/jacal1b0.zip

HOBBIT is a compiler for SCM code:
 http://swissnet.ai.mit.edu/ftpdir/scm/hobbit5x.tar.gz
 ftp.gnu.org:pub/gnu/jacal/hobbit5x.tar.gz

SLIB-PSD is a portable debugger for Scheme (requires emacs editor):
 http://swissnet.ai.mit.edu/ftpdir/scm/slib-psd1-3.tar.gz
 ftp.gnu.org:pub/gnu/jacal/slib-psd1-3.tar.gz

SMG-SCM is an SMG interface package which works with SCM on VMS.
 http://swissnet.ai.mit.edu/ftpdir/scm/smg-scm2a1.zip
 ftp.gnu.org:pub/gnu/jacal/smg-scm2a1.zip
A VMS version of Unzip is available by anonymous FTP from
 ftp.spc.edu:[ANONYMOUS.MACRO32]UNZIP.EXE.

TURTLSCM is a turtle graphics package which works with SCM on MS-DOS
or X11 machines:
 http://swissnet.ai.mit.edu/ftpdir/scm/turtlegr.tar.gz
 ftp.gnu.org:pub/gnu/jacal/turtlegr.tar.gz

XSCM is a X windows interface package which works with SCM:
 http://swissnet.ai.mit.edu/ftpdir/scm/xscm-2.01.tar.gz
 ftp.gnu.org:pub/gnu/jacal/xscm-2.01.tar.gz

MacSCM is a Macintosh applications building package which works with
SCM (similar to XSCM).
 http://swissnet.ai.mit.edu/ftpdir/scm/macscm.tar.Z

WB is a disk based, sorted associative array (B-tree) library for SCM.
Using WB, large databases can be created and managed from SCM.
 http://swissnet.ai.mit.edu/ftpdir/scm/wb1a2.tar.gz

SIMSYNCH is a digital logic simulation system written in SCM.
 http://swissnet.ai.mit.edu/ftpdir/scm/synch1b0.zip
 ftp.gnu.org:pub/gnu/jacal/synch1b0.zip

DLD is a C library package allowing SCM to dynamically load object
files on VAX (Ultrix), Sun 3 (SunOS 3.4 and 4.0), SPARCstation
(SunOS 4.0), Sequent Symmetry (Dynix), Atari ST, and a.out Linux
systems.
 ftp.gnu.org:pub/gnu/dld/dld-3.3.tar.gz

SCM.EXE (265k) is a SCM executable for DOS and MS-Windows.
Note: SCM.EXE still requires slib2c7 and scm5d2 above.
 http://swissnet.ai.mit.edu/ftpdir/scm/scm.exe

#! implements "#!" (POSIX) shell-scripts for MS-DOS batch files.
 http://swissnet.ai.mit.edu/ftpdir/scm/sharpbang.zip
 http://swissnet.ai.mit.edu/ftpdir/scm/#!.zip

Programs for printing and viewing TexInfo documentation (which SCM
has) come with GNU Emacs or can be obtained via ftp from:
 ftp.gnu.org:pub/gnu/texinfo/texinfo-4.0.tar.gz

				-=-=-

  ftp ftp.gnu.org (anonymous)
  bin
  cd pub/gnu/jacal
  get slib2c7.zip
  get scm5d2.zip