Red Hat Bugzilla – Bug 367121
Review Request: ikarus - An incremental optimizing compiler for R6RS Scheme
Last modified: 2007-12-03 23:48:06 EST
Spec URL: http://salimma.fedorapeople.org/for_review/ikarus/ikarus.spec
SRPM URL: http://salimma.fedorapeople.org/for_review/ikarus/ikarus-0.0.1-1.fc8.src.rpm
Ikarus is a free optimizing incremental native-code compiler for R6RS Scheme.
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 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
This builds fine and rpmlint is silent. I still don't see the point in an
i386-only program these days, but that's upstream's decision.
One thing is immediately obvious:
/usr/bin/ikarus.boot: /usr/bin/ikarus.boot: cannot execute binary file
This file must not be installed in /usr/bin and it shouldn't be executable in
any case. I know that's upstream's behavior, but it's entirely unacceptable.
Possibilities include making /usr/bin/ikarus a shell script that passes -b (but
you'd have to take care to do the right thing if someone manually passes -b) or
to simply patch src/ikarus-main.c to default to /usr/lib/ikarus/ikarus.boot
instead of searching through PATH for it.
Other than that, this package is OK, and I'd approve it if the above.
* source files match upstream:
* package meets naming and versioning guidelines.
* specfile is properly named, is cleanly written and uses macros consistently.
* summary is OK.
* description is OK.
* dist tag is present.
* build root is OK.
* license field matches the actual license.
* license is open source-compatible.
* license text included in package.
* latest version is being packaged.
* BuildRequires are proper.
* compiler flags are appropriate.
* %clean is present.
* package builds in mock (rawhide, i386).
* package installs properly
* debuginfo package looks complete.
* rpmlint is silent.
* final provides and requires are sane:
ikarus = 0.0.1-1.fc9
* %check is not present; no test suite upstream. The package seems to run well
enough, although I don't really know enough scheme to do much more than
(+ 1 1)
which does give "2" as expected.
* no shared libraries are added to the regular linker search paths.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
X permissions on ikarus.boot are not correct (and it's in the wrong place
* no scriptlets present.
* code, not content.
* documentation is small, so no -docs subpackage is necessary.
* %docs are not necessary for the proper functioning of the package.
* no headers.
* no pkgconfig files.
* no static libraries.
* no libtool .la files.
Ah, didn't know there is a %check macro for RPM. Will look into adding that, but
meanwhile, I'll update the package to move ikarus.boot. It's a point that's been
raised with upstream already, but I'll just move the file manually for now.
FYI, %check isn't a macro, it's a section, like %build or %install. Usually you
run "make test" there, or whatever is needed to kick off the test suite.
Post-dinner terminology slip, sorry. Please find the updated package below.
Thanks for the suggestion!
Looks better; my only issue now is whether ikarus.boot needs to be executable.
But since it's not in /usr/bin, this isn't that important.
Don't forget to file all of the tracking tickets for the architectures you've
Ah yes, will fix that for the official build. Everything still works when
ikarus.boot is not +x.
New Package CVS Request
Package Name: ikarus
Short Description: An incremental optimizing compiler for R6RS Scheme
Branches: F-7 F-8 EL-5
Cvsextras Commits: no
ikarus-0.0.1-3.fc8 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update ikarus'
Is there any reason to keep this ticket open?
No; was planning on having it be automatically closed when the testing package
enters stable, but it can be closed now. Thanks.
Yeah, sorry, I hadn't actually intended to close it. Clicked all the buttons
and then changed my mind and erased the text box but forgot to put everything