IRC channel logs

2014-09-12.log

back to list of logs

***wleslie_ is now known as wleslie
***_zxq9_ is now known as zxq9
***_zxq9_ is now known as zxq9
***keem is now known as monobrow_tetris
<wingo>moin
<ijp>moin
<janneke>moin
<civodul>Hello Guilers!
<AnAnt>Hello, I need to replace a call to the deprecated scm_internal_lazy_catch with scm_c_with_throw_handler, but the latter function has an extra parameter called lazy_catch_p, and I don't find in the documentation an explanation for this parameter, can anyone help ?
<ijp>my guess is you want to set it to true
<janneke>how can i use a function that i define as a module import renamer?
<janneke>i am using:
<janneke>:use-module ((oop goops) :renamer (lambda (x) (if (member x '(<parameter> <port>)) (symbol-append 'std: x) x)))
<janneke>but when i do
<janneke>(define (std-renamer lst)
<janneke> (lambda (x) (if (member x lst) (symbol-append 'std: x) x)))
<janneke>:use-module ((oop goops) :renamer (std-renamer '(<parameter> <port>)))
<janneke>i get:
<janneke>While executing meta-command:
<janneke>ERROR: Unbound variable: std-renamer
<taylanub>janneke: does the `define-module' appear before the `define' for `std-renamer'?
<janneke>taylanub: yes
<taylanub>janneke: I think it would just work if you did that the other way around. Guile modules work rather imperatively; `define-module' really "just" executes some code
<janneke>move std-renamer after the (define-module () :use-module ( .. :renamer)) ?
<taylanub>the other way around
<taylanub>hm, doesn't seem to work
<janneke>o yes, i read you wrongly .. i tried both
<janneke>also exporting from another module that i define
<taylanub>probably needs an `eval-when' with `compile' in the list
<janneke>ah!
<taylanub>or `expand' .. the 2.1 manual says one should generally use (expand load eval) .. dunno what `compile' is for then
<janneke>taylanub: thanks!
<ijp>the problem then is which module is std-renamer in?
<ijp>think about it
<taylanub>ijp: I suppose this is one situation in which "imperative" module creation gives us a benefit
<janneke>i'm now using
<janneke>(eval-when (compile eval load) (use-modules (gaiag misc)))
<janneke>(define-module (gaiag mangle)
<janneke> :use-module ((oop goops) :renamer (std-renamer '(<parameter> <port>)))
<janneke>
<janneke>:-(
<janneke>but it works...
<wingo>what do people think about exposing unicode_character_name() / unicode_name_character() to users
<civodul>wingo: +1
<wingo>civodul: options: char-from-name / char-to-name, name->char / char->name, either of those with "name-string" instead of "name"...
<wingo>and should those functions be exposed in a module or in the root env, i wonder...
<civodul>i'd say name->char and char->name
<civodul>it could be in (ice-9 i18n)
<wingo>yeah
<wingo>it's not exactly the right module but it would be good to have them in a module
<civodul>yeah
<civodul>i18n seemed like the closest thing where it could fit
<civodul>otherwise, if more of libunistring is eventually exposed (like hyphenation stuff), we could create a new module
<civodul>like (ice-9 unicode) or something
<wingo>should we go with a module already from the start? that would be fine with me
<wingo>i.e. (ice-9 unicode)
*wingo grumpy about making more things in the ice-9 namespace
<wingo>but still it could be the right thing ;)
<civodul>or (system unicode)
<civodul>but we have to live with ice-9 ;-)
<wingo>yeah but we can make an alias of ice-9 to something else
<civodul>right
<wingo>maybe even (horrors!) (guile unicode) :)
<civodul>oh!
<civodul>sacrilège!
<civodul>:-)
<wingo>:)
*civodul RIGHT ARROW lunch
*janneke is giving up renaming std:<parameter>
<janneke>std:<port> works, but parameter seems to be <<parameter>> but still shadows <parameter>? weird
*taylanub thought foo->bar naming is just for type conversions
<taylanub>ISTR there's already exceptions though
<taylanub>well, list->foo/foo->list even, since lists aren't a disjoint type
<ijp>wingo: just char-name?
<ijp>no need to have an arrow
<nalaginrut>wha
<nalaginrut>what's char-name ?
<civodul>ijp: right, agreed for 'char-name'
<janneke>i'm wondering about the state of some patches i sent
<janneke>i'd like to ping https://lists.gnu.org/archive/html/guile-devel/2014-09/msg00008.html
<janneke>and also http://lists.gnu.org/archive/html/guile-gtk-general/2014-07/msg00000.html
<wingo>ijp: what would the opposite be?
<wingo>i.e. to get a name from a char
<wingo>janneke: i'll take a look this afternoon
<taylanub>I'd think either char-with-name or char-from-name
<ijp>wingo: I see your point about about the inverse
<wingo>er, i guree to get a char from a name
<wingo>er
<wingo>guess :)
<wingo>char-from-name is fine for me
<wingo>char-by-name
<wingo>dunno
<wingo>find-char-by-name ;)
<lloda>name->char
<wingo>if it's name->char it has to be char->name
<lloda>that's char-to-name
<ijp>name-char doesn't work so well
<civodul>unicode-character-name->character
<wingo>s/character/char/, no?
<wingo>given that it's usually "char" in the api
*wingo does not know :)
<taylanub>for tab-completion and such purposes it would be nice if it started with char-
*wingo able to post tweets with guile-oauth, neat
<davexunit>whoa, I didn't know guile-oauth existed.
<wingo>civodul: what about char-formal-name
<wingo>given that they can have alternative names
<wingo> http://www.unicode.org/charts/aboutcharindex.html
<taylanub>davexunit: BTW you're David Thompson, right?
<davexunit>taylanub: yes.
<taylanub>davexunit: thanks for the work on guile-tox, it might become a big help to Guile's publicity :)
<dsmith-work>Happy Friday, Guilers!!
<davexunit>taylanub: maybe so. :)
<davexunit>I'm really happy with how easy it was to write a bot.
<davexunit>a bot that I could change at runtime via the REPL, too!
<davexunit>if I used civodul's monads from guix and the metacommand to enter a monad at the REPL, I'd have a really neat command line tox client :)
<civodul>wingo: looks good
<civodul>Happy Friday! :-)
<civodul>woow, guile-tox, cool!
<davexunit>civodul: thanks!
<davexunit>here's a simplistic client: https://gitorious.org/guile-toxcore/guile-toxcore/source/00c78c57c59c00530fef0d831dd5e712021f79ab:examples/client.scm
<civodul>nice
<civodul>davexunit: can the Tox DHT users for other things?
<davexunit>civodul: can it be used for other things? that I'm not sure.
<davexunit>I really don't know much about it.
<davexunit>did you have anything in mind? I could ask the devs.
<civodul>davexunit: like does it provide put/get operations that one can use for to store arbitrary key/value pairs
<wingo>civodul: quick r? on http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commit;h=c5ea75534c683638fb1f3b328efe6ba0d242e485
<civodul>wingo: LGTM, thanks!
<wingo>cool, thanks for the review :)
<civodul>it doesn't work this way for v8 & co., does it? :-)
<wingo>actually it's similar :)
<wingo>depends on the size of the change i guess ;)
<civodul>ah
<davexunit>civodul: the answer is, unfortunately, "no".
<paroneayea>hey #guilers
<davexunit>hey paroneayea
<paroneayea>so I was musing here about how I haven't found anything else like edebug's macro instrumentation for guile and davexunit asked if I had asked about that in guile https://identi.ca/cwebber/note/cAQN97j6QRyeSkP8UTRNeA
<paroneayea>er, sorry, I haven't found anything else like edebug's macro instrumentation in any other lisp ;)
<paroneayea>basically, https://www.gnu.org/software/emacs/manual/html_node/elisp/Instrumenting-Macro-Calls.html#Instrumenting-Macro-Calls edebug macro instrumentation lets it so you can step through code form by form, and when you get to a macro, you step through it in the way that it's written, without macro expansion
<paroneayea>(well, without visually expanding it)
<paroneayea>I don't know of any such thing for any other lisp
<rlb>so fwiw, we may be moving guile libs on debian from /usr/lib/guile/VER/ to /usr/lib/MULTIARCH/guile/VER/ to support cross-builds
<mark_weaver>civodul: rlb just wrote: <rlb> so fwiw, we may be moving guile libs on debian from /usr/lib/guile/VER/
<mark_weaver>to /usr/lib/MULTIARCH/guile/VER/ to support cross-builds
<civodul>ok
<mark_weaver>rlb: note that .go files are also arch-dependent
<civodul>that thing is based on $(pkglibdir), which is based on $(libdir)
<rlb>orly?...
<rlb>have to see if the multarch patch I was sent handles that reasonably
<mark_weaver>at present, .go files depend on word size and endianness, although in the future they might depend on more things such as maximum architectural page size.
<rlb>(multiarch debs should also iirc make it possible to run say the arm guile on an amd64 laptop via #! qemu)
<rlb>(or binfmt -- rather)
*rlb saw that "look ma no hands" at debconf year before last
<mark_weaver>*nod* debian multiarch is a very good thing; I've read about them in the past.
<rlb>i.e. apt-get install guile-2.0:ANYARCH and then run the binaries -- of course with say i386 on amd64, you don't even need the qemu cleverness
<mark_weaver>*nod*
<rlb>i.e. you can install both i386 and amd64 now (well not for guile, at least not until I finish this work)
*mark_weaver goes afk for a while
*rlb is being prodded a bit more than usual b/c guile turns out to be (I think) a fairly early dep in the debian dist boostrap chain now
<rlb>and has come up with all the boostrapping work, and two new arches (mipsel and aarch64?)
<civodul>nice
*rlb wonders if compiling psyntax-pp.go is one of the more intensive things his machine does these days ;>
<rlb>(use to be stalin builds, but they're no big deal now -- hardware marches on...)
<rlb>(and maybe software -- perhaps gcc is more efficient there too)
<ijp>davexunit: how is tox coming along? when they were on here before, the guy (who was probably not a dev) seemed fairly clueless?
<davexunit>some of them are clueless, for sure.
<davexunit>it's coming along a lot better than I had thought.
<davexunit>I have some issues with them, but I have to give credit where it's due: I tried out a client that had audio/video support and I was able to make a video call with one of the devs on the first try. no configuration on my part.
<davexunit>it "just worked".
<taylanub>I've heard someone say that Tox was born from and/or is mainly developed by people from 4chan's /v/ (technology) board, but no idea how true that is. (And maybe /v/ isn't as bad as I imagine.)
<dsmith-work>rlb: Just try and compile master!
<ijp>taylanub: it was basically /b/ v.2.0
<davexunit>taylanub: /v/ is video games, /g/ is technology. and yes, it was born there.
<taylanub>er yes, I meant /g/
<davexunit>which made me think that it was going to fail, but they've actually produced working software. not without a bunch of shenanigans, of course.
<ijp>reminds me of KS
<taylanub>ijp: you meant /v/ with "/b/ v2.0" and not /g/, right?
<ijp>yes
<taylanub>because /g/ certainly didn't look *that* bad to me :P
<ijp>/g/ was just OS trolling
<davexunit>someone impersonated me on /g/ last night.
<davexunit>in a GNU related thread.
<taylanub>ugh
<davexunit>that's what I get for posting there sometimes, I guess.
<taylanub>just remain anonymous :)
<davexunit>I post about guile projects and link to my gitorious account
<davexunit>it's gotten me some good attention for my game engine :)
<taylanub>oh, interesting. I'd have thought it would've just attracted trolls :P
<davexunit>a little of that, but surprisingly a lot of people just thought my projects were cool.
<taylanub>BTW you can use a tripcode if you want to occasionally post something with your identity verified
<davexunit>I used an insecure tripcode for *one* thread just to have my nick on my posts and someone started using it elsewhere.
<monobrow_tetris>People who've never been to 4chan tend to often have some misconceptions about it.
<monobrow_tetris>IT's kind of a pleasant place where freedom of speech rings.
<davexunit>sometimes. haha
<monobrow_tetris>The ideals of 4chan very much have significant overlap with thatof the FSF
<taylanub>monobrow_tetris: its reputation comes entirely from /b/ so that's no wonder
<monobrow_tetris>/b/ itself is probably the strongest freedom of speech of the boards
<monobrow_tetris>because pretty mcuh anything goes.
<taylanub>ehh
<davexunit>but it's utter trash.
<taylanub>total freedom of speech works well only when the people have something intelligible to say :P
<taylanub>also see /pol/...
<monobrow_tetris>THat goes for about anything.
<monobrow_tetris>I'd rather people have the freedom fo say stupid shit, than not saying stupid shit purely because they're punished if they do.
<davexunit>I understand that. I'm with you there.
<monobrow_tetris>Besides, quite often when people say they limit personal freedom against stupid shit, they allow all sorts of stupid shit they just don't mind.
<monobrow_tetris>The typical interesting case of "baseless criticism is stupid, but baseless praise is fine."
<ijp>monobrow_tetris: some misconceptions, but not a lot
<monobrow_tetris>You can'tjust say "this sucks" because that is not constructive, but just saying "this is awesome", about as nonconstructive, is fine.
<monobrow_tetris>ijp, you have that which I desire most.
<ijp>yeah, well, not at the moment, since I have a sore cold
<davexunit>to paraphrase RMS: I tried to visit that site but all I saw were inane comments.
<taylanub>:)
<ijp>davexunit: it's the bathroom wall of the internet
<ijp>public bathroom*
<davexunit>/g/ emailing RMS has resulted in some great things like "GIMP = Green Is My Pepper"
<ijp>unless you also graffiti your own bathroom, which is your choice
<dsmith-work>Ok, so what's all this /b/ /g/ /v stuff?
<civodul>yeah i wonder too :-)
<monobrow_tetris>Different boards
<ijp>dsmith-work: irc has #channels, reddit has /r/subreddits, 4chan has /boards/
<monobrow_tetris> /b/ is random, anything goes, /g/ is ehh, technology I think, /v/ is video games.
<davexunit>we're definitely in off-topic territory
<monobrow_tetris>The upvote/downvote system on reddig, urgh
<dsmith-work>Thanks
<taylanub>and /pol/ is literally the "Politically Incorrect" board
<monobrow_tetris>I wonder if they actually thought peiple could be trusted to not just downvote whatever they disagree with or even facts that they don't like.
<monobrow_tetris>I do love some political incorrectness.
<ijp>1) that is not political incorrectness
<monobrow_tetris>I named my cat after the scheme compiler that was named after the soviet dictator.
<monobrow_tetris>Gives me plausible deniability.
<ijp>2) for a defender of freedom of speech, you don't seem very keen on "mass democracy"
<monobrow_tetris>He sadly does not brutally optimize at tihs point.
<davexunit>every time I browse /g/ now I just think of the other things I can be reading that won't make me dumber.
<monobrow_tetris>Freedom of speech and mass democracy are two different things
<monobrow_tetris>mass democracy will only lead to less freedom of speech anyway.
<monobrow_tetris>In mass democracy, the majority will just ban every idea they don't like.
<davexunit>so how about them parentheses, folks?
<davexunit>I don't know about you, but I like 'em.
<ijp>monobrow_tetris: I just think it is telling
<monobrow_tetris>ijp, of what?
<monobrow_tetris>Constitutions are inhaerently undemocratic.
<ijp>it's an inherently snobbish attitude
<davexunit>continuations are inherently confusing
<monobrow_tetris>And I'm not that strong of a believer in democracy anyway.
<ijp>an authoritarian stance against authoritarian
<ijp>ism*
<monobrow_tetris>ijp, well, that's a pretty vague statement.
<monobrow_tetris>against authoritarianism?
<taylanub>monobrow_tetris: I could find political incorrectness humorous too but 1) not when it consists of inane things like holocaust denial and misogyny, 2) offending people is not a great way of changing their mind, in case you think contemporary culture needs change in some "offensive" topic (think homosexuality 50 years ago)
<monobrow_tetris>Where is my stance against authoritarianism, it's agianst mob rule if anything.
<monobrow_tetris>taylanub, meh, I disagree, I find those the most humorous.
<ijp>right, which is the snobbery I pointed out
<monobrow_tetris>Besides, society arbitrarily decides what it finds off colour and what not.
<ijp>it's actually very common in geek circles
<monobrow_tetris>I never claimed it wasn't.
<monobrow_tetris>ijp, anyway, I'm not quite sure what you're arguing here
<monobrow_tetris>Or where I argued against authoritarianism.
<ijp>well, freedom of speech in and of itself is of limited value
<monobrow_tetris>Maybe, but what does that have to do with arguing against authoritarianism
<ijp>if you can't do anything about it, you're just shouting at clouds
<ijp>monobrow_tetris: limiting speech is an authoritarian act
<monobrow_tetris>I don't see how it is necessarily authoritarian or popular.
<monobrow_tetris>It can be either.
<monobrow_tetris>The people can also vote and say "You can't say certain things"
<monobrow_tetris>My stance on the issue is people should be able to say pretty much anything. I don't see why you can't deny the holocaust if you can believe in homeopathy.
<ijp>and the argument made for freedom of speech by enlightenment authors was precisely that it would be self-regulated by convetion
<taylanub>you should do neither, and the educational system should prevent you from both
<monobrow_tetris>Besides, the irony of denying the genocide of the ancestors of a group of people whose holy scripture denies the very existence of the ancestors of humanity in its farcidal creation story is to be noted.
<monobrow_tetris>ijp, it isn't self regulating, I'm pretty sure that if you make what you can and cannot say be decided by popular vote you'd end up with very limited freedom of speech.
<monobrow_tetris>taylanub, should, should, should is a pretty vague term, I'm saying no sanctions should be imposed on saying either.
<ijp>monobrow_tetris: you don't need a law to have a regulation
<monobrow_tetris>But the educational system doesn't stop people from believing in pseudoscience and betting their lives on it.
<monobrow_tetris>Steve Jobs essentially commited suicide, he had an easily treatable form of cancer and he chose alternative medicine, Steve Jobs is not a dumb person.
<ijp>you are shifting the goal posts
<monobrow_tetris>such ignorance is seemingly able to catch the brightest.
<monobrow_tetris>I'm doing no such thing, my goal post is the same, I believe in unlimited freedom of speech
<monobrow_tetris>denying the holocaust, publishing child pornography, you name it.
<ijp>is speech the only right you care about?
<ijp>if so, I think we are done here
<monobrow_tetris>Define "care about"
<monobrow_tetris>I care about my cat named after the compiler named after the Soviet Dictator.
*davexunit sings "if I only had an OP..."
<daviid>haha
<ijp>monobrow_tetris: the un convention on the rights of the child has article 19 against violence towards children, and 34 against sexual exploitation
<ijp>does the right to distribute child pornography trump those rights?
<monobrow_tetris>ijp, there are also laws against killing people, but publishing a recording on that is perfectly legal
<ijp>human rights isn't a tick yes to all of the above, they all influence each other
<monobrow_tetris>a recording of a crime is not a crime itself.
<monobrow_tetris>What'snext, making it illegal to publish a recording of someone frauding taxes?
<monobrow_tetris>I'm not saying you should be able to rape kids
<ijp>taxation is not relevant to a discussion of human rights
<monobrow_tetris>I'm saying that if you find a recording of that in your possession, you are allowed to publish it.
<monobrow_tetris>ijp, well, the UN also has rights on religion and stuff
<monobrow_tetris>can I not publish a recording of someone's religious rights being infringed?
<monobrow_tetris>Surely we can agree that publishing a recording of someone's rights being violated does not constitute violating someone's rights.
<ijp>you also have a right to privacy
<ijp>there are 45 articles in the convention on human rights alone, which means 990 two-way interactions
<ijp>rights of the child*
<ijp>as a cs guy, you should be aware of the problems of quadratic complexity
<ijp>your view seems to be essentially that one particular node is paramount, and I fundamentally disagree
<monobrow_tetris>ijp, if right to privacy meant people couldn't publish recordings of crimes commited against you, then well, people couldn't do that.
<monobrow_tetris>But as it stands, people can publish recordings of crimes commited against you, except in the case of child porn
<ijp>monobrow_tetris: indeed, and in some countries you can't do that
<monobrow_tetris>which is basically not becaue of privacy, but because people think child porn is disgusting.
<monobrow_tetris>ijp, well yes
<monobrow_tetris>I don't believe in weighable human rights
<monobrow_tetris>If two "fundamnetal human rights" can contradict, I don't see how they both can be fundamental.
<ijp>then I don't see how we are going to come to an agreement
<paroneayea>okay everyone, "fun" discussion
<paroneayea>let's switch back to talking about lisp
<ijp>and so I'm done
<monobrow_tetris>The meaning of the word "fundamental" surely implies that it superceedes everything
<monobrow_tetris>okay
<taylanub>I suppose the day has come where we need to create #guile-offtopic
<ijp>my final word is this: we are not creatures of logic, our brains are fuzzy, and so should our laws be
<paroneayea>taylanub: ++
<davexunit>yes, back to talking about scheme
<davexunit>in particular, GNU Guile
<taylanub>monobrow_tetris: go on that channel if you want; I have at least one thing to tell you
<davexunit>did anyone see paroneayea's earlier messages about emacs' edebug features? I'm wondering if there's a possibility to something similar in guile.
<ijp>what was the question?
<paroneayea>I can paste, one sec
<paroneayea>pamrel.lu/48bf/
<paroneayea> https://identi.ca/cwebber/note/cAQN97j6QRyeSkP8UTRNeA being the important link there
<jralls>lmat: Use make check, not make test. Make test only runs the glib unit tests. The output to those goes to stderr, the output to the "legacy" test goes to per-test log file (e.g., src/engine/test/test-numeric.log).
<mark_weaver>jralls: wrong channel?
<jralls>Oops, you, sorry.
<mark_weaver>np!
<paroneay`>annnnd
<paroneay`>got disconnected
<paroneayea>ijp: not sure if you saw my reply
<paroneayea>or if you replied after I posted the link :)
<ijp>I saw the identica link, but not anything after that
<ijp>yeah, there is no macro stepper
<mark_weaver>paroneayea: I agree that something like that would be good. not trivial to implement though. I'm looking into possibly rewriting or making major changes to our syntax expander to, among other things, improve error messages and debugging.
<ijp>racket has a gorgeous one though
<ijp>I have kept racket installed at times just for that
<paroneayea>mark_weaver: cool :)
<paroneayea>ijp: ah, didn't know racket had such a thing