Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ANN] Initial release of Ikarus--the compiler of choice for R6RS hackers

205 views
Skip to first unread message

Abdulaziz Ghuloum

unread,
Oct 31, 2007, 6:45:11 AM10/31/07
to
[Apologies if you've received multiple copies of this announcement]

It is my pleasure to announce the availability of the initial
release of Ikarus (version 0.0.1).

Ikarus is a free optimizing incremental native-code compiler for
R6RS Scheme.

Ikarus 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 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 is an R6RS compiler. R6RS is the latest revision
of the Scheme standard. The preliminary release of Ikarus
supports over 80% of the most important features of 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.

The main purpose behind releasing Ikarus early is to give Scheme
programmers the opportunity to experiment with the various new
features that were introduced in R6RS. It is my hope that this
release will encourage the Scheme community to write and to
share their most useful R6RS libraries.

For more information, and to download the current release of
Ikarus and the Ikarus Scheme User's Guide, please visit:
http://www.cs.indiana.edu/~aghuloum/ikarus/index.html

No software is perfect and this is especially true for the first
releases. To report problems, bugs, and inconsistencies, or to
ask general questions about Ikarus, please email me directly or
visit the Ikarus page on Launchpad: http://launchpad.net/ikarus/

Thank you very much.

Aziz,,,

Raffael Cavallaro

unread,
Nov 1, 2007, 7:40:30 PM11/1/07
to
On 2007-10-31 06:45:11 -0400, Abdulaziz Ghuloum
<aghu...@cee.ess.dot.indiana.dot.edu> said:

> Ikarus is free to download, to distribute, to modify, and to
> redistribute. The complete source is available according to the
> GNU General Public License (GPL3).

Does code compiled with Ikarus need some sort of runtime library? If
so, is that runtime library also GPL3?

Eric Hanchrow

unread,
Nov 1, 2007, 8:27:19 PM11/1/07
to
>>>>> "Raffael" == Raffael Cavallaro <raffaelcavallaro@pas-d'espam-s'il-vous-plait-mac.com> writes:

Raffael> Does code compiled with Ikarus need some sort of runtime
Raffael> library? If so, is that runtime library also GPL3?

I suspect the issue is moot, since afaik, ikarus doesn't generate
standalone executables; instead you just type "icarus filename.ss".

--
When a cryptographer and a symbologist get together, it
usually ends in tears.
A. O. Scott, reviewing 'The Da Vinci Code' in the New York Times

Abdulaziz Ghuloum

unread,
Nov 1, 2007, 11:15:26 PM11/1/07
to

Ikarus is ikarus's runtime library. As with most lisp and scheme
systems, your program depends on the implementation's runtime
system to do useful work. For example, the code for cons, map,
append, etc. are all in the ikarus runtime system, which would
have to be distributed with any application.

Having said that, I don't think the GPL applies to programs that
*you* write and you can distribute Ikarus with your programs
without your program having to be licensed under the GPL:

"This License (GPL3) explicitly affirms your (Raffael's)
unlimited permission to run the unmodified Program (Ikarus).
The output from running a covered work is covered by this
License only if the output, given its content, constitutes
a covered work"

I don't see how Ikarus's output (say a compiled object) can be
considered derived work.

"You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise
remains in force."

That says that you can distribute Ikarus with your application
as long as the GPL, on Ikarus, remains in force. You are not
allowed to change Ikarus's license, and you are not allowed to
deny your users access to Ikarus's code, along with any other
modifications that you may make to Ikarus.

"A compilation of a covered work (Ikarus)
with other separate and independent works (your program),
* which are not by their nature extensions of the covered
work (no additional compiler passes),
* and which are not combined with it such as to form a
larger program (use ikarus as the runtime of your
application but do not link the two to make a single
executable),
in or on a volume of a storage or distribution medium,
is called an “aggregate” if the compilation and its resulting
copyright are not used to limit the access or legal rights of
the compilation's users beyond what the individual works
permit."

More importantly:

"Inclusion of a covered work in an aggregate does not cause
this License to apply to the other parts of the aggregate."

Having said all of that, I acknowledge that I am not a lawyer
and the above is my understanding of the GPL. If you write
a program, commercial or otherwise, under a license that is
not GPL compatible, you should either:
(a) find yourself a lawyer who can determine whether and how
you are allowed to use the specific GPL software in your
product,
or (b) seek exemptions or alternative licensing terms from the
copyright holders of the GPL software you use in your
product.


Having said that too, you probably won't go to court before
making your first few million dollars, and if you do make your
few million dollars in software, you'll probably be going to
court anyways, and most probably for patent infringements and
not GPL infringements.

So, my advise: write your code now, worry later.

Aziz,,,

Abdulaziz Ghuloum

unread,
Nov 1, 2007, 11:23:53 PM11/1/07
to
Eric Hanchrow wrote:
>>>>>> "Raffael" == Raffael Cavallaro <raffaelcavallaro@pas-d'espam-s'il-vous-plait-mac.com> writes:
>
> Raffael> Does code compiled with Ikarus need some sort of runtime
> Raffael> library? If so, is that runtime library also GPL3?
>
> I suspect the issue is moot, since afaik, ikarus doesn't generate
> standalone executables; instead you just type "icarus filename.ss".

It does produce compiled objects for libraries and scripts.
It's just that I have not yet made the interface for doing
so publicly available (there are some API design issues that
need to be resolved first). So, the question would arise,
sooner or later.

Aziz,,,

Raffael Cavallaro

unread,
Nov 2, 2007, 5:49:24 PM11/2/07
to
On 2007-11-01 23:15:26 -0400, Abdulaziz Ghuloum
<aghu...@cee.ess.dot.indiana.dot.edu> said:

[snip]

> "A compilation of a covered work (Ikarus)
> with other separate and independent works (your program),
> * which are not by their nature extensions of the covered
> work (no additional compiler passes),

I think this is a potential sticking point. After all, any programs
that cannot run without the Ikarus runtime could easily be construed by
the FSF to be "by their nature extensions of the covered work."

> * and which are not combined with it such as to form a
> larger program (use ikarus as the runtime of your
> application but do not link the two to make a single
> executable),
> in or on a volume of a storage or distribution medium,
> is called an “aggregate” if the compilation and its resulting
> copyright are not used to limit the access or legal rights of
> the compilation's users beyond what the individual works
> permit."

[snip]

> Having said that too, you probably won't go to court before
> making your first few million dollars, and if you do make your
> few million dollars in software, you'll probably be going to
> court anyways, and most probably for patent infringements and
> not GPL infringements.

Yes, we all hate software patents, but what matters here is whether a
work compiled with Ikarus and requiring the Ikarus runtime in order to
execute would be required to itself be licensed under GPLv3 or less
restrictive terms.

George Neuner

unread,
Nov 3, 2007, 1:39:55 AM11/3/07
to
On Fri, 2 Nov 2007 17:49:24 -0400, Raffael Cavallaro
<raffaelcavallaro@pas-d'espam-s'il-vous-plait-mac.com> wrote:

>On 2007-11-01 23:15:26 -0400, Abdulaziz Ghuloum
><aghu...@cee.ess.dot.indiana.dot.edu> said:
>
>[snip]
>
>> "A compilation of a covered work (Ikarus)
>> with other separate and independent works (your program),
>> * which are not by their nature extensions of the covered
>> work (no additional compiler passes),
>
>I think this is a potential sticking point. After all, any programs
>that cannot run without the Ikarus runtime could easily be construed by
>the FSF to be "by their nature extensions of the covered work."

GPL3 considers the program to be GPL'd if it is linked to a GPL'd
component for execution. Only operating system libraries are
specifically excepted.

I'm not a lawyer, but IMO there is some wiggle room in FSF's
definition of "linked" as it applies to loosely coupled modules - ie.
dynamic libraries accessed using dlsym() or GetProcAddress().

But a language runtime library is too closely coupled - even though it
may not be "linked" in the "software build" sense - to the
application. A GPL'd runtime lib would most definitely be considered
infectious. The runtime would have to LGPL'd to avoid infecting the
application.


>> * and which are not combined with it such as to form a
>> larger program (use ikarus as the runtime of your
>> application but do not link the two to make a single
>> executable),
>> in or on a volume of a storage or distribution medium,
>> is called an “aggregate” if the compilation and its resulting
>> copyright are not used to limit the access or legal rights of
>> the compilation's users beyond what the individual works
>> permit."

George
--
for email reply remove "/" from address

0 new messages