IRC channel logs


back to list of logs

<DeeEff>hey #guile, I can't seem to call (use-modules (database postgres)) without an error. I'm using guile 2.0.5 on debian, and also have guile-pg installed, though I don't know which version. Any thoughts on what might be causing the problem?
<davexunit>DeeEff: well, what error do you get?
<davexunit>debian testing has guile 2.0.9, btw. highly recommend updating.
<DeeEff>davexunit: I get "ERROR: In procedure append: Wrong type of argument in position 1 (expecting empty list): Segmentation fault"
<DeeEff>and then the interpreter quits
<davexunit>might want to contact the guile-pg maintainer?
<DeeEff>yeah, I'm not sure why I got this error. It seems rather arbitrary. I was considering backporting guile and guile-pg and seeing what happens. It might be a debian maintainer bug or something.
<davexunit>a segfault is bad news.
<davexunit>it could be in some C code that guile-pg is calling.
<DeeEff>this is what I was thinking. It seemed strange, but there's also a chance it's something on the postgres backend
<davexunit>either way, the segfault shouldn't happen :)
<DeeEff>unfortunately guile didn't give me enough information to diagnose it further, and I'm not sure what to look at to figure it out
<davexunit>for a segfault you'll probably need to dive into gdb
<davexunit>guile will give you a very nice backtrace for exceptions, but this is a hard crash.
<DeeEff>yeah, that's what I was thinking too
<DeeEff>either way, I'll try backporting and seeing what I can find.
<DeeEff>thanks anyways.
<davexunit>no problem.
<mark_weaver>DeeEff: it looks like something called 'append' with something that wasn't a valid scheme object at all.
<mark_weaver>one possibility is that one of the libraries was built for guile 1.8, and you're trying to use it with guile 2.0.
<DeeEff>mark_weaver: that would be really unfortunate, but would make absolute sense
<mark_weaver>as I recall, most of the libraries in debian that are built to work with guile are meant for guile 1.8, unfortunately. they really need to be updated.
<DeeEff>debian comes with guile-1.8 pre-installed I believe
<adhoc>not pre-installed, but the default version to install
<mark_weaver>we (upstream) stopped supporting guile-1.8 years ago.
<DeeEff>hrm.... it seems trying to call (use-modules (database postgres)) still doesn't work in guile-1.8, but it doesn't segfault either
<mark_weaver>wow, debian's guile-pg package is linked against guile-1.6 (!?!?)
<DeeEff>(。 ‿°) wut
<DeeEff>well then, I guess I know what the problem is
<mark_weaver>unfortunately, although Debian (finally) now has guile-2.0, just about every other thing for guile needs to be compiled from source on debian.
<DeeEff>More interesting is that there is no guile-pg package in debian testing (jessie).
<DeeEff>( ⊙‿⊙)
<DeeEff>would you be able to point me to the correct source tree mark_weaver?
<DeeEff>we need something like npm for guile.
<DeeEff>thanks. I'll try it and report back any results
<mark_weaver>please do! good luck.
<davexunit>DeeEff: there is the guildhall which is similar to npm or pip or gem.
<mark_weaver>you'll need the guile-2.0-dev package, btw.
*mark_weaver goes afk for a bit...
<DeeEff>davexunit: is there? how good is it?
<davexunit>DeeEff: I actually haven't used it! -__-
<davexunit>I have been meaning to.
<davexunit>it needs love, I think.
<davexunit>I'm heading out now. later.
<DeeEff>seems I'm running into an issue when running "make check" to install guile-pg. "make" and "make install" both work, but it appears I cannot call initdb (which shouldn't be called anyways, I already have the postgres environment setup)
***linas_ is now known as linas
<nalaginrut>morning guilers~
***nalaginrut is now known as atommann
***atommann is now known as nalaginrut
<nalaginrut>oops, I realized Guile doesn't have srfi-43
<nalaginrut>even missing in guildhall hmm...
<mark_weaver>which procedure(s) do you need?
<mark_weaver>it's on my TODO, and I have some of it already implemented.
<nalaginrut>because I wrote vector-append in "learn scheme in 15 minutes", someone pointed it out
<nalaginrut>then I realized it's missing
<nalaginrut>mark_weaver: maybe I should write a comment "vector-append is in guile-2.10"?
<mark_weaver>well, I'm not sure it will be in 2.0.10
<mark_weaver>but it's in our r7rs-wip branch:;a=blob;f=module/scheme/base.scm;h=f110d4c2b241ec0941b4223cece05c309db5308a;hb=r7rs-wip#l172
<mark_weaver>(it's part of R7RS)
<mark_weaver>I expect it to be in 2.0.11, along with R7RS.
<nalaginrut>ok, then I have to describe it clearer, thanks ;-)
<adhoc>is this the guildhall you are talking about?
<adhoc>ok, is that related to guix ?
<cky>mark_weaver: I have a special macro for you: ;-)
<cky>I apologise that it's Racket-specific, but I'm sure someone can port that to Guile. :-P
<mark_weaver>actually, I want to bind all of the keywords to the same transformer, to reduce code size.
<mark_weaver>the transformer should look at the keyword to decide what to name the bindings.
<mark_weaver>well, there could be two transformers, one for single variable and one for two variables.
<mark_weaver>and maybe a third for ^_
<mark_weaver>but I certainly don't want 27*27 different transformers. that would just be too huge.
<mark_weaver>actually, I just remembered that I already did this for the single-variable variants:
<cky>My laptop is currently at 4% battery, but I'll tackle that soonish. ;-)
<mark_weaver>cky: I just improved it to handle any number of variables, and _. Same URL.
<mark_weaver>after loading that module, bind whatever name you want using (define-syntax ^abcdef short-lambda)
<mark_weaver>the first character can be whatever you like, and is ignored.
<mark_weaver>every subsequent character becomes a variable name, unless it is _ in which case it is bound to a gensym, essentially.
<cky>mark_weaver: Very nice. :-)
<mark_weaver>of course, now that I'm exporting 'short-lambda', I need more than just 'expand' in that 'eval-when' list. somehow, I always realize these things a few seconds after sending the email.
<mark_weaver>I guess it should be (expand load eval)
<nalaginrut>(define* (hello #:key (a 1) (b 2) . args) (length args))
<nalaginrut>(hello #:a 5) ==> 2
<nalaginrut>is this accepted?
<nalaginrut>since #:a and 5 are countered as rest args
<nalaginrut>IMO it should be 0
<mark_weaver>the keyword args are included in the rest list.
<mark_weaver>it's not a bug; that's the way it's designed.
<nalaginrut>can I confirm it in standard? or rnrs didn't define that?
<mark_weaver>keyword args are not part of any scheme standard
<nalaginrut>so this could be defined by specific implementation
<mark_weaver>the decision was probably made by wingo, but in any case it was before I got involved.
<nalaginrut>I think it's fine if it's not in standard
<mark_weaver>but I can see advantages to this approach. for one thing, it's more consistent with #:allow-other-keys.
<mark_weaver>it also means that you can forward all the keyword arguments easily to another procedure.
<mark_weaver>btw, if you look in the manual, section (lambda* and define*), it specifically mentions this:
<mark_weaver>"When `#:key' is used together with a rest argument, the keyword parameters in a call all remain in the rest list. This is the same as Common Lisp."
<mark_weaver>ah, so this follows the convention from CL.
<nalaginrut>alright, I'm polishing the tutorial, so I have to confirm it.
<nalaginrut>hah~thanks for point it out ;-)
<nalaginrut>This morning I found some guys throw me a bunch of bugs in "learn Scheme in 15 minutes", so I'm struggling against them...anyway, in spite of typos, the rest are the implementation specific things, so I have to explain...
***sneek_ is now known as sneek
<nalaginrut>BTW, I wrote a brand new bot which may be a buddy of sneek, in pure Scheme ;-P
<nalaginrut>sneek: are you happy with that message ?
<mark_weaver>will your bot be joining us on channel anytime soon? :)_
<nalaginrut>it's under testing, but I tried it in another community, it works fine.
<nalaginrut>I'll let him join when it's done
<nalaginrut>BTW, thanks to guile-irc
<nalaginrut>it's easy to write plugins for it
<nalaginrut>and I planed to write a D&D plugin for my community irc channel ;-D
*nalaginrut made a mistake to announce it too early, since potluck is coming soon...
<nalaginrut>to be honest, web client is indeed slow, maybe we need a powerful downloader
<mark_weaver>yes, it's slow. we need to fix it. I don't see any inherent reason why it can't be fast.
<mark_weaver>we just need to track down the problem.
<mark_weaver>we need it faster for guix also.
<nalaginrut>it's not so clear for me that I thought http-get should be a simple infrastructure to fetch pages, rather than a serious downloader, no?
<mark_weaver>what do you mean by a "serious downloader" ?
<mark_weaver>I understand "fast" vs "slow". I don't know what you mean by "powerful" or "serious".
<nalaginrut>I think it may contain BT or other acceleration stuff
<nalaginrut>rather than http text fetch
<mark_weaver>what is BT?
<ArneBab_>cky, mark_weaver: for shorter ref (~), I’d like to note that on a general german keyboard ~ is really hard to use (AltGr ] + SPACE).
<nalaginrut>mark_weaver: like BitTorrent
<ArneBab_>nalaginrut: it could contain the gnutella download mesh - that does not need a powerful central server but just a sha1 and something which hands out some IPs of recent accesses ☺
<nalaginrut>and multi-part parallel downloading or continued-downloading
<mark_weaver>well, obviously 'http-get' handles http, not anything else.
<nalaginrut>yes, that's what I mean
<nalaginrut>ArneBab_: oh, decentralized?
<nalaginrut>seems cool
<mark_weaver>ArneBab_: ah, that's interesting about ~. I hadn't even started thinking about implementing that one anyway, but good to know.
<ArneBab_>I contributed to it back in 200<something>
<ArneBab_>and I was always sad that BitTorrent got all the press while Gnutella could do the same without requiring centralized servers…
<ArneBab_>I learned about the importance of PR and community that way…
<nalaginrut>out of topic, I've heard a kind of SNS is decentralized, seems cool too
<ArneBab_>it might be possible to just add bindings to gtk-gnutella for the download mesh…
<nalaginrut>considering Guix also provides pre-compiled binaries, maybe downloader would be a problem
<mark_weaver>yes, the slow downloader is a problem for guix. we have to figure out why it's slow.
<ArneBab_>nalaginrut: here’s some very high-level information on the download-mesh:
<nalaginrut>hmm...maybe powerful compressor is another way...;-)
<nalaginrut>ArneBab_: nice to know it
<mark_weaver>we'd also like some kind of decentralized peer-to-peer way of distributing guix.
<ArneBab_>nalaginrut: it simply uses HTTP plus a few special headers for exchanging alternate sources.
<mark_weaver>ideally gnunet
<ArneBab_>I don’t know gnunet that well - it never worked well for me and I’ve been active in freenet instead ☺
<ArneBab_>nalaginrut: here’s the specification, in case you want to implement it:
<ArneBab_>X-Alt and X-NAlt: new sources and invalid sources.
<nalaginrut>me too, I never make gnunet work for me, just like Gnus ;-(
<ArneBab_>nalaginrut: at you can find a server-implementation of a gnutella cache which can provide the initial entry into the download mesh when you have no searching:
<civodul>Hello Guilers!
<ArneBab_>nalaginrut: I also wrote a simple download-mesh cache in python:
<ArneBab_>Hello civodul
<ArneBab_>(this should be easy to do in guile…)
<nalaginrut>ArneBab_: nice
<nalaginrut>it's a shame that I can't even tame Gnus as a lisper&emacser...
<ArneBab_>nalaginrut: same for me… I use wanderlust instead.
*dje42 is having fun inserting scheme functions for libc calls (via LD_PRELOAD) to allow experimenting with mocking out system calls in gdb's testsuite
<ArneBab_>nalaginrut: gnus just did not do what I needed… (or rather: it was so different from what I was used to that I could not get into it)
<nalaginrut>ArneBab_: is it out dated? some of of them are site-cache
<ArneBab_>nalaginrut: the guide is from me and I lost the wiki to a database failure…
<civodul>dje42: like you define the 'open' symbol to call out to Scheme?
<ArneBab_>nalaginrut: that’s why the domain nowadays links to
<civodul>for the guile part of the test suite, right?
<ArneBab_>dje42: woah…
<ArneBab_>dje42: my first thought was “you do what???” ☺
<nalaginrut>one of the funny thing is that, when someone boast he using Emacs to me, I'll ask "do you use Gnus?"
<nalaginrut>very few people say yes ;-D
<dje42>civodul: actually, it's for gdb itself ... I'm hoping (and it's a just a hope at this point) I can mock out ptrace and exercise that functionality of gdb
<civodul>that's really a coup, then! ;-)
<ArneBab_>I love using emacs, but gnus is a very different beast from the email readers I got used to before I started using emacs.
<civodul>dje42: even more funny: i'm pretty sure you could do that without any, using libc's audit interface to add new symbols :-)
<ArneBab_>nalaginrut: it feels like gnus is from an era when people took more time to setup their programs - and knew better what they needed before they started using them.
<ArneBab_>nalaginrut: I on the other hand grew up with MacOS until I ditched it in 2004 because Apple grew more and more evil…
<ArneBab_>(or rather I realized it more and more ☺)
<mark_weaver>I also grew up with MacOS until I ditched it in 1994 in favor of free unix (starting with 386BSD).
<nalaginrut>I was thinking that a man who can use Gnus must handle mails manually all by himself ;-P
<mark_weaver>I've never used MSDOS or Windows, ever, but I got a 486 machine to run 386BSD on.
<nalaginrut>mark_weaver: well, you are lucky since I never touched MacOS.
<nalaginrut>OK I lied, sometimes I touch it on my friends'
<nalaginrut>but just touch...
<nalaginrut>hah, but I grew up with MSDOS and Win32
***nalaginrut is now known as eliug
<mark_weaver>I love Gnus. I have only one complaint, and it's enough to drive me crazy sometimes. I hate how slow it is, and how I have to wait sometimes on the order of 10 or more seconds to do various IMAP operations. and since I live in emacs, I basically can't do anything with my computer at all during that time.
***eliug is now known as nalaginrut
<mark_weaver>when I find some spare time, I'm going to look into notmuchmail.
<nalaginrut>mark_weaver: oh you can make it work!
<taylanub>I heard people use a local IMAP fetcher/proxy(?) and make Gnus connect to that.
<zRecursive>mew is a good email client using emacs
<nalaginrut>yeah, mew work for me at least
<ArneBab_>mark_weaver: I wanted to try notmuch, too ☺
*nalaginrut hate IMAP...
<ArneBab_>it sounds really good, but I’m afraid of the setup effort.
<ArneBab_>nalaginrut: I just fetchmail+procmail+pop3 my mails to my small server and synchronize them to my main box with Mercurial (though that really pushes hg to its limits ☺).
<ft>there's also "mu", which has an emacs interface, as well as bindings for guile. :)
*nalaginrut can't understand why some people like IMAP even they always complain its speed, but always use it rather than POP
<ArneBab_>ft: one more to check…
<nalaginrut>ft: sounds great, and "mu" is my family name, maybe I should try it some day
<ArneBab_>nalaginrut: a maintainer at (huge german email provider) told me that they prefer that, because IMAP produces constand medium load instead of sudden load spikes.
<mark_weaver>my email setup is very complex, and basically a huge mess. I really need to take the time to fix it up, but I'm afraid of losing mail, and I'm overloaded with other tasks.
<ArneBab_>nalaginrut: please remember to note your experiences.
<mark_weaver>ft: ah yes, thanks for reminding me about mu.
<nalaginrut>ArneBab_: I'm considering to find a better and fast mail client for months. But you know it may effect my life, so I'm hesitated
<ArneBab_>mark_weaver: my experience is that losing email filters hurts just as much… but if you have all mails in maildirs, they should be safe…
<ArneBab_>nalaginrut: what do you use right now?
<nalaginrut>ArneBab_: evolution
<ArneBab_>nalaginrut: wanderlust works pretty well, but it does not really scale to maildir folders with more than 20k emails: You have to add additional structure to keep it fast.
*nalaginrut confess Evolution doesn't sound like an old-school choice for a hacker
<mark_weaver>ArneBab_: you're making assumptions about my mail setup that aren't true. for one thing, I have 53 different email addresses.
<nalaginrut>mark_weaver: hmm..
<ArneBab_>mark_weaver: oh… (I only have about 5 - and just fetch all of them with fetchmail)
*taylanub has ... 1
<taylanub>Hrm, libgc 7.2e is stable.
<mark_weaver>I run my own mail server, with a very complex custom set of exim rules for spam filtering on a per-address basis.
<ArneBab_>my addresses accumulated, since I do not want to give up old email addresses… (some people only know those)
<ArneBab_>mark_weaver: wow…
<mark_weaver>I generally have each mailing list go to a separate address.
<mark_weaver>that's why I have so many email addresses. they are of the form mhw-???
<nalaginrut>mark_weaver: yeah, the filter is important
<mark_weaver>but my main email address also has a complex set of filters as well.
<nalaginrut>I have to spend some time to write my own filter system with Guile, someday(big work)
<mark_weaver>every email that comes to my main address (and several of the others) goes to three different places: my imap server, local MH mailboxes (that I used long ago), and an archive file.
<mark_weaver>see what I mean by "huge mess"? :)
<mark_weaver>but I have so little time these days that almost everything in my life gets dropped on the floor.
<nalaginrut>well, mails do effect my whole life, so it's very dangerous to change my mail-client
<mark_weaver>one thing I'm really annoyed by is having to move my old mails somewhere else because of scalability problems with large email folders.
<mark_weaver>I never decided on a standard system for doing that, so my old emails are hard to find.
<nalaginrut>I'm planing to build mail server for my local community. But considering the huge daily spam, I'm scared ;-O
<mark_weaver>this is why notmuch appeals to me.
<taylanub>Giving up one's privacy can bring a lot of convenience I guess; Google stores and lets me search through all my e-mail. :P
<nalaginrut>seems mu is pretty cool!
<mark_weaver>taylanub: I'm not willing to give all my email to Google and the NSA, no matter how convenient it might be.
<mark_weaver>anyway, if I wanted to write emails outside of emacs, I could just use Thunderbird (well, IceDove), which also has reasonably good search.
<mark_weaver>surely not as good as Google, but good enough for my purposes and with some privacy.
<mark_weaver>but I need something in emacs.
<nalaginrut>I'd like to have a faster one, since Evolution makes my computer halt for minutes everyday
<mark_weaver>I've used IceDove before. Several times I've tried using it, even fairly recently, and I just can't stand editing mail outside of emacs.
<ArneBab_>mark_weaver: I know the problem with the time… since my second child was born, I have to fight for every scrap of free time (and pay for it the next morning)
<mark_weaver>I've also played with Evolution too.
<ArneBab_>mark_weaver: you could use kmail: It can simply access maildirs as read-only. That’s what I do…
<mark_weaver>ArneBab_: heh, I know what you mean. Even one child in the house is enough. I can't imagine two.
<ArneBab_>mark_weaver: and for emacs wanderlust accesses the maildirs, too.
<mark_weaver>I also used Kmail for a long time, back in the KDE 3 days. In many ways, the best email client I ever used. but again, not emacs :)
<mark_weaver>notmuch promises to be everything I need and want in an email client, I think. well, except for Guile bindings, but that seems fixable :)
<ArneBab_>mark_weaver: I’m still pretty lucky that my PhD allows me doing some work on stuff which I think will help me in future research work - like wisp (would be a good fit for teaching programming) and guile (to improve my knowledge of the craf tof programming)
<nalaginrut>alas, my first child will be born in June, it's suspended if it's possible to give Artanis the first release during this year...
<mark_weaver>nalaginrut: ah, congratulations!
<nalaginrut>mark_weaver: thanks ;-D
<ArneBab_>nalaginrut: nice! congratulations!
<ArneBab_>(from me, too)
<ArneBab_>I child requires lots of time, but few things come even close to the joy of having your child welcome you home after work.
<nalaginrut>anyway, Artanis is my child too ;-P
<ArneBab_>nalaginrut: note: wanderlust works pretty similar to kmail and thunderbird. I don’t know evolution, but I guess it’s similar to those two.
<nalaginrut>I want a ncurses one, but I don't like mutt
<nalaginrut>GUI can't attract me these days
<nalaginrut>I need convenience
<ArneBab_>nalaginrut: re artanis: I understand that… the RPG I write is pretty close to a child for me, too
<mark_weaver>anyway, it's absurdly late here, and the 3-year-old of the house will wake me up in about 4.5 hours, so I better get to sleep now.
<mark_weaver>good night all!
<ArneBab_>mark_weaver: oh yes… good night!
<nalaginrut>mark_weaver: yes you should
<ArneBab_>nalaginrut: just use emacs on the shell…
<nalaginrut>ArneBab_: yes, that's what I want
<nalaginrut>but Gnus makes me sad
<ArneBab_>my wanderlust setup is described here:
<nalaginrut>I'll try mu, if no, maybe only mew to choose
<ArneBab_>you *need* the most current unstable version, though.
<nalaginrut>I'll try git version ;-D
<nalaginrut>ArneBab_: did you disable webkit and gtk?
<nalaginrut>or you haven't tried it?
<taylanub>I just realized that MacPorts installs libgc 7.4. Guile works fine with it though.
<ArneBab_>nalaginrut: for wanderlust?
<nalaginrut>for mu
<ArneBab_>I did not try that yet
<civodul>ft: can mu be integrated with Gnus somehowW?
<ArneBab_>the main problem I see with wanderlust is that it’s mostly in maintenance mode
<ft>civodul: I actually started at working at a mu server backend for gnus...
<ft>civodul: ...but, it's not really ready for anyone to use yet. including me. :)
<civodul>heh, ok :-)
<nalaginrut>well, can't compile it
<nalaginrut>org-mu4e.el:33:1:Error: Can't find library org
<nalaginrut>but I've already installed org-mode in Emacs
<ArneBab_>nalaginrut: it would be nice if package.el could integrate with my distros packaging system…
<nalaginrut>I don't want to drop mu4e, or I can't use it with Emacs
<ArneBab_>can you install org-mode in your distro?
<nalaginrut>ArneBab_: I installed org-mode from upstream
<nalaginrut>now it's done
<nalaginrut>the org-mode installed within Emacs is not good, dunno, it doesn't work anyway
<nalaginrut>ArneBab_: seems only support imap?
<nalaginrut>oops, needs fetchmail
<ArneBab_>nalaginrut: I just use fetchmail to get all my mail, because I got burned by “fancy new tools for stuff which has to work”.
<nalaginrut>well, I used getmail for some reasons
<nalaginrut>but when I saw getmail is Python, a kind of OCD appears in my mind...
<ft>I use fdm for incoming mail. It's basically fetchmail+procmail in one tool, with less insane filtering syntax. :)
<nalaginrut>each time I saw a software written with Python, the certain OCD makes me try to write it with Guile...
<nalaginrut>anyway, procmail is the key point in this process
***nalaginrut is now known as eliug
***eliug is now known as nalaginrug
<ArneBab_>nalaginrug: what do you mean by OCD?
<nalaginrug>Obsessive compulsive disorder
***nalaginrug is now known as nalaginrut
<ArneBab_>ah :)
<taylanub>(Of course real OCD is a serious disorder, unlike the recent folk usage of the term to refer to any smallest mental quirk.)
<taylanub>(Or you might actually have OCPD.)
<nalaginrut>yes it is
<ArneBab_>taylanub: it’s an OCD if it severely impedes your life and you cannot stop voluntarily, right?
<taylanub>Right. Distinguishing feature from e.g. OCPD is that members of the latter tend to think their perfectionist actions are the right thing to do, whereas an OCD patient will e.g. furiously wash their hands literally every 10 minutes and not be able to stop even if they admit it doesn't make sense.
<ArneBab_>taylanub: what about stuff you can normally stop but which you sometimes catch yourself doing anyway? (like chatting when there’s work to do… ☺)
<taylanub>hehehe, "bad habits" ? :P
<ArneBab_>stuff which keeps me sane? ☺
<ArneBab_>SWKMS ← next time someone asks me what I do ☺
<nalaginrut>how to use msmtp to send mail in Emacs?
<nalaginrut>no Gnus
<nalaginrut>alright, done
<zacts>what's new?
<taylanub>zacts: BDW-GC 7.2e is stable.
<taylanub>And I realized I was running Guile with BDW-GC 7.4 ("released" but less tested) on OS X until now (though I don't use it for anything serious).
<civodul>zacts: libgc 7.4.0 works great too
<civodul>with 2.0
<lloda>question on (receive)
<lloda>(let-values (((a b)) (values a b)) ...) allows define in body, but
<lloda>(receive (a b) (values a b) ...) doesn't.
<lloda>is this right? I'd expect these to be equivalent...
<civodul>lloda: doesn't say anything, but its reference implementation allows BODY to start with definitions
<civodul>so maybe it would be a good idea to adjust ours
<civodul>well actually we just do the same thing
<civodul>so what's wrong? :-)
<civodul>i mean, this works: (receive (a b)(values 1 2)(define c (+ a b)) c)
<lloda>you're right... weird!
<taylanub>Hrm, `receive' is basically like a `let-values1' but with one pair of parens less ?
<taylanub>While I agree that the three consecutive opening parens in `let-values' usage look weird, one quickly gets used to it IMO.
<lloda>arghh I'm stupid, I wasn't importing srfi-8 :-/
<civodul>i think 'receive' was CL-inspired
<civodul>i prefer let-values too
<lloda>the error was
<lloda>etc etc: definition in expression context, where definitions are not allowed, in form ...
<lloda>compiler was assuming that receive was a function, of course
<lloda>that threw me off
<taylanub>heh, indeed, I had similarly confusing errors in such cases .. wonder if that can be sensibly improved.
<lloda>is it necessary to define things in order in Scheme? b/c if it is, it could flag first the unknown name (receive)
<taylanub>I suppose it could delay the error reporting until all expressions (<expr1> <expr2> ...) are done evaluating, then report the error of the earliest expression.
<taylanub>But maybe that would require an unacceptable complication to the compiler etc.
<taylanub>Well, indeed, the unbound variable is not a compile-time error, it's a run-time one. The `define' on the other hand is compile-time.
<taylanub>Maybe it could print out the *warning* for the unbound top-level though, like the REPL normally does.
<lloda>taylanub: I'd like that warning, I think...
<stis>evening guilers!
<mark_weaver>hi stis!
<stis>mark_weaver: I went back to the assembler I was palying with ...
<stis>The compact one was very close to a VM, mainly goto and move was inline coded
<stis>That's way the code was so compact
*stis is kind of swamped up by Randy Mill's Classical way of treating Atom physics
<stis>about the hydrino, who knows, that's remains to be seen.
<cky>Re preferring let-values, in Racket, let-values is a primitive, and let is implemented on top of it. :-)
<cky>In the same way that define is implemented on top of define-values, and define-syntax is implemented on top of define-syntaxes, etc.
<cky>Much in the same way that in Guile, case-lambda is the primitive and lambda is implemented on top of it. :-P
<cky>lloda: ^ ;-) (I'd hilight civodul too but he's signed off.)
<cky>taylanub: ^ also
<yng>hi, how do you catch the eval error with `scm_c_eval_string` without it calling abort?
***apb is now known as Guest89926
<mark_weaver>yng: see scm_c_catch in the manual.
<taylanub>cky: Very interesting. If it can be done with zero cost (i.e. a built-in let cannot be faster than a let-values with one value) then it only makes sense I guess.
<mark_weaver>cky: what makes you say that 'lambda' is implemented on top of 'case-lambda' in Guile?
<davexunit>seems like that would be the reverse, no?
<mark_weaver>in fact psyntax has separate core forms for 'lambda', 'lambda*', 'case-lambda', and 'case-lambda*'. and tree-il has separate <lambda> and <lambda-case> node types.
<taylanub>IIRC the reverse doesn't hold true either because the dispatching to the right body happens during compilation, which is the reason it doesn't need to cons an argument-list and hence is more efficient than a lambda with an arg list or rest arg ?
***apb is now known as Guest71489
<taylanub>Excuses if I'm totally off here, I just remember reading it to be more efficient than a rest arg, not sure how exactly.
<mark_weaver>taylanub: we don't do that compile-time optimization currently.
<mark_weaver>not that I know of, anyway.
<taylanub>Hrm, the dispatch happens at run-time but saves us from consing a list anyway ?
<mark_weaver>well, if there are keywords but no explicit rest list, then I think the list is never consed.
<mark_weaver>there are dedicated VM ops for handling this stuff, but it does happen at run time.
<sjoerd`>Is there a way to surpress guile giving notion of using a source file when the .go file is out of date?
<taylanub>Doesn't it auto-compile it then ?
<taylanub>(Then it prints out a notice about that though. I also wonder how to suppress that one.)
<sjoerd`>That's the one I am mentioning, but in the current run (a makefile) it is expected behavior not to automatically recompile. I just don't like to have messages all over the place.
<taylanub>The HACKING file recommends "-Wall -Wpointer-arith -Wmissing-prototypes" together with --enable-error-on-warning. I just got an error from missing-prototypes on freshly pulled stable-2.0. I wonder if it's that file that should be updated, or is this warning worth fixing ?
<taylanub>Well the file mentions GCC 2.7 :P
<civodul>taylanub: missing-prototypes is a useful warning, yes
<civodul>but i think i always build with --enable-error-on-warning
<civodul>where do you get this warning?
<taylanub>civodul: Snippet from the end of my log: (Ignore the obnoxious OpenBSD-GCC warnings. :P)
<civodul>the warning looks like dangerous OpenBSD crap :-)
<civodul>that's because it's an old version of Flex actually
<civodul>and this one doesn't matter at all
<civodul>--enable-error-on-warning is only guaranteed to work on x86_64-linux-gnu :-)
<taylanub>I believe it doesn't really error out due to the OpenBSD-added warnings, because it continues until "./c-tokenize.lex:194:1: error: no previous prototype for 'yylex' [-Werror=missing-prototypes]"
<civodul>yes, old Flex
<taylanub>Oh OK
<taylanub>Yeah, seems I have 2.5.35, from 2008. :P
<civodul>that version was Secure, i think