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
|
This message announces the availability of Scheme release scm5e2.
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.
SCM is free software. It is released under the GNU Public License
(GPL) with an exception allowing it to be linked with non-GPL
programs (see http://swiss.csail.mit.edu/~jaffer/SCM_LICENSE).
Documentation and distributions in several formats are linked from
SCM's home page:
http://swissnet.ai.mit.edu/~jaffer/SCM.html
Links to distributions of SCM and related softwares are at the end of
this message.
-=-=-
scm5e2 news:
Hinting GCC branch-predictions nets 10% speed improvement for SCM
running the JACAL symbolic mathematics system.
* scmfig.h (SCM_EXPECT_TRUE, SCM_EXPECT_FALSE): Added.
(POSFIXABLE, NEGFIXABLE, UNEGFIXABLE): SCM_EXPECT_TRUE.
* scmfig.h (__builtin_expect): Added stub for non-gcc compilers.
* scm.h: SCM_EXPECT_TRUE and SCM_EXPECT_FALSE replace
__builtin_expect().
(ASRTER, ASRTGO): SCM_EXPECT_FALSE.
* scm.h (INUMP, IMP, SINGP): Added __builtin_expect() netting more
than 9% speed improvement in JACAL.
* Makefile (scm5.opt, udscm4.opt): Commented out
-fno-guess-branch-probability flag.
* Makefile (udscm4.opt, scm5.opt): Condition
-fno-guess-branch-probability on `type gcc'.
* Makefile (scm5.opt, udscm4.opt): -fno-guess-branch-probability
improves benchmark speed 10% on i686.
(hfiles): Moved to top of file so that dependencies work.
* byte.c, continue.c, crs.c, dynl.c, eval.c, gsubr.c, ioext.c,
posix.c, ramap.c, record.c, repl.c, rope.c, sc2.c, scl.c, scm.c,
scm.h, socket.c, subr.c, sys.c, time.c, unif.c, unix.c, x.c:
Regularized `if' syntax.
* scm.c (l_pause): __CYGWIN__ now has pause().
* scmfig.h (LACK_FTIME): __CYGWIN__ now has ftime().
* socket.c (l_lna, l_hostinfo, l_netinfo, l_setnet): Made
conditional on __CYGWIN__.
* ioext.c: __CYGWIN__ has <unistd.h>.
* scl.c (lasinh, lacosh, latanh): Replaced by libc functions.
* scl.c (sum, difference, divide): Added BIGDIG* cast to &z.
* scl.c (numident): Don't bomb given bignums.
* scl.c (makdbl): (+ -1/0 +5i) ==> -1/0; not 0/0.
* scl.c (apx_log10): Removed unused variable.
* scl.c (scm_magnitude): Renamed from magnitude().
(scm_abs): Added, real-only.
* scl.c (safe_add_1): Replaces add1.
(scm_truncate): Renamed from ltrunc.
* scm.h (scm_truncate): Renamed from ltrunc.
(scm_floor, scm_ceiling): Added.
* subr.c (absval): Moved to scl.c.
* rope.c (num2dbl): Handle 0/0.
* scl.c (inf2str): Changed to "+inf.0" and "-inf.0".
(istr2flo): Parse "+inf.0", "-inf.0", and
COMPACT_INFINITY_NOTATION.
(istr2flo, inf2str): COMPACT_INFINITY_NOTATION flag enables +/0
and -/0 infinity notations.
* Transcen.scm (quo, rem, mod): New names for inexact quotient,
remainder, and modulo.
* Init5e1.scm (abs): Is no longer synonym for magnitude.
* Transcen.scm (exact-round, exact-floor, exact-ceiling)
(exact-truncate): Added SRFI-70 convenience functions.
(limit): Removed.
* Transcen.scm (sequence->limit): Removed use of 1/0 literal.
* Transcen.scm (expt): 0^0 ==> 1.
* scl.c (scm_intexpt): 0^0 ==> 1.
* Transcen.scm, Init5e1.scm (infinite?, finite?): Added.
* scl.c (makdbl, init_scl): Don't bother with scm_narn for MSC.
(scm_finitep): Removed to Transcen.scm and Init5e1.scm.
* scm.h (scm_narn): Renamed from infi.
* r4rstest.scm (SECTION 6 5 5): Restored 0^0 test.
* hobbit.scm (*c-keywords*): absval --> scm_abs; magnitude -->
scm_magnitude.
* rope.c, scm.c, scm.texi, scmmain.c, script.c, socket.c: Added
const to argv.
* scmmain.c, scm.h, scm.c, rope.c, repl.c: Added const decls.
* build.scm (build:command): Comment to script: [-p <platform>].
* Makefile (turfiles): Added turtle-graphics files.
* Makefile (DOSCM): Abstracted DOS zip creation.
* unexelf.c: Imported from emacs-22.0.50 to fix FC4 build.
* differ.c (diff_mid_split): Unused `m' argument removed.
* scm.spec (slibpath, dumparch): Added.
From: Steve VanDevender
* scmfig.h (SHORT_INT, CDR_DOUBLES): For __x86_64 (AMD Opteron).
From: Thomas Bushnell
* scm.doc, scm.1: Corrected spelling errors.
-=-=-
SCM source is available from:
http://swissnet.ai.mit.edu/ftpdir/scm/scm5e2.zip
swissnet.ai.mit.edu:/pub/scm/scm5e2.zip
http://swissnet.ai.mit.edu/ftpdir/scm/scm-5e2-1.src.rpm
swissnet.ai.mit.edu:/pub/scm/scm-5e2-1.src.rpm
Also available as i386 binary RPM:
http://swissnet.ai.mit.edu/ftpdir/scm/scm-5e2-1.i386.rpm
swissnet.ai.mit.edu:/pub/scm/scm-5e2-1.i386.rpm
SLIB is a portable Scheme library which SCM uses:
http://swissnet.ai.mit.edu/ftpdir/scm/slib3a3.zip
swissnet.ai.mit.edu:/pub/scm/slib3a3.zip
Also available as RPM:
http://swissnet.ai.mit.edu/ftpdir/scm/slib-3a3-1.noarch.rpm
swissnet.ai.mit.edu:/pub/scm/slib-3a3-1.noarch.rpm
JACAL is a symbolic math system written in Scheme:
http://swissnet.ai.mit.edu/ftpdir/scm/jacal1b6.zip
swissnet.ai.mit.edu:/pub/scm/jacal1b6.zip
SLIB-PSD is a portable debugger for Scheme (requires emacs editor):
http://swissnet.ai.mit.edu/ftpdir/scm/slib-psd1-3.tar.gz
swissnet.ai.mit.edu:/pub/scm/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
swissnet.ai.mit.edu:/pub/scm/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
swissnet.ai.mit.edu:/pub/scm/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
swissnet.ai.mit.edu:/pub/scm/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
swissnet.ai.mit.edu:/pub/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/wb1c2.zip
swissnet.ai.mit.edu:/pub/scm/wb1c2.zip
http://swissnet.ai.mit.edu/ftpdir/scm/wb-1c2-1.src.rpm
swissnet.ai.mit.edu:/pub/scm/wb-1c2-1.src.rpm
Also available as i386 binary RPM:
http://swissnet.ai.mit.edu/ftpdir/scm/wb-1c2-1.i386.rpm
swissnet.ai.mit.edu:/pub/scm/wb-1c2-1.i386.rpm
SIMSYNCH is a digital logic simulation system written in SCM.
http://swissnet.ai.mit.edu/ftpdir/scm/synch1b0.zip
swissnet.ai.mit.edu:/pub/scm/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 (314k) is a SCM executable for DOS and MS-Windows.
Note: SCM.EXE still requires slib3a3 and scm5e2 above.
http://swissnet.ai.mit.edu/ftpdir/scm/scm.exe
swissnet.ai.mit.edu:/pub/scm/scm.exe
#! implements "#!" (POSIX) shell-scripts for MS-DOS batch files.
http://swissnet.ai.mit.edu/ftpdir/scm/sharpbang.zip
swissnet.ai.mit.edu:/pub/scm/sharpbang.zip
http://swissnet.ai.mit.edu/ftpdir/scm/#!.zip
swissnet.ai.mit.edu:/pub/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
|