IRC channel logs

2015-07-08.log

back to list of logs

<davexunit>ArneBab: noticed that you were mentioned in the latest mail to the SRFI mailing list
<davexunit>for providing ways for people to contribute without using GitHub
<davexunit>very nice :)
<davexunit>I want to conditionally define a variable in a module, but I'm not sure the best way to do it.
<davexunit>I want something like (unless (defined? 'foo) (define foo 'bar)), where the 'define' form occurs at the module top level.
<ijp>well, you can almost do it that way, you just need define! or module-define!
<ijp>maybe cond-expand can do it, I don't know
<davexunit>ijp: a-ha!
<davexunit>thanks.
<davexunit>I might be able to avoid this entirely.
<davexunit>I'm just trying to work around some stuff in guix.
<davexunit>there's a module that both a statically linked guile and a "regular" guile use, but the statically linked version has to define some things that the other versions already have.
<nalaginrut>morning guilers~
<artyom-poptsov>Good morning, nalaginrut~%
<nalaginrut>heya
<ArneBab_>sneek: later tell davexunit: we discussed during the last few days. Now the important part to stabilize the non-Github workflows is that people actually use them.
<sneek>Okay.
<zacts>hi guilers
<artyom-poptsov>Hello zacts
<zacts>hey
<janneke>hi zacts
<zacts>yo
<ArneBab_>sneek: botsnack
<sneek>:)
***michel_mno_afk is now known as michel_mno
<lf94>Could someone make arguments against this? I want to learn guile, but this makes it seem a little repulsive...http://community.schemewiki.org/?scheme-vs-common-lisp
<ijp>the best reason to learn anything is because you want to, not because of some wiki page that hasn't been updated in 5 years
<taylanub>lf94: the page is just plain wrong on some things. e.g. "parameters" (filling the role of dynamically scoped variables) were widely available since a long time and have recently been standardized.
<nalaginrut>this wiki page is terrible, I/O and unicode in modern Scheme is not a problem at all
<taylanub>oh I didn't realize this was #guile not #scheme. in that case the page would be even more wrong since it's about "all Scheme implementations" and not Guile specifically.
<nalaginrut>well, maybe Scheme world doesn't need more hackers, but wiki writers...
<ijp>I couldn't even tell you the last time I looked at schemewiki
<ijp>other than 40 minutes ago, that is
<nalaginrut>and standard module system interface is solved in R6RS, IMO
<nalaginrut>I don't even know this page if you don't show me...
<nalaginrut>and the understand of handling exceptions in Scheme is still stop at old-bad-time, playing continuation game, rather than catch/throw
<zacts>hm... I need to remember the difference between the various R5RS, R6RS, and the R7RS-tiny and R7RS-large
<zacts>or whatever they all are
<zacts>also, wasn't there some controversy of the direction R7RS-large has taken?
<ijp>theres controversy over everything
<zacts>(but, hey for now I'm a newbie)
<ijp>the internet needs some way to occupy its time
<nalaginrut>and the OO system, hmm...oh, I don't use OOP, I love closures+msg passing...
<nalaginrut>...with inheritance in r6rs record-type, people may call it OOP too...
<taylanub>zacts: there was controversy over R6RS, there was/is controversy about R7RS-small being too incompatible with R6RS, and there is controversy about R7RS-large heading a really weird direction.
<zacts>heh interesting
<ijp>I thought r6rs-large was controversial before it was cool
<taylanub>my recent frustration can be read about here :( https://groups.google.com/forum/#!topic/scheme-reports-wg2/rnHZlK0MYLE
<taylanub>TL;DR: I think R7RS-small is pretty neat, and R6RS has some very neat parts too, so I wish people would try to work on some R6RS/7RS-small consolidation now, before moving on. (and when they do, move on on a better path than the one R7RS-large so far is moving on...)
<zacts>so is R5RS what SICP uses?
<zacts>(or is it close to what SICP uses)
<taylanub>very close AFAIK
<zacts>cool
<taylanub>if it all doesn't work out and I'll be forced to choose between Guile and "Scheme" (with the scare quotes :P) then I'll definitely choose Guile, but I really wish people didn't have to choose between Scheme dialects, only implementations...
<ijp>zacts: r4rs + assorted mit scheme stuff
<zacts>ok
<lf94>taylanub, thank you.
<lf94>taylanub, are there decent CL vs Guile comparisons around?
<nalaginrut>yeah, I'm afraid it's r4rs
<nalaginrut>alas, I'd rather write Python vs Guile...
<taylanub>lf94: don't know of any. in practice you'll probably want to compare Clisp vs. Guile or SBCL vs. Guile, and not "CL" vs. Guile. the CL standard is bigger than the Scheme standards, but is also quite lacking in some things IIRC, like multithreading, so comparing the CL standard to Guile would in turn be unfair to CL
<lf94>Ah, I see
<lf94>In that case, I shouldn't be worried about learning Guile. :)
<lf94>What's the best Guile source to learn from? The manual?
<lf94>The only thing I know about lispy languages is (+ 1 2 3 4)
<lf94>Oh, and the recursion is used to iterate over things
<lf94>I figured I could apply some of my Haskell knowledge to Guile though.
<nalaginrut>"What's the best Guile source to learn from?" is a good question that I never thought...
<nalaginrut>but yes we do need to find one, or write one?
<taylanub>lf94: the Guile manual is pretty good I think
<nalaginrut>oh, I thought it's "source code"
<taylanub>lf94: I have a generic Lisp intro (slightly Scheme flavored) here: http://taylanub.github.io/doc/lisp-rundown.txt critique welcome
<lf94>nalaginrut: That too!
<lf94>I like reading GOOD source code to learn some idioms and style.
<nalaginrut>lf94: here's simple intro, maybe problems, critique welcome http://web-artanis.com/scheme.html
<nalaginrut>it introduces some Guile specific features
<lf94>Hm. I'll bookmark it :)
<artyom-poptsov>There's also a pretty good book on Scheme: http://scheme.com/tspl4/
<lf94>I don't anything scheme specific though
<lf94>I need Guile material
<ijp>then the manual is what we've got
<ijp>it's not fantastic, but it's not horrible either
<nalaginrut>lf94: and this http://www.gnu.org/software/artanis/manual/manual.html#sec-5
<nalaginrut>but frankly, the manual is the key you want
<amz3>lf94: please, tldr, what is repulsive?
<taylanub>amz3: the page was about Scheme in general (with all the bad implementations included) and also outdated.
<lf94>What he said
<lf94>Also who's running guile emacs here? Noticeable performance boost?
<ijp>probably negligible if any
<lf94>For example, list-packages hangs I guess because the lack of concurrency in emacs...lisp? So is that still an issue with guile emacs?
<lf94>I guess this is the wrong channel to ask this~
<nalaginrut>guile has pthread at least, so maybe it could be better then
<nalaginrut>ACTION doesn't like pthread
<taylanub>lf94: Guile Emacs isn't "ready" yet and rather still has performance regressions IIRC
<phant0mas>how can I get argv[0] from inside libguile/load.c ?
<mark_weaver>phant0mas: what are you trying to do?
<phant0mas>get the path without /proc/self/exe
<mark_weaver>phant0mas: why?
<phant0mas>because we don't have /proc/self/exe in hurd!!
<phant0mas>:-)
<mark_weaver>I'm sorry, I'm asking from a higher-level, what are you trying to accomplish?
<mark_weaver>why do you want to know the value of /proc/self/exe? what are you going to do with that information?
<phant0mas>a okay, so in the bootstrap-guile we need to find the path so we can set the GUILE_LOAD_PATH
<phant0mas>check bootstrap-guile patch
<phant0mas>that why I am getting the errors we were talking yesterday
<phant0mas>I meant guile-relocatable.patch
<mark_weaver>ah, I see.
<phant0mas>and the dladdr() way cannot work with static binaries
<mark_weaver>well, as it says in the comment, in guile-relocatable.patch, "Note: Use /proc/self/exe instead of argv[0] because the latter is not necessarily an absolute, nor a valid file name."
<phant0mas>I wanted to try nevertheless
<phant0mas>what else could I do?
<phant0mas>I was thinking using realpath
<phant0mas>s/thinking/thinking about
<mark_weaver>I don't know what realpath is.
<mark_weaver>but I don't think the argv[0] method will work.
<taylanub>realpath(1) is part of GNU coreutils
<taylanub>(and realpath(3) part of glibc it seems)
<phant0mas>yes :-)
<mark_weaver>well, I don't know how to get argv[0] anyway, short of plumbing it in from main.
<dsmith-work>Morning Greetings, Guilers
<mark_weaver>phant0mas: maybe the thing to do is to make a "wrapper" for the bootstrap guile.
<mark_weaver>phant0mas: can we move this conversation to #guix ?
<phant0mas>yes
***michel_mno is now known as michel_mno_afk