<paroneayea>I packaged it, in theory... but it doesn't connect to anything! <lfam>That sounds like a very secure implementation of ssh ;) <paroneayea>oh yeah, that's packaged in guix, I should try it at some point... <davexunit>but I need to learn how to do all the cool stuff <jcowan>I'm trying to build 2.1.2 on a system with 2.0.9 on it, and getting the dreaded "undefined symbol: GC_move_disappearing_link <jcowan>I did ./configure in the new directory <davexunit>no way to close the input side of a pipe without closing the output side, too. <jcowan>Any help for the build problem above? <davexunit>I don't think any maintainers are here right now, writing to guile-user would probably be best. <mark_weaver>jcowan: what version of libgc are you building guile 2.1.2 against? <mark_weaver>guile 2.1.x requires libgc 7.0 or later, as documented in the README <jcowan>actually, 'dnf install' says I have gc-7.4.2, so that should be fine <jcowan>all four prereqs are apparently okay <mark_weaver>maybe guile's configure script is not finding the right libgc <jcowan>yeah, it's the replacement for yum <mark_weaver>jcowan: what is the output of "grep BDW_GC_ config.status" ? <mark_weaver>jcowan: what is the output of "objdump --syms /usr/lib/libgc.so | grep GC_move_disappearing_link" <mark_weaver>or maybe just /lib/libgc.so, I'm not sure where it is on fedora nowadays <jcowan>/lib is a symlink to /usr/lib, but anyway libgc-* is not there <mark_weaver>can you find out where it is? maybe by asking the package manager to show you the list of files in that package? <mark_weaver>jcowan: also, what is the output of "grep GC_MOVE_DISAPPEARING_LINK config.log" ? <jcowan>#define HAVE_GC_MOVE_DISAPPEARING_LINK 1 <mark_weaver>jcowan: what is the output of "env | grep LIBRARY_PATH" <mark_weaver>(and any relevant environment variable settings at the time you ran configure) <jcowan>passed no arguments to configure <mark_weaver>okay, I'll want to know the output of "objdump --syms /path/to/libgc.so | grep GC_move_disappearing_link" where /path/to is the location where the gc-7.4.2 package is installed <jcowan>still trying to figure out how to make dnf cough up a list of files installed by a package <mark_weaver>do you have another version of libgc installed in /usr/local or some other directory mentioned in your /etc/ld.so.conf or /etc/ld.so.conf.d/* <mark_weaver>it seems that ./configure found a libgc that included GC_move_disappearing_link, and then a different libgc was linked with libguile. maybe the one in /usr/local/lib is pre-7.0 <mark_weaver>jcowan: also beware /usr/local/lib/pkgconfig/bdw-gc.pc <mark_weaver>but you'll probably want to blow away that copy of libgc in both /usr/local/lib and /usr/local/include <mark_weaver>and then maybe rerun "ldconfig" as root to regenerate the cache <jcowan>hopefully this doesn't break too many things <jcowan>dnf as I said claims to have 7.4.2 installed <jcowan>but the listed file is libgc.so.1.0.3 <mark_weaver>jcowan: oh, that's the so version, which is not the same as the source version number <mark_weaver>libgc-7.4.2 corresponds to libgc.so.1.0.3, so that looks current <jcowan>It doesn't claim to, but there it is, and it is not in /usr/lib <jcowan>btw, "dubious" has been used for "doubtful" since 1632 at least, it is very much standard <mark_weaver>jcowan: looks like "rpm -ql gc | grep libgc.so" might be the right thing <mark_weaver>jcowan: okay, what's the output of "objdump --syms /lib64/libgc.so | grep GC_move_disappearing_link" ? <mark_weaver>jcowan: do you have libgc in both /lib64 and /usr/local/lib ? <jcowan>and it's not in the /usr/local/lib version either <jcowan>looks like the copy in /usr/local/lib might be 7.2, at least I have a 7.2 in /usr/local/src <jcowan>Isn't this bogus, using the same so version for incompatible libraries? <mark_weaver>but if that function is not in either of them, I'm a bit stumped <jcowan>maybe libgc has to be built with some config switch to make this function visible? <jcowan>I didn't have any such problems building 2.0.9 <mark_weaver>the thing is, 'configure' seems to have concluded that the function is available, which is another mystery <jcowan>first thing I did after untarring <mark_weaver>in config.log, what are the two lines following the line containing "checking for GC_move_disappearing_link" ? <jcowan>configure:51836: gcc -o conftest -g -O2 conftest.c -lgc -lcrypt -lm >&5 <jcowan>so either 7.2 or 7.4 should be fine per the README <jcowan>FWIW, the last thing that happens in the Makefile output before the error is GEN guile-procedures.texi <jcowan>/home/cowan/source/guile-2.1.2/libguile/.libs/lt-guile: symbol lookup error: /home/cowan/source/guile-2.1.2/libguile/.libs/libguile-2.2.so.0: undefined symbol: GC_move_disappearing_link <mark_weaver>that's the first time that the 'guile' executable is run for the first time. <mark_weaver>if it were my system, I would remove the libgc files in /usr/local/lib and /usr/local/include and try again starting from ./configure <mark_weaver>there may be some problem arising from the mixture of the two libgc installations. <jcowan> libgc.so.1 (libc6,x86-64) => /usr/local/lib/libgc.so.1 <jcowan> libgc.so.1 (libc6,x86-64) => /lib64/libgc.so.1 <jcowan> libgc.so (libc6,x86-64) => /usr/local/lib/libgc.so <jcowan> libgc.so (libc6,x86-64) => /lib64/libgc.so <jcowan>so do I just get rid of the .pc file, or does it need surgery? <mark_weaver>it's possible that you ended up using the include files from /include and then run-time linking with the libraries in /usr/local/lib, and that might be bad. <mark_weaver>jcowan: you'll definitely need to remove (or move out of the way) /usr/local/lib/libgc* as well <jcowan>Some of my other Schemes may break, but I'll worry about that later <mark_weaver>removing the gc include files from /usr/local/include/ would also be a good idea <mark_weaver>that would be the directory /usr/local/include/gc as well as /usr/local/include/gc*.h <jcowan>missed the subdir, but surely if gc.h is not found, it won't matter <mark_weaver>I don't know, if /usr/local/include is in the default search path for the C preprocessor, you might still pick up stuff from there. <jcowan>If it still fails I'll go back and blow them away too <jcowan>I broke SigScheme but that's no big deal, I'm sure I can rebuild it <jcowan>damn, I accidentally blew away libgcroots as well <mark_weaver>you might find GNU Guix to be an interesting way out of these problems :) <mark_weaver>installing GNU Guix is far less intrusive than the things you are already doing to that system. <jcowan>Okay, that seems to resolve it; I'm in the GUILEC stage of make <mark_weaver>GNU Guix only modifies the directories /gnu/store, /var/guix, and /var/log/guix <jcowan>make completed, running make check <jcowan>nice to have guile install with decent speed now <jcowan>I never updated my 2.0.9 because it would take all day <jcowan>okay, reinstalled libgcroots with dnf and now SigScheme is working again <jcowan>so the Every Scheme Known To Man Test Box is fully updated now, except for Racket <jcowan>Racket is one of the few Schemes I don't build from source (also JVM and CLR Schemes, where there is little point) ***Fuuzetsu is now known as Guest39765
<Jookia>o/ What's the idiomatic way to do a long if/elseif/elseif statement in Guile without tons of indents? I'm suspecting it'd involve 'or' somehow, but I want to execute code and use the return value to short-circuit and return <Jookia>cond seems like the answer but I'm unsure <b4283>sometimes i think the debug message of guile is really hard to understand <b4283>is there a way to make it more readable ? <nalaginrut>b4283: it may need some experiences to take advantage of it, but yes, I feel so too <wingo>maybe tonight, if no one else sends the mail :) <b4283>nalaginrut: yeah, my friend is solving SICP problems with the compiler, and is having trouble finding the mistake he made <davidh>Throw without catch before boot: <davidh>Throw to key misc-error with args ("make_objcode_from_file" "bad header on object file: ~s" ("\\x7fELF\\x02\\x01\\x01�\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00") #f)Aborting. <davidh>any ideas what to do to get it run in gdb? <davidh>Linux localhorst 4.3.3-3-ARCH #1 SMP PREEMPT Wed Jan 20 08:12:23 CET 2016 x86_64 GNU/Linux ***dje_ is now known as xdje
<amz`>I'm wondering what the potluck is about... <nalaginrut>amz`: just like a hackathon, Artanis was born in potluck <nalaginrut>ACTION is preparing Artanis-0.1.2, new session management, and template caching <stis__>ACTION is documenting guile-log internals - tons of new things. <xyh>poor kid's object oriented programming in scheme <nalaginrut>when we in Scheme, we don't need to have a full-featured OO system ;-P <xyh>just a toy, no much features <vanila>does guile have a efficient total order of symbols? I don't care about dictionary ordering i just want something fast <stis__>vanila: do you mean something that persists over multiple sessions? <vanila>im imagining symbols are represented as integers internally when they get interned, or something <stis__>object-address gieves you the adress of the symbol, that will give you a total order <vanila>and it'd be nice to just compare that <xyh>hi vanila :) you are implementing unification for your little prolog ? <vanila>xyh, sort of yeah, one thing i want to do is make a good distribution of it <vanila>going to make it nice and easy to use from guile first <xyh>are you using such things as WAM or ZIP ? <stis__>vanila: cool, do you have a certain prolog semantics as a goal like iso-prolog or the swi-prolog family? <vanila>no moving away from prolog really <vanila>trying to get it more like pure logic <stis__>ok that's makes it simpler to base it on kanren. <vanila>what im trying to figure out just now is a nice language for implementing constraint systems <vanila>constraint implementations are all very ad-hoc and ugly just now <stis__>check out attributes in swi-prolog <stis__>let me know if you want to know how to implement those in minikanren <stis__>well that can be my potluck this year!! <amz3>what can I do for the potluck <amz3>I should have kept an idea aside... <amz3>hello vanila, I planed to port your minikaren to guile anyway <vanila>i ant to contact micheal balentine too <vanila>he's doing some really interesting stuff <amz3>(define (collab . ppl) (apply sum ppl)) <amz3>bijunctiono is def interesting <roelj>Korhonen: I think it's more like guyl <amz3>I pronounce it guyl i think <amz3>that's what I meant, in french G is pronounced like 'j' except when there's a 'u' after 'g', like in 'guile' <amz3>I figured my explanation was not right <jcowan>Korhonen: It's a standard word of English, meaning "deceit, fraud" <jcowan>thus semantically related to "scheme" which means (as a verb) "make a plot" <taylan>Scheme, Guile, Racket... what a nasty bunch <jcowan>and perhaps Gauche, I'm not sure <jcowan>Larceny comes in three flavors, native Larceny, Petit Larceny, and Common Larceny <dsmith-work>Guile is pronounced like: mile, pile, while, Kyle, style, tile, bile, Nile (and probably more) <Korhonen>I always find it humorous how people who use "Larceny", "Racket" or "Guile" claim supreme moral superiority over someone who named a compiler "Stalin" as a joke. <Korhonen>You sometimes see it that people are offended over the name. I rarely see people who actually use it though <Korhonen>It got about as much noteriety over sometimes beatin hand-written C as it got over its name, I've never seen anything actually seriously using it, it was more smething of a novelty. <Korhonen>Which just goes to show, there is no such thing as negative publicity. <vanila>i doubt you can even run stalin today <unknown_lamer>all the fast compiler people are using mlton nowadays I think <vanila>im interested in the new monadic abstract interpreter stuff <unknown_lamer>mlton: sure it make take a week and 64G of memory to compile, but hello world has never been faster ;) <vanila>im not sure if it's the same sort of thing stalin/mlton do <Korhonen>All I know is that both do aggressive "whole program optimization" and perform some advanced heurostics and lifetime analysis. <Korhonen>I'm actually quite content with a praedictable optimization strategy and leaving it to the programmer to do most of that stuff herself. <Korhonen>I pleasantly found out a while back that GHC actually does not even do common subexpression elimination except in a few select cases. <dsmith-work>is mlton.org away, or is it just the draconian corporate filtering I have to gou through now? <Korhonen>Ddn't expect that but apparently with lazy evaluation there are some cases where doing common subexpression evaluation can turn constant space into quadratic space o whatever. <Korhonen>It makes sense if you read it but I really never considered that. <Korhonen>The solution to the problem is heinously unelegant in both cases though, writing duplicated computation or producing a structuraly different list which is still a powerset if ordering doesn't matter,both seem quite unelegant <jcowan>Stalin works fine, its problem is that its community is utterly dysfunctional. There isn't even a mailing list to share patches on. <vanila>someone would need to take initiative <jcowan>A few. They are all polite versions of "Fuck you, Jack, I'm all right" <jcowan>Right, but you could front-end it with psyntax <jcowan>What kind of surprises me, given the use cases, is that it doesn't do inexact complex numbers. <Korhonen>Yeah, I was wondering if you could implement full R6 fairly lexically on top of R4 without really changing the runtime <jcowan>vanila: It's not enough to take initiative if nobody cares <Korhonen>as far as I now Stalin doesn't do the full numerical tower though <vanila>is there any reason to care about it today? I am assuming the ideas from it have been integrated into other modern compilers <jcowan>I'd say no, they haven't, at least not Scheme compilers <Korhonen>Stalin's ideas are a massive compilation time tradeof. <jcowan>If your code is *fully* debugged and Gambit and Chicken aren't fast enough, then Stalin is the only place to go. <jcowan>But yes, it takes a whole day to compile itself, e.g. <vanila>do you know if it's in any way related to these new CFA analysis techniques <vanila>does that stuff subsume what stalin does? <Korhonen>They weren't particularly new ideas too as I understand it, he threw every single optimization techique known to man into it. <jcowan>And didn't document any of it anywhere <Korhonen>He didn't invent them, no one would just be insane enough to make such a heavily optimizing compiler since you lose all error reporting and it takes forever. <jcowan>the code has no comments (except a few religious slogans in Hebrew) and there is nothing but the code and one paper <vanila>hm what is the point of bootstrapping it <vanila>if its still slower after doing thtat <Korhonen>Well, one assumes it will be faster than if it got compiled with say Larceny. <jcowan>You mean the Chicken version? Well, the idea was that Chicken-compiled Stalin is easier to develop than Stalin-compiled Stalin, because the turnaround time is more modest even if the result runs even slower. <jcowan>Stalin is like developing with punch cards; you punch your program, get a listing to make sure you didn't botch any of them, and submit the card deck to the Computing Center. The next day you get your output. <jcowan>Compiler errors? Sorry, try again tomorrow. <jcowan>ACTION actually did that for a bit in 1975 <Korhonen>I you _know_ it's bug free, why not put in some of that time. <jcowan>Even I leave out Stalin when comparing Schemes; it's too awkward to use it <Korhonen>I always list it, a concept and name as outrageous merits a mention. <jcowan>"Stalin optimizes everything. Brutally." <Korhonen>I actually named my cat after the compiler. <Korhonen>But everyone seems to think I named him after the Dictator. <Korhonen>No, I am alwys puzzled by the behaviour my cat displays which seems realyl inefficient. <Korhonen>Some of that stuff can only be explained by a neural network once evolved for efficient behaviour taken outside of its natural habitat and now producing bizarre behaviour <jcowan>Most cat behavior can be accounted for by most hunts being failures and the problem of shedding heat <Korhonen>Well, I have a balcony with a small stair I made to the ground below it so can go outside, one of the things he does is first go down the stairs, then up the down again and then outside. <jcowan>Sounds to me like making sure his retreat path is clear <jcowan>What goes down may or may not be able to come up <Korhonen>He spends like half the energy contained in the thing on torturing it to death slowly before eating it. <jcowan>Part of that is because cats have short muzzles. They kill by biting the back of the neck, but if the prey is in the mouth, they have to risk letting it go before they can make the fatal bite <jcowan>Also, cats hunt for practice, not just because they are hungry -- hungry cats tend to scavenge instead <jcowan>A cat that catches a rabbit or other dangerous prey will dispatch it as fast as possible <jcowan>and of course some cats, like mine, are just dain bramaged <Korhonen>Maybe I shouldn't have named him Stali, that whole playng wth his food thing is kind of sickening to be hoest. <vanila>have you looked at any of this research? <jcowan>where jcowan is, there off-topicness also tends to proliferate ***holomorph is now known as wasahouse
***wasahouse is now known as ubybzbecu
***ubybzbecu is now known as holomorph