| Author |
Determining installed Scheme systems
|
|
| feeley@IRO.UMontreal.ca 2006-12-05, 7:03 pm |
| I have written a shell script which determines on a Unix box which
Scheme systems are available and the version of the system that is
installed. The script is here:
http://www.iro.umontreal.ca/~feeley/conf . A sample output of the
script is shown below.
I would appreciate it if people tried it out on their workstation for
various distributions of Unix and informed me of any problems. I'm
particularly interested in:
1) knowing the result of the script when run on unmodified
distributions of Unix (i.e. which implementations are already
installed),
2) knowing which popular Scheme systems I have left out and how the
version number of those systems can be retrieved,
3) knowing which modifications to the script will allow it to detect
older versions of the Scheme implementations.
Please post the results to this thread to avoid duplicating work.
Marc
% ./conf
Searching for the Scheme systems available:
Bigloo 2.9a -> /u/feeley/schemes/bigloo/bin/bigloo
Chez Scheme 7.1 -> /u/feeley/schemes/csv7.1/bin/chez-scheme
Chicken 2.5 -> /u/feeley/schemes/chicken/bin/csi
Chicken 2.5 (compiler) -> /u/feeley/schemes/chicken/bin/csc
Gambit 4.0 beta 20 -> /u/feeley/schemes/gambit/current/bin/gsi
Gambit 4.0 beta 20 (compiler) ->
/u/feeley/schemes/gambit/current/bin/gsc
Gauche 0.8.8 -> /u/feeley/schemes/gauche/bin/gosh
Guile 1.6.7 -> /usr/bin/guile
Kawa 1.8 -> /u/feeley/schemes/kawa/bin/kawa
Larceny 0.93 -> /u/feeley/schemes/larceny/larceny
MIT/GNU Scheme 7.7.90.+ ->
/u/feeley/schemes/mit-scheme/bin/mit-scheme
MzScheme 360 -> /u/feeley/schemes/mzscheme/bin/mzscheme
Petite Chez Scheme 7.1 -> /u/feeley/schemes/csv7.1/bin/petite
Scheme48 1.3 -> /u/feeley/schemes/scheme48/bin/scheme48
SCM 5e3 -> /u/feeley/schemes/scm/scm
Scsh 0.6.7 -> /u/feeley/schemes/scsh/bin/scsh
SISC 1.16.5 -> /u/feeley/schemes/sisc/sisc
STklos 0.82 -> /u/feeley/schemes/stklos/bin/stklos
Systems: bigloo chez chicken gambit gauche guile kawa larceny mit
mzscheme petite scheme48 scm scsh sisc stklos
| |
| Jeffrey Mark Siskind 2006-12-05, 7:03 pm |
| Running on Debian Etch with the debian packages for chicken and
drscheme installed:
qobi@tlamachilistli>/tmp/conf
Searching for the Scheme systems available:
Error: invalid option: "-release"
Chicken -> /usr/bin/csi
csc: invalid option `-release'
Chicken (compiler) -> /usr/bin/csc
MzScheme 352 -> /usr/bin/mzscheme
Systems: mzscheme
qobi@tlamachilistli>
The script does not detect Stalin.
| |
| Eric Hanchrow 2006-12-05, 7:03 pm |
| Debian Etch:
$ sh /tmp/conf
Searching for the Scheme systems available:
Bigloo 2.8a -> /usr/local/bin/bigloo
Error: invalid option: "-release"
Chicken -> /usr/local/bin/csi
Chicken 2.315 (compiler) -> /usr/local/bin/csc
Gauche 0.8.6 -> /usr/bin/gosh
Guile 1.6.7 -> /usr/bin/guile
MIT/GNU Scheme 7.7.90.+ -> /usr/bin/mit-scheme
error writing to stream port (Broken pipe; errno=32)
MzScheme 360.2 -> /usr/local/bin/mzscheme
Petite Chez Scheme 7.1 -> /usr/local/bin/petite
Scheme48 1.3 -> /usr/local/bin/scheme48
Scsh 0.6.7 -> /usr/local/bin/scsh
Systems: bigloo gauche guile mit mzscheme petite scheme48 scsh
--
I think that novels that leave out technology misrepresent
life as badly as Victorians misrepresented life by leaving out
sex.
-- Kurt Vonnegut, Jr.
| |
| feeley@IRO.UMontreal.ca 2006-12-05, 7:03 pm |
| Thanks for your comments. I have changed the way Chicken's version
number is extracted and I have added the detection for Stalin. Please
try the script again. It's at the same place.
Marc
Jeffrey Mark Siskind wrote:
> Running on Debian Etch with the debian packages for chicken and
> drscheme installed:
>
> qobi@tlamachilistli>/tmp/conf
> Searching for the Scheme systems available:
> Error: invalid option: "-release"
> Chicken -> /usr/bin/csi
> csc: invalid option `-release'
> Chicken (compiler) -> /usr/bin/csc
> MzScheme 352 -> /usr/bin/mzscheme
>
> Systems: mzscheme
> qobi@tlamachilistli>
>
> The script does not detect Stalin.
| |
| Alex Shinn 2006-12-05, 10:03 pm |
| feeley@IRO.UMontreal.ca writes:
> 1) knowing the result of the script when run on unmodified
> distributions of Unix (i.e. which implementations are already
> installed),
SISC output includes a carriage return on my system. The
following modification strips it out:
SISC_VERSION="`$SISC_PROGRAM -v | head -1 | sed -e "s/.*
\([-_.0-9a-zA-Z]*\).*/\1/"`"
> 2) knowing which popular Scheme systems I have left out and how the
> version number of those systems can be retrieved,
ksi is a nice interpreter:
strelka:~$ ksi -v | head -1 | sed -e 's/.* //g'
3.4.2
as is tiny-scheme:
strelka:~$ echo | tiny-scheme | head -1 | sed -e 's/.* //g'
1.33
jscheme may or may not be worth supporting:
strelka:~$ echo | jscheme 2>&1 | head -3 | tail -1 | sed -e 's/[^ ]*
\([^ ]*\) .*/\1/'
7.0
strelka:~$ uname -a
Linux strelka 2.6.6 #5 SMP Wed Jun 30 18:38:16 JST 2004 i686 GNU/Linux
strelka:~$ ./scheme-conf
Searching for the Scheme systems available:
Bigloo 2.8c -> /usr/local/bin/bigloo
Chicken 2.5 -> /usr/local/bin/csi
Chicken (compiler) -> /usr/local/bin/csc
Gambit 40067 -> /usr/local/bin/gsi
Gambit (compiler) -> /usr/local/bin/gsc
Gauche 0.8.8 -> /usr/local/bin/gosh
Guile 1.6.8 -> /usr/bin/guile
Kawa 1.7.90 -> /usr/local/bin/kawa
Larceny 0.93 -> /usr/local/bin/larceny
MIT/GNU Scheme 7.7.90.+ -> /usr/bin/mit-scheme
MzScheme 350 -> /usr/local/bin/mzscheme
Petite Chez Scheme 6.9c -> /usr/local/bin/petite
Scheme48 1.3 -> /usr/local/bin/scheme48
SCM 5e2 -> /usr/bin/scm
Scsh 0.6.7 -> /usr/bin/scsh
SISC 1.16.5 -> /usr/local/bin/sisc
Stalin 0.10 -> /usr/local/bin/stalin
STklos 0.81 -> /usr/local/bin/stklos
Systems: bigloo chicken gambit gauche guile kawa larceny mit mzscheme
petite scheme48 scm scsh sisc stalin stklos
--
Alex
| |
| Kjetil S. Matheussen 2006-12-06, 4:23 am |
|
On Tue, 5 Dec 2006, feeley@IRO.UMontreal.ca wrote:
> I have written a shell script which determines on a Unix box which
> Scheme systems are available and the version of the system that is
> installed. The script is here:
> http://www.iro.umontreal.ca/~feeley/conf . A sample output of the
> script is shown below.
>
> I would appreciate it if people tried it out on their workstation for
> various distributions of Unix and informed me of any problems. I'm
> particularly interested in:
>
> 1) knowing the result of the script when run on unmodified
> distributions of Unix (i.e. which implementations are already
> installed),
>
Running Gentoo linux. No schemes are installed by default.
> 2) knowing which popular Scheme systems I have left out and how the
> version number of those systems can be retrieved,
>
> 3) knowing which modifications to the script will allow it to detect
> older versions of the Scheme implementations.
>
> Please post the results to this thread to avoid duplicating work.
>
"
kjetil@ttleush ~/brenn $ sh conf
Searching for the Scheme systems available:
Enhanced3DNow! detected
Enhanced3DNow! detected
(snd:1437): Gtk-CRITICAL **: _gtk_accel_group_attach: assertion `g_slist_find (accel_group->acceleratables, object) == NULL' failed
(snd:1437): Gtk-CRITICAL **: _gtk_accel_group_attach: assertion `g_slist_find (accel_group->acceleratables, object) == NULL' failed
(snd:1437): Gtk-CRITICAL **: _gtk_accel_group_attach: assertion `g_slist_find (accel_group->acceleratables, object) == NULL' failed
(snd:1437): Gtk-CRITICAL **: _gtk_accel_group_attach: assertion `g_slist_find (accel_group->acceleratables, object) == NULL' failed
(snd:1437): Gtk-CRITICAL **: _gtk_accel_group_attach: assertion `g_slist_find (accel_group->acceleratables, object) == NULL' failed
Some deprecated features have been used. Set the environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information. Set it to "no" to suppress
this message.
Guile 1.6.7 -> /usr/bin/guile
Scheme48 1.3 -> /usr/bin/scheme48
Systems: guile scheme48
"
The final result is correct, but all the noise is because the script
(for some reason) started /home/kjetil/bin/scheme, which is a link to the
sound editor snd (which has guile embedded).
I had to manually quit snd before the script continued.
| |
| Thomas Hafner 2006-12-06, 4:23 am |
| Searching for the Scheme systems available:
Chicken 2.5 -> /usr/local/bin/csi
Chicken (compiler) -> /usr/local/bin/csc
Gambit 4.0 beta 20 -> /usr/local/bin/gsi
Gambit (compiler) -> /usr/local/bin/gsc
Gauche 0.8.7 -> /usr/local/bin/gosh
Guile 1.6.8 -> /usr/bin/guile
SCM 5e1 -> /usr/bin/scm
Systems: chicken gambit gauche guile scm
| |
| Christoph Breitkopf 2006-12-06, 8:12 am |
| The script does not work on Solaris, because which(1) writes
its error message to stdout:
bash-2.05$ which gsi
no gsi in /usr/bin . /opt/SMAW/bin /opt/SMAW/sbin /opt/SMAW/SMAWtssv/tele/bin /usr/local/bin /opt/oracle/product/9.2.0/bin /usr/X/bin
bash-2.05$ which gsi 2> /dev/null
no gsi in /usr/bin . /opt/SMAW/bin /opt/SMAW/sbin /opt/SMAW/SMAWtssv/tele/bin /usr/local/bin /opt/oracle/product/9.2.0/bin /usr/X/bin
Regards,
Chris
| |
| Abdulaziz Ghuloum 2006-12-06, 8:12 am |
| Christoph Breitkopf wrote:
> The script does not work on Solaris, because which(1) writes
> its error message to stdout:
>
> bash-2.05$ which gsi
> no gsi in /usr/bin . /opt/SMAW/bin /opt/SMAW/sbin /opt/SMAW/SMAWtssv/tele/bin /usr/local/bin /opt/oracle/product/9.2.0/bin /usr/X/bin
> bash-2.05$ which gsi 2> /dev/null
> no gsi in /usr/bin . /opt/SMAW/bin /opt/SMAW/sbin /opt/SMAW/SMAWtssv/tele/bin /usr/local/bin /opt/oracle/product/9.2.0/bin /usr/X/bin
Same for OSX. If which always produces "no foo in ...", then the
following might work better:
STALIN_PROGRAM="`which stalin 2>&1 | grep -v \"^no stalin in \"`"
if [ "$STALIN_PROGRAM" != "" ] ; then
STALIN_VERSION="`$STALIN_PROGRAM -version`"
echo " Stalin" $STALIN_VERSION "->" $STALIN_PROGRAM
fi
....
Aziz,,,
| |
| Michael Piotrowski 2006-12-06, 8:12 am |
| On 2006-12-06, Christoph Breitkopf <chris@chr-breitkopf.de> wrote:
> The script does not work on Solaris, because which(1) writes
> its error message to stdout:
The POSIX way is to use "command -v" [1]. which(1) is historical and
quite unpredictable.
BTW, on my system:
$ uname -sr
NetBSD 3.0.2
$ ./conf
Searching for the Scheme systems available:
Bigloo 2.7a -> /opt/bigloo/bin/bigloo
MzScheme 301 -> /opt/mzscheme/bin/mzscheme
Systems: bigloo mzscheme
Greetings
Footnotes:
[1] <http://www.opengroup.org/onlinepubs...es/command.html>
--
Michael Piotrowski, M.A. <mxp@dynalabs.de>
Public key at <http://www.dynalabs.de/mxp/pubkey.txt>
| |
| Kjetil S. Matheussen 2006-12-06, 8:12 am |
|
On Wed, 6 Dec 2006, Kjetil S. Matheussen wrote:
>
> The final result is correct, but all the noise is because the script (for
> some reason) started /home/kjetil/bin/scheme, which is a link to the sound
> editor snd (which has guile embedded).
>
I use that link instead of setting the inferior scheme variable in my
..emacs file. I guess I could be the only one doing it that way, but maybe
not.
| |
| Jeffrey Mark Siskind 2006-12-11, 7:18 pm |
| I also have Scheme->C installed (sci and scc) which the script does not
detect.
| |
| Emilio Lopes 2006-12-11, 7:18 pm |
| feeley writes:
> I have written a shell script which determines on a Unix box which
> Scheme systems are available and the version of the system that is
> installed. [...]
It fails to detect different versions of the *same* implementation.
Whatever is found first in the path, it's taken. This might or might
not be an issue for your purposes.
On the positive side, it does detect an older version of Scheme48:
~% PATH=/usr/local/packages/scheme48-0.53/bin:$PATH bash ./conf
Searching for the Scheme systems available:
MIT/GNU Scheme 7.7.90 -> /usr/bin/mit-scheme
MzScheme 360 -> /usr/local/bin/mzscheme
Scheme48 0.53 -> /usr/local/packages/scheme48-0.53/bin/scheme48
Scsh 0.6.7 -> /usr/local/bin/scsh
Systems: mit mzscheme scheme48 scsh
--
Emílio C. Lopes
Munich, Germany
|
|
|
|