Hi Neil, On Mon 30 Mar 2009 13:43, Neil Jerram <n...@ossau.uklinux.net> writes:
> Andy Wingo <wi...@pobox.com> writes: > >> Hey Guilers, > > Hi Andy, > > In summary, I'm not sure I'm following the logic here... > >> The recent commit to compile with the stack calibration file, >> 7ca96180f00800414a9cf855e5ca4dceb9baca07, breaks compilation because the >> compile scripts have hash-bang lines like this: >> >> #!/bin/sh >> # -*- scheme -*- >> exec ${GUILE-guile} -e '(@ (scripts compile) compile)' -s $0 "$@" >> !# > > FWIW, I think this kind of incantation is really horrible. Ditto for > usage of "guile-tools ...". What kind of a scripting language is it > that needs to be bootstrapped by a different language? Dunno. While guile-tools should probably be written in Scheme, it doesn't bother me. The strange invocation stuff is just to get around posix's #! limitations -- it should be: #!/usr/bin/env guile -e .... but we all know the problem with that. As far as needing the -e clause, it's so we can (use-modules (scripts compile)) in addition to being able to run it as a script. Not that I use that feature, but it is interesting. >> Also, it is a bit irritating to have to load a file just so Guile won't >> be broken (exaggerated wording, but I think that's what it is.) > > I think you may be misunderstanding. stack-limit-calibration.scm > should make precisely 0 difference on the "canonical build platform" - > which in practice means ia32 GNU/Linux. ia32 GNU/Linux is sometimes broken -- for example, build it with -O0, and things often don't work at all. > stack-limit-calibration.scm is all about scaling down/up the hardcoded > value for a non-canonical platform that might use more or less stack > on average than the canonical platform - e.g. because it has fewer > registers, because its pointers are twice the size (ia64) etc. > The primary purpose of stack-limit-calibration.scm is to allow "make > check" to succeed on those platforms, and it now makes sense to > generalize that to any other guile-using operations that we run during > the build - such as compiling. You want to actually use Guile after it's installed too of course, and in those cases stack-calibration.scm doesn't help you. I think I explained my perspective as well as I can in the other mail -- perhaps we can follow that part of the discussion there? Andy -- http://wingolog.org/