*ArneBab just saw this by chance and decided to pass it on <ArneBab>wouldn’t this merit doing a bugfix release? <mark_weaver>I'm planning to put together in 2.0.10 release in the next couple of weeks. <ArneBab>it’s one of those papercuts which keep people from using a release (and which should be easy to fix - if need be with manual tweaking of the release)… <ArneBab>(or is the release process more complex?) <mark_weaver>it doesn't affect normal GNU/Linux as I recall. only unusual systems like mingw. <ArneBab>(I’ve been looking around for ways to get guile on non-GNU/Linux systems, so I could use guile to write programs which most of my friends can actually use…) <mark_weaver>for MacOS X, there's homebrew and some others, which include recent Guile. <ArneBab>what I really miss is a way to just bundle guile in an app or exe: that’s how OSX/W32 people expect their programs. <mark_weaver>one of the missing pieces is to make guile relocatable in the filesystem. right now, we assume that the installation directory is a compile-time constant. <mark_weaver>although in practice I suspect it could be made to work as-is by setting the right environment variables, similar to what meta/uninstalled-env does. <ArneBab>(and then likely applying tons of polish…) <ArneBab>(I just realized that my comment could be taken as slander: it is not meant to be that. I just hit a few problems when I tried to get some other programs of mine to work on non-GNU systems, and that ends in lots of small stuff) <mark_weaver>ArneBab: no, not at all. I agree that we should make it easier to create cross-platform programs using Guile. <nalaginrut>mark_weaver: alas~each time when I see the long long exported list in Guile core, I feel the headache is coming... <davexunit>case uses eqv? to test KEY. this doesn't work well if your key is a symbol: (case 'a (('a) 5)) <davexunit>is it by design that symbols shouldn't be used in a case form? <nalaginrut>I think case should use symbols, I don't use ('a) but (a) <sneek>ijp was here Dec 12 at 07:47 pm UTC, saying: you mean the shivers essay. <mark_weaver>nalaginrut: thanks for helping davexunit with 'case'. you can't use case to compare against strings though, because 'eqv?' can't be used to compare strings. (for any mutable objects, 'eqv?' compares _identity_, not by contents) <mark_weaver>to dispatch based on the contents of compound objects, use 'match' instead. ***haroldwu is now known as haroldwu_afk
<taylanub><davexunit> case uses eqv? to test KEY. this doesn't work well if your key is a symbol: (case 'a (('a) 5)) <taylanub>I really dislike it how 'foo -> (quote foo) kind of messes up in situations like this, having somewhat unintuitive behavior. <taylanub>(In this case due to being quoted itself, resulting in the literal list (quote foo).) <taylanub>Another example is using it in a `syntax-rules' template and expecting it to match a literal, though perhaps that implies a more general misunderstanding of `sytnax-rules' templates. <civodul>taylanub: (ice-9 match) gets it right <taylanub>scheme@(guile-user)> (match '(foo bar baz) ((test *** 'baz) test)) <taylanub>$16 = (foo) ;is this a bug? (tested on 2.0.9.20-10454 and 2.0.9.97-b1fe) <civodul>"A pattern of the form @scheme{(x *** y)} represents the subpattern @var{y} located somewhere in a tree where the path from the current object to @var{y} can be seen as a list of the form @scheme{(x ...)}." <taylanub>Yeah, Info manual says it "binds `identifier' to the path leading to the object that matches `pat'" .. it's not clear what this "path" is but intuitively I'd expect it to be (foo bar) in my example. <civodul>(match '(a (b (c))) ((path *** ('c)) path)) <civodul>so i think the "path" is the list of ancestors in the tree <civodul>(match '(a x y z (b (c))) ((path *** ('c)) path)) <taylanub>Hrm, weird. It kind of operates on trees represented by lists instead of cons-cell (binary) trees ? <taylanub>And the "path" has the leftmost node at every level. (Not sure about the correct terminology here.) <taylanub>(Huh, I just realized that sexpr based trees where nodes are branches XOR leaves is a special-case of trees in general, where nodes all have a value AND zero or more children...) <bubble>I posted the meta-gc to the list, I have to work some more and on other things later on <sneek>Welcome back bubble, you have 2 messages. <sneek>bubble, ArneBab_ says: emacs -Q is really fast: It???s a bare bones emacs. emacs --no-site-file only loads your customizations, not the system ones. Also there???s the emacs deamon (to have a persistent emacs session you simply log in to again). I generally have alias e='emacsclient -c' ; alias ee='emacs -Q -nw' (the latter for quickly editing config files) <sneek>bubble, ArneBab_ says: emacs -Q is really fast: It???s a bare bones emacs. emacs --no-site-file only loads your customizations, not the system ones. Also there???s the emacs deamon (to have a persistent emacs session you simply log in to again). I generally have alias e='emacsclient -c' ; alias ee='emacs -Q -nw' (the latter for quickly editing config files) <bubble>I'm stuck on the filling of memory chunks now *bubble is going to work on the meta system <bubble>an example is to use a dispatcher for 'cons as a keyword in scheme actors ***goto is now known as anderson