Ikarus
--
-
- About Ikarus -
- What's New -
- Requirements -
- Documentation -
- Downloads - -
- Development -
- History -
- License -
About Ikarus:
- -Ikarus Scheme is a free optimizing incremental native-code compiler - for Scheme as specified in the Revised^6 - Report on the Algorithmic Language Scheme.
- -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).
- -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 - second.
- -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 - features.
- -What's new
- -The 0.0.3 release of Ikarus brings the following improvements:
- --
-
-
- 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. - -
- 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 - directions. - -
- Better R6RS conformance: The 0.0.3 release adds 28 new R6RS - primitives, bringing us to 94% of the total R6RS forms and - procedures. - -
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 - https://launchpad.net/ikarus/+milestone/0.0.3 for details.
- -The 0.0.2 release advances Ikarus in many directions:
- --
-
-
- 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 - second. - -
- 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). - -
- 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. - -
- Ikarus now supports 90% of R6RS, up from 80% in the 0.0.1 - release. Future releases will bring it closer to full R6RS - conformance. - -
- 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 - https://launchpad.net/ikarus/+milestone/0.0.2 for details. - -
System Requirements
- -Hardware:
- -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 - processors.
- -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.
- -Operating Systems:
- -Ikarus is tested under the following operating systems:
--
-
- Mac OS X version 10.4 and 10.5 -
- Linux 2.6.18 (Debian, Fedora, Gentoo, and Ubuntu). -
- FreeBSD version 6.2 -
- NetBSD version 3.1 -
- Microsoft Windows XP (using Cygwin 1.5.24). -
Additional Software:
- --
-
- GMP: - 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 http://gmplib.org/. - -
- GCC: - 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. -
Documentation
- -Ikarus Scheme User's Guide
-A preliminary version of the Ikarus Scheme User's Guide is - available in PDF format. The guide contains:
--
-
- Hardware and software requirements -
- Installation instructions -
- An R6RS crash course -
- Description of some of the features provided in - the (ikarus) library -
- List of additional user-provided libraries (e.g., SRFIs, GUIs, - etc.) and where to obtain them from. -
- Limitations and missing features -
Download - ikarus-scheme-users-guide.pdf - (253734 bytes) released on February 2, 2008.
- -R6RS (local copy)
- Local mirror of the R6RS documents in PDF format are available: --
-
- r6rs.pdf (858815 bytes) -
- r6rs-lib.pdf (629868 bytes) -
- r6rs-rationale.pdf (284718 bytes) -
- r6rs-app.pdf (124571 bytes) -
Downloads
- -- The official release of Ikarus is for download in - .tar.gz format. The tarball contains the following: -
--
-
- The complete source code of the Ikarus C runtime system - (garbage collector, boot loader, and foreign procedures). -
- 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 - extensions. -
- An initial boot image for bootstrapping Ikarus from - its sources. -
- The User's Guide, in PDF and Latex format. -
- Additional contributed libraries (SRFIs, etc). -
- Code for 60 R6RS benchmarks that we use periodically to monitor - the progress of Ikarus. -
Download - ikarus-0.0.3.tar.gz - (3948264 bytes) released on February 2, 2008.
- - - - - -Previous Releases
--
-
- ikarus-0.0.2.tar.gz - (3838888 bytes) released on November 29, 2007. -
- ikarus-0.0.1.tar.gz - (1776182 bytes) released on October 31, 2007. -
Development
- - - -Development of Ikarus is continuing. To access the master - repository, you need the - Bazaar revision control system. -
- -A development snapshot of the repository can be obtained by performing a - lightweight checkout. To do so, type:
-- $ bzr checkout --lightweight http://ikarus-scheme.org/ikarus.dev -- -
To retreive a specific revision from the repository - (say revision 10), do:
-- $ bzr checkout --lightweight -r 10 http://ikarus-scheme.org/ikarus.dev -- - -
Note that the full repository is huge (around 560MB) and is - typically not needed for developing with Ikarus.
- -To checkout a copy of the entire repository, - type the following:
- -- $ bzr checkout http://ikarus-scheme.org/ikarus.dev -- Or, from the mirror repository (updated every 5 hours): -
- $ bzr checkout http://bazaar.launchpad.net/~aghuloum/ikarus/ikarus.dev -- + + + + + + + + + + + +
Ikarus
+-
+
- About Ikarus +
- What's New +
- Requirements +
- Documentation +
- Downloads + +
- Development +
- History +
- License +
About Ikarus:
+ +Ikarus Scheme is a free optimizing incremental native-code compiler + for Scheme as specified in the Revised^6 + Report on the Algorithmic Language Scheme.
+ +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).
+ +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 + second.
+ +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 + features.
+ +What's new
+ +The 0.0.3 release of Ikarus brings the following improvements:
+ +-
+
+
- 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. + +
- 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 + directions. + +
- Better R6RS conformance: The 0.0.3 release adds 28 new R6RS + primitives, bringing us to 94% of the total R6RS forms and + procedures. + +
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 + https://launchpad.net/ikarus/+milestone/0.0.3 for details.
+ +The 0.0.2 release advances Ikarus in many directions:
+ +-
+
+
- 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 + second. + +
- 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). + +
- 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. + +
- Ikarus now supports 90% of R6RS, up from 80% in the 0.0.1 + release. Future releases will bring it closer to full R6RS + conformance. + +
- 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 + https://launchpad.net/ikarus/+milestone/0.0.2 for details. + +
System Requirements
+ +Hardware:
+ +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 + processors.
+ +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.
+ +Operating Systems:
+ +Ikarus is tested under the following operating systems:
+-
+
- Mac OS X version 10.4 and 10.5 +
- Linux 2.6.18 (Debian, Fedora, Gentoo, and Ubuntu). +
- FreeBSD version 6.2 +
- NetBSD version 3.1 +
- Microsoft Windows XP (using Cygwin 1.5.24). +
Additional Software:
+ +-
+
- GMP: + 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 http://gmplib.org/. + +
- GCC: + 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. +
Documentation
+ +Ikarus Scheme User's Guide
+A preliminary version of the Ikarus Scheme User's Guide is + available in PDF format. The guide contains:
+-
+
- Hardware and software requirements +
- Installation instructions +
- An R6RS crash course +
- Description of some of the features provided in + the (ikarus) library +
- List of additional user-provided libraries (e.g., SRFIs, GUIs, + etc.) and where to obtain them from. +
- Limitations and missing features +
Download + ikarus-scheme-users-guide.pdf + (253734 bytes) released on February 2, 2008.
+ +R6RS (local copy)
+ Local mirror of the R6RS documents in PDF format are available: +-
+
- r6rs.pdf (858815 bytes) +
- r6rs-lib.pdf (629868 bytes) +
- r6rs-rationale.pdf (284718 bytes) +
- r6rs-app.pdf (124571 bytes) +
Downloads
+ ++ The official release of Ikarus is for download in + .tar.gz format. The tarball contains the following: +
+-
+
- The complete source code of the Ikarus C runtime system + (garbage collector, boot loader, and foreign procedures). +
- 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 + extensions. +
- An initial boot image for bootstrapping Ikarus from + its sources. +
- The User's Guide, in PDF and Latex format. +
- Additional contributed libraries (SRFIs, etc). +
- Code for 60 R6RS benchmarks that we use periodically to monitor + the progress of Ikarus. +
Download + ikarus-0.0.3.tar.gz + (3948264 bytes) released on February 2, 2008.
+ + + + + +Previous Releases
+-
+
- ikarus-0.0.2.tar.gz + (3838888 bytes) released on November 29, 2007. +
- ikarus-0.0.1.tar.gz + (1776182 bytes) released on October 31, 2007. +
Development
+ + + +Development of Ikarus is continuing. To access the master + repository, you need the + Bazaar revision control system. +
+ +A development snapshot of the repository can be obtained by performing a + lightweight checkout. To do so, type:
++ $ bzr checkout --lightweight /ikarus.dev ++ +
To retreive a specific revision from the repository + (say revision 10), do:
++ $ bzr checkout --lightweight -r 10 /ikarus.dev ++ + +
Note that the full repository is huge (around 560MB) and is + typically not needed for developing with Ikarus.
+ +To checkout a copy of the entire repository, + type the following:
+ ++ $ bzr checkout /ikarus.dev ++ Or, from the mirror repository (updated every 5 hours): +
+ $ bzr checkout http://bazaar.launchpad.net/~aghuloum/ikarus/ikarus.dev ++
Development snapshots are available at ikarus.dev.
- -To submit bug reports and feature requests, please - visit: Launchpad's Ikarus Scheme - project.
- -History
- --
-
- Release 0.0.3 announced on February 2, 2008. -
- Release 0.0.2 announced on November 29, 2007. -
- Initial public release announced on October 31, 2007. -
License
- -The following license applies to all of ikarus and its - source files unless otherwise stated.
--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 -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -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 <http://www.gnu.org/licenses/> -- - -
To submit bug reports and feature requests, please + visit: Launchpad's Ikarus Scheme + project.
+ +History
+ +-
+
- Release 0.0.3 announced on February 2, 2008. +
- Release 0.0.2 announced on November 29, 2007. +
- Initial public release announced on October 31, 2007. +
License
+ +The following license applies to all of ikarus and its + source files unless otherwise stated.
++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 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +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 <http://www.gnu.org/licenses/> ++ + +