IRC channel logs

2026-04-12.log

back to list of logs

<dsmith>Certainly has been an increase in activity lately
<jab>And I sort of know that there's lots of activity in guile land, but I just don't hear about it.
<yarl>old: WDYT https://codeberg.org/guile/guile/pulls/152/commits
<dsmith> https://codeberg.org/guile/guile/activity/recent-commits
<old>I think one of the next I would like us to do as a community is to have some kind of forum/bulletin-board
<old>yet another platform to be o
<GreenRocky>Hello 👋 Is there a Guile language server or should I use something for Scheme in general?
<yarl>Hey old, I don't follow you on https://codeberg.org/guile/guile/pulls/152#issuecomment-13010058
<yarl>both srfi-9 and RNRS records use make-record-type.
<yarl>aw oh I see
<yarl>:p
<yarl>Nut the part on the UID though
<yarl>So, if I understand correctly, there's two things in your comment. The one I get is that yeah I forgot that you can set a "custom" printer by giving some function to the optional "print" argument to make-record-type
<probie>Does guile allow any sort of reader macros?
<probie>(to answer my own question), it looks like yes, as long as they start with a `#` https://www.gnu.org/software/guile/manual/html_node/Reader-Extensions.html
<yarl>Hmmmmmmm. old?
<yarl>Or anybody. Sorry to bother you again with this but I don't see why there is a default-record-printer in srfi-9 after all. I might need a break but the only use is for the make-record-type, which is in boot-9 and which plugs in it's own and exact default-record-printer if none is passed.
<yarl>So I really don't see why srfi-9 defines its own and passes it instead of #f
<yarl> /exact/exact same definition for/
<yarl>Anyway, I might be missing something and need a break. https://codeberg.org/guile/guile/pulls/152#issuecomment-13026912
<avigatori>hello, I was wondering how guile's keywords are defined in R5RS. They standard seems to refer to builtin "reserved" words (cond, set! etc.) as keywords as far as I can see. Are they defined in later standards?
<mwette>"keyword" is a term used for terms starting with #:. I'd say cond set! etc are syntax forms (defined in R5RS, say). I don't think they are reserved. For example, srfi-71 redefines the syntax form `let'
<mwette>I am curious if any, like lambda, are reserved.
<avigatori>AFAIK it says that one is allowed to redefine it. But it definitely uses the term "syntactic keyword" for "else, =>, define, unquote, unquote-splicing" and "expression keyword" for "quote, lambda, if, set!, begin, cond, and, or, case, let, let*, letrec, do, delay, quasiquote"
<avigatori>I can't find any metion of constructions like "#:keyword" or ":keyword" or "keyword:". According to the Lexical structure defined in 7.1.1 those seem to just fall under "identifier"
<avigatori>(but I haven't read the other standards yet)
<mwette>#:keyword is a Guile extension, as is l
<mwette>as is lambda*, define* and others
<mwette> https://www.gnu.org/software/guile/manual/
<dsmith>I believe Guile #:keywords have been around a long time. They pre-date R5RS and maybe even R4RS.
<mwette>dsmith: I just checked the guile-1.8 manual and #:keywords are in there.
<avigatori>mwette: I was going off of this: "Guile’s keyword support conforms to R5RS, and adds a (switchable) read syntax extension to permit keywords to begin with : as well as #:, or to end with :. " https://www.gnu.org/software/guile/manual/html_node/Keywords.html
<avigatori>But I couldn't find a mention of it in R5RS
<mwette>avigatori: you got me. I had read that as using #:keyword but that doesn't seem appear in r5rs, so I'm afraid I can't help. It's been decades since I've been familiar with that document.
<avigatori>mwette: no problem and thank you anyway :)
<mwette>yw
<avigatori>I think I found it: It seems to come from here and not the standards RnRS https://srfi.schemers.org/srfi-88/srfi-88.html
<dsmith>avigatori, Guile #:keywords are inspired by CL keywords. (And like I said, are a Guile extension that predates the R{4,5,6,7}RS standards
<avigatori>thank you