Bug 367121 - Review Request: ikarus - An incremental optimizing compiler for R6RS Scheme
Summary: Review Request: ikarus - An incremental optimizing compiler for R6RS Scheme
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Jason Tibbitts
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2007-11-05 17:42 UTC by Michel Alexandre Salim
Modified: 2007-12-04 04:48 UTC (History)
2 users (show)

Fixed In Version: 0.0.1-4
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2007-12-03 23:29:14 UTC
tibbs: fedora-review+
kevin: fedora-cvs+

Attachments (Terms of Use)

Description Michel Alexandre Salim 2007-11-05 17:42:10 UTC
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

Comment 1 Jason Tibbitts 2007-11-18 22:37:40 UTC
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:
  > ikarus.boot
  /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.

Comment 2 Michel Alexandre Salim 2007-11-19 00:54:19 UTC
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.

Comment 3 Jason Tibbitts 2007-11-19 01:09:08 UTC
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.

Comment 4 Michel Alexandre Salim 2007-11-19 01:36:56 UTC
Post-dinner terminology slip, sorry. Please find the updated package below.
Thanks for the suggestion!


Comment 5 Jason Tibbitts 2007-11-19 02:09:59 UTC
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

Comment 6 Michel Alexandre Salim 2007-11-19 07:18:20 UTC
Ah yes, will fix that for the official build. Everything still works when
ikarus.boot is not +x.

Comment 7 Michel Alexandre Salim 2007-11-19 07:21:09 UTC
New Package CVS Request
Package Name: ikarus
Short Description: An incremental optimizing compiler for R6RS Scheme
Owners: salimma
Branches: F-7 F-8 EL-5
Cvsextras Commits: no

Comment 8 Kevin Fenzi 2007-11-19 16:26:13 UTC
cvs done.

Comment 9 Fedora Update System 2007-11-20 17:45:42 UTC
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'

Comment 10 Jason Tibbitts 2007-12-03 23:29:14 UTC
Is there any reason to keep this ticket open?

Comment 11 Michel Alexandre Salim 2007-12-04 02:21:38 UTC
No; was planning on having it be automatically closed when the testing package
enters stable, but it can be closed now. Thanks.

Comment 12 Jason Tibbitts 2007-12-04 04:48:06 UTC
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
else back.

Note You need to log in before you can comment on or make changes to this bug.