Discussion:
Scheme 48 1.9 available
Michael Sperber
2013-01-22 17:28:26 UTC
Permalink
Version 1.9 of the Scheme 48 system is now available from the Scheme 48
home page:

http://www.s48.org/

Scheme 48 is a based on byte-code interpreter and comes with a module
system, an extensive set of libraries, an interactive command-line-based
development environment and a manual in various formats. Scheme 48 runs
on most Unix/Linux systems, as well as Windows NT, 2000, XP, and Vista,
and is fully R5RS-conformant.

The 1.9 release has been a long time in the making, and is a substantial
feature release, with help from many contributors. See the attached
release notes for details.

This release marks a change in direction (actually two
changes) for Scheme 48:

As most regular users of the system know, the system was originally
developed by Richard Kelsey and Jonathan Rees. I have handled the
releases of Scheme 48 since version 1.1, with the help of Martin
Gasbichler, Marcus Crestani and many other volunteers. We have tried to
make the system more oriented towards practical uses, and thus moved
away from Richard's and Jonathan's original goals for the system.
Nevertheless, we continued to release and distribute with Richard's and
Jonathan's names featured most prominently, as the number of
contributors and the amount of contributed code steadily increased.

Richard and Jonathan requested that we made the gradual change in
direction of the project explicit, which we are trying to do starting
with this release. The last release Richard and Jonathan handled was
0.57, and they created a 0.58 release that is a more appropriate
starting point for the subsequent releases. This release 0.58 is also
now available from the web site. Unfortunately, Richard, Jonathan, and
I were not able to reach an agreement on how to best handle changes made
since then, particularly on how to properly attribute contributions and
changes made to the system. I decided to do my best to accurately
credit contributors for each single file in the system. This involved a
lot of archeology: I'm more than happy to add credit where I dropped the
ball, and apologize for any inaccuracies I have introduced.

Also, the 1.9 release is also probably the last release handled by me
that is actually called "Scheme 48", as we are working on introducing
more major changes, among them R6RS support. (This may take a while
yet. I do not have much time to spend on Scheme 48 these days.) So
future releases along this line will have a name other than "Scheme 48".

Anyway, for now, here's Scheme 48 1.9. I appreciate the help of
numerous contributors who helped me pushing this out; the long delay,
however, is all my fault.

Enjoy!
--
Regards,
Mike
Jonathan Rees
2013-01-22 18:14:21 UTC
Permalink
- Commands ,show-known-packages, ,show-interface, and
,show-default-package were added to support SDT (Marcus Crestani,
Sebastian Rheinecker).
Probably too late to change now, but ,show-known-packages lists structures, not packages. Packages in scheme 48 are almost always anonymous - the package/structure distinction is an important part of the design. The name of the command ought to be: ,show-known-structures (or more precisely ,show-structures-in-config-package , which I assume is what it does).

(Yes, there are many commands with names of the form ,xxx-package that take structure names, but they only take structure names as an expedient, because there is usually no way to name a package. The meaning is usually: operate on the package that underlies the designated structure.)

Sorry I missed this on my earlier review; I neglected to read the new features list. If it's too late to change the command name, perhaps its documentation can at least be corrected in some future release.

Just curious, what is SDT and why is it playing with the command processor? I found no google hits for "SDT (Marcus Crestani,
Sebastian Rheinecker)".

Jonathan
Michael Sperber
2013-01-22 19:19:40 UTC
Permalink
Post by Jonathan Rees
Just curious, what is SDT and why is it playing with the command
processor? I found no google hits for "SDT (Marcus Crestani,
Sebastian Rheinecker)".
It's an Eclipse plugin for Scheme 48:

http://www.s48.org/sdt/
--
Regards,
Mike
Marcus Crestani
2013-01-23 12:47:22 UTC
Permalink
JR> The name of the command ought to be:
JR> ,show-known-structures (or more precisely
JR> ,show-structures-in-config-package , which I assume is what it does).

