IRC channel logs

2019-08-15.log

back to list of logs

<quiliro>hello... i have been fidling in the guile command line.... but i still do not understand what lambda does...i know it is an anonymous function ... that means it does not have a name... but what is its use?
<quiliro>s/command\ line/interpreter/
<quiliro>$ echo $GUILE_LOAD_PATH
<quiliro>/home/quiliro/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2
<quiliro>SORRY
***slyfox_ is now known as slyfox
***spk121_ is now known as spk121
<kori>quiliro: you can use a lambda like this
<kori>scheme@(guile-user)> ((lambda (x) (* x x)) 2)
<kori>$1 = 4
<kori>anywhere you can use a value you can use a lambda
<dsmith>Anyone here with ops?
<bandali>around right now? don’t think so. you can see the list using `/msg chanserv access #guile list' and msg them whenever they’re around
<dsmith>I just need someone to /kick the bot.
<daviid>sneek_: botsnak
<quiliro>kori:thank you ...
<quiliro>but a value can be used on a let and on a define also
<dsmith>The bot is "banned/quieted". Keeps trying to change it's nick back to "sneek" but is denied.
<daviid>dsmith: maybe i missundertood, do you really mean to use the kick command? don't have that priviledge i think
<dsmith>From the logs:
<dsmith>=> NICK sneek
<dsmith>:livingstone.freenode.net 435 sneek_ sneek #guile :Cannot change nickname while banned/quieted on channel
<dsmith>
<bandali>rlb, wingo, ^
<dsmith>Yes. I can restart it, but I'd like to see what happens when it's kicked
<daviid>str1ngs: I just pushed a patch so g-studly-caps-expand handles token exceptions
<daviid>please pull/make/make check/make install, and read the doc, or the patch, then update your web-kit* class name uage to webkit-*
<dsmith>sneek_: botsnack
<dsmith>!uptime
<daviid>str1ngs: scheme@(guile-user)> (g-name->class-name "WebKitWebContext")
<daviid>$5 = <webkit-web-context>
<nalkri>Make the bot log in regardless of what nick it's on and then it should be able to change nick
<daviid>and not <web-kit-web-context> anymore
<daviid>if you still want that though, lok for %g-studly-caps-expand-token-exceptions in the manual
<daviid>have to go, bbl or tomorrow
<dsmith>nalkri: It's trying to change it's nick. But freenode is not letting it.
<nalkri>dsmith: Identify with nickserv, then log in
<nalkri>Sorry, identify with nickserv, then change nick
<dsmith>The message is ":livingstone.freenode.net 435 sneek_ sneek #guile :Cannot change nickname while banned/quieted on channel'
<dsmith>
<nalkri>This channel has “+q $~a” meaning connections not identified with nickserv are quited here
<dsmith>Yes, pretty sure the bot is Identifed with nickserv
<nalkri>Yes, if you get it to identify with nickserv (e.g. “/msg nickserv id name pass”) it will work
<nalkri>It's not, do /whois sneek_
<dsmith>Hmm.
<dsmith>Hmm. "sneek" registers with nickserv. But "sneek_" is not.
<nalkri>Right, after you log in you can group the backup nick to the account
<nalkri>For now just get sneek_ to do the equivalent of “/msg nickserv id sneek <password>”
<nalkri>Then look at “/msg nickserv help group”
*dsmith assumes a new identity,,,
***dsmith is now known as sneek
<nalkri>You don't need to be connected with one of your registered nicks to log in, as long as you specify the nick in the id command
***sneek is now known as sneek_
***sneek_ is now known as dsmith
<dsmith>nalkri: So. The bot does register with nickserv, but did not have "sneek_" in the group. Now it does. You think that will let it change it's nick back?
<dsmith>sneek: botsnack
<sneek>:)
<dsmith>!uptime
<sneek> 23:12:45 up 7 days, 9:47, 1 user, load average: 0.02, 0.03, 0.05
<nalkri>dsmith: Well, it wasn't identified before, maybe it tried to but with an invalid nick(because not grouped)?
<dsmith>We will see.
<dsmith>Used to work.
<dsmith>When reconnecting an getting a "*_" nick, it would attempt to get it's normal nick back. And it would just work. Something changed on freenode to prevent that. Hopfully, this grouping thing will help.
<nalkri>Maybe the quiet on $~a wasn't set on this channel before
<nalkri>Because it's that that was preventing a nic change
<sneek>Hello
*sneek wags
***sneek is now known as sneek_
***sneek_ is now known as sneek
***sneek is now known as sneek_
<dsmith>sneek_: botsnack
<sneek_>:)
***sneek_ is now known as sneek
<dsmith>Hmm.
<rlb>dsmith-work: did you still need help? (Assuming it's something I can do.)
***chris3 is now known as chrislck
***ng0_ is now known as ng0
<str1ngs>sneek: later tell daviid, will check it out thanks.
<sneek>Got it.
***chris4 is now known as chrislck
<wingo>good news! i think i know of a simple transformation that will allow inlining and contification of top-level bindings, with maximum compatibility with existing guile code
<weinholt>wingo, sweet!
<weinholt>do you have any recommended reading on contification?
<wingo>weinholt: i do, let me dig it out
<wingo>;;; See Kennedy's "Compiling with Continuations, Continued", and Fluet
<wingo>;;; and Weeks's "Contification using Dominators".
<wingo>or http://wingolog.org/archives/2016/02/08/a-lambda-is-not-necessarily-a-closure for a brief mention
<wingo>or http://mlton.org/Contify also
<Minall>Hello guile!, I'm a little confused...
<sneek>Minall, you have 1 message.
<sneek>Minall, rekado_ says: You can just use “/home/Minall/Documentos/Guix-Packages” in the channel definition.
<Minall>What does (define*) do?, And without the "*"?
<iyzsong>Minall: 'define*' supports optional and keyworded arguments, where 'define' not. Also there is 'lambda*' and 'lambda', see more at 'lambda* and define*' of the guile manual..
<lloda>we should run a docstring marathon or snarf the texis or something. There's a ton of stuff in Guile without any inline documentation.
<lloda>inline <= I mean in the repl
<Minall>iyzsong: Thanks, that was very aclaratory!
<dsmith>Minall: And if you meant literally (define*) as in no arguments, that's a syntax error.
<Minall>No, I mean as a whole jeje
<dsmith>lloda: Great idea!
<dsmith>sneek: help define
<Minall>And (define) without the "*"
<dsmith>sneek: help cons
<Minall>?
<lloda>also some functions do have help but it's of the aarg! sort. For example I always forget the order of args in kons in fold and the help of fold omits precisely that.
<dsmith>Minall: the define* (with a star) is a guile specific
<Minall>That was a stupic question lol
<Minall>(define) is to define variables ok lol
<Minall>Thanks guile!
<dsmith>Minall: Just look at the index in the manual. As in https://www.gnu.org/software/guile/manual/html_node/Procedure-Index.html#Procedure-Index
<dsmith>Minall: And then to https://www.gnu.org/software/guile/manual/html_node/Top-Level.html#index-define
<Minall>Thanks dsmith, that's very helpful
<Minall>Thank you very much!
<dsmith>sneek: guile help define
<sneek>No documentation found for:
<sneek>(guile): define
<dsmith>sneek: guile help cons
<sneek>`cons' is a procedure in the (guile) module.
<sneek>- Scheme Procedure: cons x y
<sneek> Return a newly allocated pair whose car is X and whose cdr is Y.
<sneek> The pair is guaranteed to be different (in the sense of `eq?') from
<sneek> every previously existing object.
<weinholt>wingo, thanks!
<Minall>What does @@ mean starting a parenthesis?
<Minall>It means, refer to?
<wingo>Minall: it's to reference a private binding in a module
<Minall>wingo: Thanks!, it makes sense now!
<dsmith-work>Morning Greetings, Guilers
<amz3>hello all, I submitted an SRFI for hooks based on Guile, elisp and CL hooks.
<amz3>I would like to know if anybody it taking advantage of the ordered nature of hooks in Guile
<str1ngs>amz3: in nomad I used hooks, which are really useful especially for replicating emacs like features. though I can't say ordering has been a factor at this point. though I have thought of ordering. what is unique about guile hook order? just curious myself
<amz3>str1ngs: tx for the reply.
<amz3>well, the order is specified unlike the SRFI I wrote which does not specify the order of execution.
<amz3>It seems to me, specifying the order of execution can lead to difficult code to debug if the user rely on the order of execution to introduce coupling between a hook's procedures.
<amz3>str1ngs: btw, 10 years ago, I wrote a web browser called nomad too :)
<amz3>str1ngs: it was in Python and it was a bad idea.
<str1ngs>ha great minds think a like, I'm using guile I don't know if it's a good idea, but sure is fun.
<amz3>str1ngs: (I tried to code the rendering engine...)
<amz3>str1ngs: sure it is a good idea.
<str1ngs>I think there is one hook I've been meaning to look at were ordering is a factor. And I would say order is a good idea. I'm curious if elisp is order dependent. I would think so?
<str1ngs>oh rendering engine was most ambitious indeed :)
<amz3>guile hooks are inspired from elisp hooks with a similar interface. They recommend against taking into account the order and the documentation doesn't tell what order it is.
<str1ngs>I guess ordering is tricky, especially if they can be remove. which is one feature I have used in emacs before.
<janneke>str1ngs: did you get my /query about pierre yesterday?
<str1ngs>janneke: I'm just getting it now, but he was able to contact me via email
<janneke>str1ngs: very good, not sure where this goes but you never know
<str1ngs>I apologize for the inconvenience . I had forgot I was committing code under a email address I don't read often enough :(
<janneke>str1ngs: haha, oh well pierre choses not to use irc; i'm happy he wants to talk
<str1ngs>janneke: it is interesting. though somethings I'm pretty confident I wont move on. 1) guile 2) emacsy 3) GPL
<str1ngs>other then that I think I can remain open
<janneke>str1ngs: yeah, nomad might be able to steal ideas from next or the other way around (searching, annotating the html, bookmarks etc.) but code-wise i don't really see it tbh
<str1ngs>janneke: next some good things. it's client/server model using DBUS is very intresting
<str1ngs>has some*
<str1ngs>it's flex searching is quite nice as well
<heisenberg-25>Is there a gRPC implementation in scheme?
<str1ngs>janneke: I just noticed emacsy does avoid building hello-emacsy if freeglut is not found. so I think nly's changes have improved on this
<janneke>str1ngs: yes, it's an improvement even if it's a workaround. i think it could be automatic, but i haven't had time to look into it
<str1ngs>janneke: it seemed automatic. I did not need to pass --without-examples
***chris3 is now known as chrislck
<str1ngs>daviid: the new class mappings look good. though for some reason functions and methods names are now reversed. http://paste.debian.net/1095882
<jcowan>I'd like to be interested in emacsy, if only I knew what it was for.
<str1ngs>jcowan: think of emacsy as a guile library for creating emacs like interfaces
<jcowan>So it's a framework (emacsy is in control and you plug your code into it)?
<OrangeShark>I want to try creating something that uses emacsy
<str1ngs>jcowan: you retain control. emacsy just provides things like buffers, key bindings, emacs like windows
<jcowan>But it has the event loop, correct?
<str1ngs>no you have control over the event loop. emacys uses a tick to denote the even loop.
<str1ngs>it's pretty flexible that ways.
<str1ngs>s/ways/way
<str1ngs>jcowan: though when you call emacsy-tick it will handle events that are queued for emacsy to handle
<jcowan>Sorry, what is a tick in this context?
<str1ngs>jcowan: an emacsy tick is basically an increment that you call from an event or within your event loopo
<jcowan>Ah.
<str1ngs>jcowan: emacsy is for the most part pretty UI program independent. the source has examples using gtk and also GL
<str1ngs>but you could just as easily use emacsy in a ncurses program as well
<jcowan>Okay, so the windows are not screen windows at all.
*jcowan looks up the Emacs definition of "window".
<jcowan>Ah, now I get it.
<str1ngs>no screen windows in emacs are called frames
<str1ngs>I think a emacs window might pre date say an X11 window
<str1ngs>don't quote me on that :P
<jcowan>yes, the first Emacs in 1976, the first X (not yet X11) in 1984. Of course, when Emacs ran on hardware terminals, there was barely any need of a name for the frame, since it was inherently the only frame.
<jcowan>s/ran on/ran only on
<dsmith-work>rlb: Thanks. Nope. No longer need to kick the bot.
<str1ngs>jcowan though terminal frames are now I thing. alt east if you use something like emacsclient
<str1ngs>now a*
*sneek stretches
<amz3>sneek: botsnack
<sneek>:)
<daviid>yeha!
<sneek>Welcome back daviid, you have 1 message.
<sneek>daviid, str1ngs says: will check it out thanks.
<daviid>sneek: tx
<daviid>str1ngs: oh, what a mess, let me fix this, sorry!