Hi,

underspecified <underspecif...@gmail.com> writes:

> Under chicken 3.4.0, I have noticed that I can make chicken-setup enter
> into an infinite loop by telling it to fetch, but not install the http egg.
> I posit that the cause is a circular dependency somewhere among http's
> many dependencies, because eggs like rss with simpler dependencies
> do not loop.

The dependency tree in this case looks like:

    http (regex-case url openssl)
      regex-case ()
      url (coerce uri)
        coerce (miscmacros misc-extn)
          miscmacros ()
          misc-extn (stack miscmacros)
            stack ()
        uri (coerce miscmacros synch lookup-table)
          synch ()
          lookup-table (miscmacros misc-extn)
      openssl ()

There's no circular dependency (that would arguably be a bug
in the eggs themselves, though chicken-setup should try to
handle it gracefully), just some diamond inheritance, but it
turns out the bug is triggered for any egg with any
dependencies.

I've checked in a simple fix which conditions out running
"install" on downloaded dependencies when -fetch is being
used.

Note this ugly mess has been rewritten in the upcoming
Chicken 4 and the setup program renamed to chicken-install.

Note also that the "http" egg also has an improved version
in Chicken 4 called "intarweb" :)

-- 
Alex


_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to