[CM] CMN - straight flag problem in sbcl?

andersvi@extern.uio.no andersvi@extern.uio.no
Wed, 21 Mar 2007 10:30:25 +0100


--=-=-=

>>>>> "BS" == Bill Sack <bsack23@gmail.com> writes:

    BS> hello cm people, i'm a long-time cmn user and just started
    BS> using it with sbcl 1.0.1 - is it possible that the patch
    BS> Anders suggested back in 2002 for displaying slanted, straight
    BS> flags doesn't work with sbcl? i ask because i looked at the
    BS> code in cmn2.lisp:

The problem is sbcl's loop which, possibly following the standards?,
doesnt accept a negative step-value.

(loop for a from 1 to 0 by -0.1 collect a)
=> throws an error, whereas

(loop for a downfrom 1 to 0 by 0.1 collect a)
=> (1 0.9 0.79999995 0.6999999 ...)

heres a version which uses #'do instead:


--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=draw-flags.cl
Content-Transfer-Encoding: base64

KGRlZnVuIGRyYXctZmxhZ3MgKHNjb3JlIG5vdGUgbmZsYWdzIHVwLXN0ZW0gc3RlbS1lbmQgeDAp
CiAgOzsgdGhpcyBzdGlsbCBpc24ndCBwZXJmZWN0IC0tIHRoZSBpbml0aWFsIGZsYWcgc2VlbXMg
dG8gYmUgb2Zmc2V0IHRvIHRoZSBsZWZ0IGJ5IGhhbGYtc3RlbS13aWR0aD8KICAobGV0KiAoKHkw
IChpZiAobm90IHNob3J0ZXItc3RlbXMpCgkJICgrIHN0ZW0tZW5kIChpZiB1cC1zdGVtIC0uMSAu
MDUpKQoJCSBzdGVtLWVuZCkpCgkgKGluY3IgKGlmIHVwLXN0ZW0gKC0gKmZsYWctdmVydGljYWwt
c3BhY2luZyopICpmbGFnLXZlcnRpY2FsLXNwYWNpbmcqKSkKCSAobnkwIChpZiAobm90IHNob3J0
ZXItc3RlbXMpCgkJICAoKyBzdGVtLWVuZCAoKiBpbmNyIG5mbGFncykgKGlmIHVwLXN0ZW0gLjEg
LS4xNzUpKQoJCSAgKCsgc3RlbS1lbmQgKCogaW5jciAoMS0gbmZsYWdzKSkpKSkpCiAgICAoaWYg
KG1lbWJlciAobm90ZS1oZWFkIG5vdGUpICpjZW50ZXJlZC1ub3RlLWhlYWRzKikKCShpbmNmIHgw
ICgtIChub3RlLWhlYWQteDAtb2Zmc2V0IG5vdGUgdXAtc3RlbSAqaGFsZi1zdGVtLXdpZHRoKikg
KmhhbGYtc3RlbS13aWR0aCopKQogICAgICAgIDs7IC0+IChjbW4gdHJlYmxlIGM1IHMpCgkoaWYg
KGFuZCB1cC1zdGVtICpjdXJ2eS1mbGFncyopCgkgICAgKGluY2YgeDAgKG5vdGUtaGVhZC14MC1v
ZmZzZXQgbm90ZSB1cC1zdGVtICpzdGVtLXdpZHRoKikpKSkKICAgIChpZiAqY3VydnktZmxhZ3Mq
CgkocHJvZ24KCSAgKGlmIHVwLXN0ZW0KCSAgICAgIChzaG93IHNjb3JlIGZsYWctdXAgOm1hdHJp
eCAodHJhbnNsYXRlLW1hdHJpeCBzY29yZSBub3RlIHgwIG55MCkpCgkgICAgICAoc2hvdyBzY29y
ZSBmbGFnLWRvd24gOm1hdHJpeCAodHJhbnNsYXRlLW1hdHJpeCBzY29yZSBub3RlIHgwIG55MCkp
KQoJICAjLShvciBnY2wgc2JjbCkJICAobG9vcCBmb3IgaSBmcm9tIDEgYmVsb3cgbmZsYWdzIGFu
ZCB5IGZyb20geTAgYnkgaW5jciBkbwoJCQkJCShpZiB1cC1zdGVtCgkJCQkJICAgIChzaG93IHNj
b3JlIGFkZC1mbGFnLXVwIDptYXRyaXggKHRyYW5zbGF0ZS1tYXRyaXggc2NvcmUgbm90ZSB4MCB5
KSkKCQkJCQkgICAgKHNob3cgc2NvcmUgYWRkLWZsYWctZG93biA6bWF0cml4ICh0cmFuc2xhdGUt
bWF0cml4IHNjb3JlIG5vdGUgeDAgeSkpKSkKCSAgIysob3IgZ2NsIHNiY2wpICAgICAoZG8gKChp
IDEgKDErIGkpKQoJCQkJICAgKHkgeTAgKCsgeSBpbmNyKSkpCgkJCQkgICgoPj0gaSBuZmxhZ3Mp
KQoJCQkJKGlmIHVwLXN0ZW0KCQkJCSAgICAoc2hvdyBzY29yZSBhZGQtZmxhZy11cCA6bWF0cml4
ICh0cmFuc2xhdGUtbWF0cml4IHNjb3JlIG5vdGUgeDAgeSkpCgkJCQkgICAgKHNob3cgc2NvcmUg
YWRkLWZsYWctZG93biA6bWF0cml4ICh0cmFuc2xhdGUtbWF0cml4IHNjb3JlIG5vdGUgeDAgeSkp
KSkKCSAgKQoKCTs7IGFsbCB0aGUgLjMncyBiZWxvdyBhcmUgcHJvYmFibHkgd3JvbmcgZm9yIHVu
dXN1YWwgbm90ZSBoZWFkcyBvciBub3RlIGhlYWQgc2l6ZXMKCShsZXQqICgoYngwICgrIHgwIChp
ZiB1cC1zdGVtICgtIC4zICpoYWxmLXN0ZW0td2lkdGgqKSAqaGFsZi1zdGVtLXdpZHRoKikpKSA7
IC4zPWhlYWQgc2l6ZQoJICAgICAgIChieTAgKGlmIHVwLXN0ZW0gKC0gc3RlbS1lbmQgKmJlYW0t
d2lkdGgqKSBzdGVtLWVuZCkpKQoJICAjLShvciBnY2wgc2JjbCkKCSAgKGxvb3AgZm9yIGkgZnJv
bSAwIGJlbG93IG5mbGFncyBhbmQgeSBmcm9tIGJ5MCBieSBpbmNyIGRvCgkJKG1vdmV0byBzY29y
ZSBieDAgeSkKCgkJOzsgdGhpcyB2ZXJzaW9uIGZyb20gQVYgNy1PY3QtMDIKCQkocmxpbmV0byBz
Y29yZSAqc3RyYWlnaHQtZmxhZy1keCogKGlmIHVwLXN0ZW0gKC0gKnN0cmFpZ2h0LWZsYWctZHkq
KSAqc3RyYWlnaHQtZmxhZy1keSopKQoJCShybGluZXRvIHNjb3JlIDAuMCAqYmVhbS13aWR0aCop
CgkJKGxpbmV0byBzY29yZSBieDAgKCsgeSAqYmVhbS13aWR0aCopKQoJCSAgCgkJOzsobGluZXRv
IHNjb3JlICgrIGJ4MCAuMykgeSkKCQk7OyhsaW5ldG8gc2NvcmUgKCsgYngwIC4zKSAoKyB5IC4x
KSkKCQk7OyhsaW5ldG8gc2NvcmUgYngwICgrIHkgLjEpKQoJCSAgCgkJKGxpbmV0byBzY29yZSBi
eDAgeSkKCQkoZmlsbC1pbiBzY29yZSkpCgkgICMrKG9yIGdjbCBzYmNsKQoJICAoZG8gKChpIDAg
KDErIGkpKQoJICAgICAgICh5IGJ5MCAoKyB5IGluY3IpKSkKCSAgICAgICgoPj0gaSBuZmxhZ3Mp
KQoJICAgIChtb3ZldG8gc2NvcmUgYngwIHkpCgkgICAgKHJsaW5ldG8gc2NvcmUgKnN0cmFpZ2h0
LWZsYWctZHgqIChpZiB1cC1zdGVtICgtICpzdHJhaWdodC1mbGFnLWR5KikgKnN0cmFpZ2h0LWZs
YWctZHkqKSkKCSAgICAocmxpbmV0byBzY29yZSAwLjAgKmJlYW0td2lkdGgqKQoJICAgIChsaW5l
dG8gc2NvcmUgYngwICgrIHkgKmJlYW0td2lkdGgqKSkKCgkgICAgOzsobGluZXRvIHNjb3JlICgr
IGJ4MCAuMykgeSkKCSAgICA7OyhsaW5ldG8gc2NvcmUgKCsgYngwIC4zKSAoKyB5IC4xKSkKCSAg
ICA7OyhsaW5ldG8gc2NvcmUgYngwICgrIHkgLjEpKQoKCSAgICAobGluZXRvIHNjb3JlIGJ4MCB5
KQoJICAgIChmaWxsLWluIHNjb3JlKSkKCSAgKSkpKQ==
--=-=-=


btw, what does the loop- standard say about this?

--=-=-=--