Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#1171 closed defect (fixed)

combinatorics: the trick to conditionally include setup-helper-cock doesn't work

Reported by: Mario Domenech Goulart Owned by: Peter Danenberg
Priority: major Milestone: someday
Component: extensions Version: 4.9.x
Keywords: combinatorics Cc:
Estimated difficulty:


The error message is here:

It's probably caused by

(handle-exceptions exn
  (warning "Not generating documentation")
  (include "setup-helper-cock")
  (run-cock -o combinatorics-core.scm))

in combinatorics.setup

Change History (12)

comment:1 Changed 9 years ago by Peter Danenberg

Resolution: fixed
Status: newclosed

Hmm; tried using the run-cock macro directly and setup-helper-cock from cock itself. Passes salmonella locally.

comment:2 Changed 9 years ago by Mario Domenech Goulart

This issue is a bit tricky. As far as I understand, setup-helper-cock does the same as setup-helper used to do: it "manually" copies a file to chicken-home, which is in CHICKEN's include path. That approach is not ideal, for at least these reasons:

  1. since setup-helper-cock.scm is not installed by install-extension, there's no trace about its installation anywhere, so chicken-uninstall does not remove it if you run "chicken-uninstall setup-helper-cock"
  1. when installing eggs into a private repository (like salmonella does), CHICKEN's core tools do not create a private chicken-home. So, chicken-home is kinda global. That means salmonella cannot simply remove it. So, once files are installed into chicken-home, they will permanently pollute the test environment. The current code in salmonella's master branch ( does the best it can at the moment: it prints a big warning about the existence of Scheme files in chicken-home, which can affect tests.

Thus, there's not much salmonella can do about it. Arguably, the fact the chicken-home is in the include path is a CHICKEN issue.

With regard to the actual issue with combinatorics, it probably works on your system because you do have setup-helper-cock installed. If you don't specify setup-helper-cock in .meta's dependencies forms, combinatorics' installation will fail badly in case the user doesn't have setup-helper-cock installed (we had a hard time debugging a similar issue related to kvlists a couple of weeks ago). The real fix would be adding setup-helper-cock to combinatorics' dependencies form.

With regard to setup-helper-cock, a better approach would be not installing files in chicken-home, for the reasons mentioned above. AFAIK, the problematic approach has been deprecated by setup-helper.

comment:3 Changed 9 years ago by Peter Danenberg

I wasn't sure why I had to resort to the strange (include "setup-helper") idiom, since (use setup-helper-mod) worked fine; I remove the chicken-home from cock altogether and simply define run-cock in the cock egg, which I include via (use cock).

It seems to install locally; the test is whether it doesn't induce failure in eggs in systems where cock-utils isn't installed.

The reason that there exist two eggs, cock and cock-utils, is that cock-utils is a heavy egg with lots of dependencies that I don't want to force on users who don't intend to generate documentation; cock is just a reader-macro and setup-utility.

Anyway, let's see if this works.

comment:4 Changed 9 years ago by Peter Danenberg

Can you reopen this, Mario, if this doesn't work?

comment:5 Changed 9 years ago by Mario Domenech Goulart

Resolution: fixed
Status: closedreopened

We've had some breakage today:

I don't know exactly the causes. In any case, I'm reopening this ticket, since combinatorics seems to be affected.

comment:6 Changed 9 years ago by Peter Danenberg

I've removed setup-helper-cock from the affected eggs; and used the `use' form.

I also removed a dependency on debug, which was also affected.

We'll have to wait until tomorrow to see if there are more breakages?

comment:7 Changed 9 years ago by Mario Domenech Goulart

Yes. The next results should be available in ~13h.

comment:8 Changed 9 years ago by Peter Danenberg

I don't see anything interesting from today's diff; on the other hand, many eggs are listed as broken despite the fact that I've removed any reference to setup-helper-cock: <>.

Maybe I'll wait another day to close the ticket.

comment:9 Changed 9 years ago by Mario Domenech Goulart

Thanks. Looks like things are getting into shape again:

Now there are only three eggs breaking (probably not related to the topic of this ticket, but since we are here... :-)):

aima depends on R, so it breaks too.

comment:10 Changed 9 years ago by Peter Danenberg

Made some changes; let's see what happens tomorrow.

comment:11 Changed 9 years ago by Mario Domenech Goulart

Resolution: fixed
Status: reopenedclosed

comment:12 Changed 9 years ago by Peter Danenberg

Ok; thanks, Mario!

Note: See TracTickets for help on using tickets.