chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Egg <-> Chicken version compatibility


From: Alaric Snell-Pym
Subject: [Chicken-users] Egg <-> Chicken version compatibility
Date: Fri, 19 Aug 2011 14:08:01 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Thunderbird/3.1.11

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hello!

Having a spare lunch hour, I started to set myself up to do some Ugarit
hacking on my new work laptop. I quickly ran "sudo apt-get install
chicken-bin" and a fresh 4.5.0 appeared in my path, so I ran off and
tried to run my new ugarit test suite...

...only for it to die on trying to install tiger-hash, due to:


installing message-digest: ...
changing current directory to /tmp/chicken-install-31.tmp/message-digest
  /usr/bin/csi -bnq -setup-mode -e "(require-library setup-api)" -e
"(import setup-api)" -e "(extension-name-and-version
'(\"message-digest\" \"\"))"
/tmp/chicken-install-31.tmp/message-digest/message-digest.setup
  /usr/bin/csc -feature compiling-extension -setup-mode
message-digest.scm -shared -optimize-leaf-routines -inline -unboxing
- -output-file message-digest.so -emit-import-library message-digest
- -scrutinize -optimize-level 3 -debug-level 1
- -no-procedure-checks-for-toplevel-bindings -no-bound-checks
csc: invalid option `-no-procedure-checks-for-toplevel-bindings'

shell command failed with nonzero exit status 16384:

  /usr/bin/csc -feature compiling-extension -setup-mode
message-digest.scm -shared -optimize-leaf-routines -inline -unboxing
- -output-file message-digest.so -emit-import-library message-digest
- -scrutinize -optimize-level 3 -debug-level 1
- -no-procedure-checks-for-toplevel-bindings -no-bound-checks

Error: shell command terminated with nonzero exit code
17920

Looks like the message-digest egg passes
- -no-procedure-checks-for-toplevel-bindings to csc, which this old
version of it doesn't like.

Now, there's several easy fixes to that (I'm compiling a more recent
chicken from git as we speak), but it's a bad precedent IMHO that people
might install chicken from their system package manager and then find
they can't run Chicken apps. I'd like to be able to confidently say
"Wanna use Ugarit? Install chicken then type 'chicken-setup -s ugarit'
and you're away!" rather than expect people to install from source or
from funny packages.

In this case, I think that optimisation flags should all be ignored by
csc if it doesn't understand them.

Perhaps that would require optimisation flags being marked as such so
they can be differentiated from less optional flags; that might be no
bad thing anyway from a "keeping the flag namespace clean" perspective,
if a messy change to go through.

We've had other problems with problems due to moving things around in
the core chicken libraries, too.

I think, overally, we all need to think more about backwards and
forwards compatibility when we change the chicken core, so that eggs can
work reliably on older versions without needing too many version
conditionals!

ABS

- --
Alaric Snell-Pym
http://www.snell-pym.org.uk/alaric/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk5OYDEACgkQRgz/WHNxCGrKvQCgjmZJPhN7BWmA+XKRC6aHewdY
pWIAn0ewJghNLA7zePapPToLLHZ4Y03s
=ed5i
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]