For Programmers: Free Programming Magazines  


Home > Archive > Scheme > December 2006 > Determining installed Scheme systems









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

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
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com