Thanks for catching this, we are going to fix this.
--
Marcus
gavino_learning
2013-01-23 20:48:14 UTC
Permalink
Post by Michael Sperber
Version 1.9 of the Scheme 48 system is now available from the Scheme 48
http://www.s48.org/
Scheme 48 is a based on byte-code interpreter and comes with a module
system, an extensive set of libraries, an interactive command-line-based
development environment and a manual in various formats. Scheme 48 runs
on most Unix/Linux systems, as well as Windows NT, 2000, XP, and Vista,
and is fully R5RS-conformant.
The 1.9 release has been a long time in the making, and is a substantial
feature release, with help from many contributors. See the attached
release notes for details.
This release marks a change in direction (actually two
As most regular users of the system know, the system was originally
developed by Richard Kelsey and Jonathan Rees. I have handled the
releases of Scheme 48 since version 1.1, with the help of Martin
Gasbichler, Marcus Crestani and many other volunteers. We have tried to
make the system more oriented towards practical uses, and thus moved
away from Richard's and Jonathan's original goals for the system.
Nevertheless, we continued to release and distribute with Richard's and
Jonathan's names featured most prominently, as the number of
contributors and the amount of contributed code steadily increased.
Richard and Jonathan requested that we made the gradual change in
direction of the project explicit, which we are trying to do starting
with this release. The last release Richard and Jonathan handled was
0.57, and they created a 0.58 release that is a more appropriate
starting point for the subsequent releases. This release 0.58 is also
now available from the web site. Unfortunately, Richard, Jonathan, and
I were not able to reach an agreement on how to best handle changes made
since then, particularly on how to properly attribute contributions and
changes made to the system. I decided to do my best to accurately
credit contributors for each single file in the system. This involved a
lot of archeology: I'm more than happy to add credit where I dropped the
ball, and apologize for any inaccuracies I have introduced.
Also, the 1.9 release is also probably the last release handled by me
that is actually called "Scheme 48", as we are working on introducing
more major changes, among them R6RS support. (This may take a while
yet. I do not have much time to spend on Scheme 48 these days.) So
future releases along this line will have a name other than "Scheme 48".
Anyway, for now, here's Scheme 48 1.9. I appreciate the help of
numerous contributors who helped me pushing this out; the long delay,
however, is all my fault.
Enjoy!
--
Regards,
Mike
NOTE IF YOU ARE BUILDING ON A MAC OS X: The C compilers shipped with the
current Xcode are buggy - compiling the system takes very long, and the
resulting binary is very slow. Either compile with -O0 with or get a
current binary version of LLVM + Clang from the LLVM Download page at
http://llvm.org/releases/download.html
Release notes for Scheme 48 1.9
1.1 Additions
--------------
- A new C FFI as added, thanks to Crestani, Harald Glab-Plhak. The
old one is still there but will eventually be phased out.
See Crestani's paper "Foreign-Function Interfaces for Garbage-Collected Programming Languages"
[http://www-pu.informatik.uni-tuebingen.de/users/crestani/publications/2008-sws-ffi.pdf]
- A new networking code layer was added with full support for IPv6,
UDP etc. (undocumented as of yet)
- Records now support single inheritance (accessible through the
r6rs-records packages)
- `letrec*' was added to the `scheme' structure
- A `r5rs' structure was added.
- A new condition system based on R6RS's system has replaced the old system.
- Some R6RS libraries were added (with help from Robert Ransom).
- A statistical profiler was added (Marcel Turino, Manuel Dietrich) -
check the documentation for details.
- TLC tables (`eq?' tables) were added by Marcus Crestani and David Frese.
- The module system warns on cycles and redefinitions
- When the VM is compiled with GNU C, it uses direct threading for
instruction dispatch, which speeds up the VM noticeably (done by
Timo Harter)
- The reader for a structure is configurable (again).
- SRFI 19 now works on Windows
- `list-spine{,-cycle-safe}[*%]' sequence macros were added to `reduce'
structure by Robert Ransom
- The Windows build can be done via a Boo script (contributed by
Robert Ransom)
- The unquote and unquote-splicing were generalized to several
operands, in line with R6RS.
- Commands ,show-known-packages, ,show-interface, and
,show-default-package were added to support SDT (Marcus Crestani,
Sebastian Rheinecker).
- `placeholder-value' now accepts a `deadlock?' argument that says
whether blocking on the placeholder contributes to deadlock.
- Most source files now carry author information.
- A document =doc/deriving.txt= was added that clarifies how works
derived from Scheme 48 should be labelled.
1.2 Changes
------------
- The BIBOP GC was heavily debugged and is now considered stable - it
is enabled by default.
- The system builds on Windows Visual Studio Express 2010 instead of
Visual Studio 2005.
- The BIBOP GC code was simplified significantly.
- The `syntax-rules' implementation was rewritten by Richard Kelsey
- Some structures were added to the POSIX subsystem
(`posix-errnos', `posix-syslog')
- Various procedures were added to the POSIX structures by Roderic
Morris to support scsh.
- The autoconf code was reorganized by Ivan Shmakov.
- The REPL now prints values without quotes and auto-capitalization of
record-type names.
- The Makefile now builds the documentation upon `make install'.
(This requires a working LaTeX installation and tex2page.) A target
`install-no-doc' is available that does not.
- The license information was clarified.
- The external-events API was changed to fix a design bug; it now
correctly accomodates "fire-once" applications such as
wait-`for-child-process' (with help from Robert Ransom, Roderic
Morris).
1.3 Bug fixes
--------------
- Many.
awesome!
will scsh follow?
sunet?

You mentioned a new direction? What will it be?
Michael Sperber
2013-01-25 07:14:36 UTC
Permalink
Post by gavino_learning
will scsh follow?
I believe the scsh people have already been working on the basis of of
the development code that has been released as 1.9, but don't know the
exact status.
Post by gavino_learning
sunet?
I already ported some of it, mainly what's needed for ftpd to run. Help
with completing the port would be appreciated:

http://www.s48.org/cgi-bin/hgwebdir.cgi/sunet/
Post by gavino_learning
You mentioned a new direction? What will it be?
It just means steering Scheme 48 more towards practical applications.
The next big concrete step is R6RS support.
--
Regards,
Mike
Roderic Morris
2013-01-27 15:28:41 UTC
Permalink
This is awesome Mike, thanks for the release!
Post by Michael Sperber
Post by gavino_learning
will scsh follow?
I believe the scsh people have already been working on the basis of of
the development code that has been released as 1.9, but don't know the
exact status.
I'll be looking into making a release in the next few weeks. Not having an officially packaged s48 1.9 was our biggest blocker for distribution.

-Roderic

Loading...