370 lines
14 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ikarus Scheme</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<div id="mainPan">
<div id="topPan">
<div id="topcontactPan">
<div id="headerPan">
<ul class="leftmenu">
<li class="Solutions">Ikarus</li>
<li><a href="../psyntax/r6rs-libraries/">psyntax</a></li>
<li><a href="#">Downloads</a></li>
<li><a href="#">Roadmap</a></li>
<li><a href="#">Development</a></li>
<li><a href="#">Changes</a></li>
<li><a href="#">License</a></li>
<div id="bodyPan">
<div id="leftPan">
<li><a href="#about"><span>About Ikarus</span></a></li>
<li><a href="#whatsnew"><span>What's New</span></a></li>
<li><a href="#requirements"><span>Requirements</span></a></li>
<li><a href="#documentation"><span>Documentation</span></a></li>
<li><a href="#downloads"><span>Downloads</span></a></li>
<!-- <li><a href="#roadmap"><span>Roadmap</span></a></li> -->
<li><a href="#development"><span>Development</span></a></li>
<li><a href="#history"><span>History</span></a></li>
<li><a href="#license"><span>License</span></a></li>
<div id="rightPan">
<h1 id="about">About Ikarus:</h1>
<p> Ikarus Scheme is a free optimizing incremental native-code compiler
for Scheme as specified in the <a href="http://www.r6rs.org/">Revised^6
Report on the Algorithmic Language Scheme</a>.</p>
<p> Ikarus Scheme is free to download, to distribute, to modify, and to
redistribute. The complete source is available according to the GNU
General Public License (GPL3).</p>
<p> Ikarus Scheme is an optimizing compiler, so your Scheme code will
run fast without the need to port hot spots to C "for performance".
With an incremental compiler, you don't need a separate compilation step
to make your program run fast. The best part is that the compiler
itself is fast, capable of compiling thousands of lines of code per
<p> Finally, Ikarus Scheme is an R6RS compiler. R6RS is the latest
revision of the Scheme standard. The current release of Ikarus supports
over 94% of the most important features R6RS, and later releases will
bring Ikarus closer to full R6RS conformance. R6RS libraries, scripts,
record types, condition system, exception handling, unicode strings,
bytevectors, hashtable, and enumerations are among the supported
<h1 id="whatsnew">What's new</h1>
<p>The 0.0.3 release of Ikarus brings the following improvements:</p>
<li>System usability: When Ikarus encounters a syntactic error (either
during reading or during macro expansion), error messages now contain
the file name and character position at which the error occurred.
Previously, you got a context-free error.</li>
<li> Better Unicode support: Ikarus's ports are now properly
classified into either binary or textual ports (previously, they
supported mixed character and byte input/output). The UTF8 and Latin1
codecs are now fully supported for both input and output
<li> Better R6RS conformance: The 0.0.3 release adds 28 new R6RS
primitives, bringing us to 94% of the total R6RS forms and
<p> Additionally, many existing primitives have been improved (either on
the performance front or on generating better error messages), along
with some improvements to the compiler itself. See
<a href="https://launchpad.net/ikarus/+milestone/0.0.3">https://launchpad.net/ikarus/+milestone/0.0.3</a> for details.</p>
<p>The 0.0.2 release advances Ikarus in many directions:</p>
<li>The Ikarus compiler is faster. Just when I thought the bootstrap
time was acceptable (11 seconds on my MacBook), this new release
bootstraps in under 7 seconds despite the many added features. The
"compiler" benchmark (11700 lines) now compiles in 3 seconds down from
10. The "slatex" benchmark (2350 lines) compiles in about 1/3 of a
<li>Not only is the compiler faster, it also generates faster code.
Floating-point intensive programs now get a huge performance boost
(the run-time for the "ray", "pnpoly", and "mbrot" benchmarks is
reduced by about 30%, "fibfp" and "sumfp" run at about 50% of the time
recorded in 0.0.1).</li>
<li>An infrastructure for adding user-contributed code has been added.
In 0.0.2, Ikarus distributes three R6RS libraries from the reference
implementation of SRFI-41 (streams). More libraries will be added as
they become available. Thanks to Phil Bewig for taking the initiative
in producing R6RS SRFIs.</li>
<li>Ikarus now supports 90% of R6RS, up from 80% in the 0.0.1
release. Future releases will bring it closer to full R6RS
<li>Numerous other improvements and bug fixes (thanks to all who
submitted bug reports and suggestions for improvements). The 0.0.2
milestone page lists some of the resolved issues. See
<a href="https://launchpad.net/ikarus/+milestone/0.0.2">https://launchpad.net/ikarus/+milestone/0.0.2</a> for details.</li>
<h1 id="requirements">System Requirements</h1>
<p> Ikarus runs on the IA-32 (x86) architecture
supporting SSE2 extensions. This includes the Athlon 64,
Sempron 64, and Turion 64 processors from AMD and the Pentium 4, Xeon,
Celeron, Pentium M, Core, and Core2 processors from Intel. The
system does not run on Intel Pentium III or earlier
<p> The Ikarus compiler generates SSE2 instructions to handle Scheme's
IEEE floating point representation (flonums) for inexact
numbers. Note that Ikarus is a 32-bit system even on 64-bit
architecutres. On 64-bit Mac OS X or Linux, special compatibility
packages may need to be installed if they are not installed already.
Refer to the user's guide for a detailed list of requirements and
installation instructions.</p>
<h3> Operating Systems: </h3>
<p>Ikarus is tested under the following operating systems:</p>
<li> Mac OS X version 10.4 and 10.5 </li>
<li> Linux 2.6.18 (Debian, Fedora, Gentoo, and Ubuntu).</li>
<li> FreeBSD version 6.2 </li>
<li> NetBSD version 3.1 </li>
<li> Microsoft Windows XP (using Cygwin 1.5.24).</li>
<h3> Additional Software: </h3>
Ikarus uses the GNU Multiple Precision Arithmetic
Library (GMP) for some bignum arithmetic operations. To build
Ikarus from scratch, GMP version 4.2 or better must be installed
along with the required header files. Pre-built GMP packages are
available for most operating systems. Alternatively, GMP can be
downloaded from <a href="http://gmplib.org/">http://gmplib.org/</a>.
The GNU C Compiler is required to build the Ikarus
executable (e.g. the garbage collector, loader, and OS-related
runtime). GCC versions 4.1 and 4.2 were successfully used to build
Ikarus. </li>
<h1 id="documentation">Documentation</h1>
<h3>Ikarus Scheme User's Guide</h3>
<p> A preliminary version of the Ikarus Scheme User's Guide is
available in PDF format. The guide contains: </p>
<li> Hardware and software requirements </li>
<li> Installation instructions </li>
<li> An R6RS crash course </li>
<li> Description of some of the features provided in
the <tt>(ikarus)</tt> library</li>
<li> List of additional user-provided libraries (e.g., SRFIs, GUIs,
etc.) and where to obtain them from.
<li> Limitations and missing features </li>
<p> Download
<a href="ikarus-scheme-users-guide.pdf">ikarus-scheme-users-guide.pdf</a>
(253734 bytes) released on February 2, 2008.</p>
<h3>R6RS (local copy)</h3>
Local mirror of the R6RS documents in PDF format are available:
<li><a href="//standards.scheme.org/official/r6rs.pdf">r6rs.pdf</a> (858815 bytes)</li>
<li><a href="//standards.scheme.org/official/r6rs-lib.pdf">r6rs-lib.pdf</a> (629868 bytes)</li>
<li><a href="//standards.scheme.org/official/r6rs-rationale.pdf">r6rs-rationale.pdf</a> (284718 bytes)</li>
<li><a href="//standards.scheme.org/official/r6rs-app.pdf">r6rs-app.pdf</a> (124571 bytes)</li>
<h1 id="downloads">Downloads</h1>
The official release of Ikarus is for download in
<tt>.tar.gz</tt> format. The tarball contains the following:
<li> The complete source code of the Ikarus C runtime system
(garbage collector, boot loader, and foreign procedures).</li>
<li> The complete source code of the Ikarus Scheme runtime
system (expander, compiler, assembler, printer, and the rest
of the R6RS standard libraries), written in R6RS Scheme + Ikarus
<li> An initial boot image for bootstrapping Ikarus from
its sources.</li>
<li> The User's Guide, in PDF and Latex format.</li>
<li> Additional contributed libraries (SRFIs, etc).</li>
<li> Code for 60 R6RS benchmarks that we use periodically to monitor
the progress of Ikarus.</li>
<p> Download
<a href="//files.scheme.org/ikarus-0.0.3.tar.gz">ikarus-0.0.3.tar.gz</a>
(3948264 bytes) released on February 2, 2008.</p>
<h3>Release Candidates for 0.0.3</h3>
<p> The release of 0.0.3 is pending completion of some missing sections
from the user's guide. The current release candidate is available for
download. Please let us know if you have any problems compiling
it. For more information about this release, please visit the
<a href="https://launchpad.net/ikarus/+milestone/0.0.3">0.0.3 milestone</a>
Download the current release candidate
<a href="ikarus-0.0.3-rc1.tar.gz">ikarus-0.0.3-rc1.tar.gz</a>
(3940682 bytes) released January 29, 2008.
Older release candidates:
<a href="ikarus-0.0.2-rc1.tar.gz">ikarus-0.0.2-rc1.tar.gz</a>
(4242461 bytes) released November 23, 2007.
<h3>Previous Releases </h3>
<li><a href="//files.scheme.org/ikarus-0.0.2.tar.gz">ikarus-0.0.2.tar.gz</a>
(3838888 bytes) released on November 29, 2007.</p>
<li><a href="//files.scheme.org/ikarus-0.0.1.tar.gz">ikarus-0.0.1.tar.gz</a>
(1776182 bytes) released on October 31, 2007.</li>
<!-- <h1 id="roadmap">Roadmap</h1> -->
<h1 id="development">Development</h1>
<p> Development of Ikarus is continuing. To access the master
repository, you need the
<a href="http://bazaar-vcs.org/">Bazaar revision control system</a>.
<p> A development snapshot of the repository can be obtained by performing a
<i>lightweight checkout</i>. To do so, type:</p>
$ bzr checkout --lightweight /ikarus.dev
<p> To retreive a specific revision from the repository
(say revision 10), do:</p>
$ bzr checkout --lightweight -r 10 /ikarus.dev
<p>Note that the full repository is huge (around 560MB) and is
typically not needed for developing with Ikarus.</p>
<p> To checkout a copy of the entire repository,
type the following: </p>
$ bzr checkout /ikarus.dev
Or, from the mirror repository (updated every 5 hours):
$ bzr checkout http://bazaar.launchpad.net/~aghuloum/ikarus/ikarus.dev
<p>To submit bug reports and feature requests, please
visit: <a href="https://launchpad.net/ikarus/">Launchpad's Ikarus Scheme</a>
<h1 id="history">History</h1>
<li> Release 0.0.3 announced on February 2, 2008.</p>
<li> Release 0.0.2 announced on November 29, 2007. </li>
<li> Initial public release announced on October 31, 2007. </li>
<h1 id="license">License</h1>
<p>The following license applies to all of ikarus and its
source files unless otherwise stated.</p>
Ikarus Scheme -- A compiler for R6RS Scheme.
Copyright (C) 2006,2008 Abdulaziz Ghuloum
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 3 as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;<a class="pre" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;
<div id="footermainPan">
<div id="footerPan">
<li><a href="#about">Ikarus</a> | </li>
<li><a href="../psyntax/r6rs-libraries/">psyntax</a></li>
<div id="footerPanhtml"><a href="http://validator.w3.org/check?uri=referer" target="_blank">XHTML</a></div>
<div id="footerPancss"><a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank">css</a></div>
<ul class="templateworld">
<li>original design by: Template World</li>