IRC channel logs
2025-12-29.log
back to list of logs
<ArneBab>rlb: thank you for rebasing the utf8 branch! And I’m sorry that it was necessary. And that it needed work shows that this order was needed: I don’t expect that this kind of work would have been done in the external patches in Lilypond (so that would have caused a rift again). <ArneBab>rlb: we need to get the lilypond patches into Guile as quickly as possible to be able to move more quickly without breaking things: things we need to check for release should best be in our repo. <ArneBab>That won’t be possible for everything, but could reduce the chance of finding breakage early. That guile-next in Guix showed the breakage due to info in boot-9 early was a good example of another way, though. <lechner>Hi, Emacs started indenting some old code around 'and=>' differently. Anybody see what the issue might be? Thanks! https://bpa.st/JUAA <rlb>Hmm, I'd guess that maybe scheme mode had added new support for and=>, but at least here with 30.1, I see the first version. Also, does the file have related Local Variables at the end, and/or does the dir have a .dir-locals.el that might apply? <Arsen>lechner: no .editorconfig, right? <lechner>Arsen / never seen that. where would it be? <Arsen>for me indenting that produces: <Arsen> (eval-when (expand eval compile) <Arsen> (and=> (and=> (string-split %host-type #\-) <Arsen>In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version <Arsen> 3.24.51, cairo version 1.18.4) of 2025-12-20 built on localhost <Arsen>Repository revision: 9e16010686a99a8b9ee1c01dff248a680605a6ca <lechner>Arsen / your indents also seem shifted to the left by one, yes? <lechner>or maybe that's the way it's supposed to be <rlb>I'd guess that maybe 30.2 scheme mode added specialized and=> support. <Arsen>seems identical to your '-' case, maybe the shift you see is due to diff prefixing all lines with ' ', '+' or '-' depending on contents of the two files <rlb>And previously it just behaved like any other "normal invocation". <ieure>Have also noticed that indent behavior seems to have changed in the last ~month. <ieure>I have two machines running Guix and the same home config, one I haven't reconfigured since November, if I open the same file on both machines and C-x h C-M-\, they give different results. <rlb>Arsen: oh, dunno --- also, is scheme mode available in elpa, and/or might people be getting anewer version from there? <ieure>rlb, scheme-mode is bundled with Emacs. <rlb>Sure, but as with majit, etc., you can install a version that supersedes the built-in version via elpa-magit (and maybe M-x list-packages?). <ieure>There are some exceptions, but most packages bundled with Emacs aren't on ELPA. <ieure>Org and Magit are some of the exceptions, stuff like scheme-mode likely doesn't release fast enough for an external package to make sense. <rlb>lechner: you might also try it from a new/temp account and/or a file in some other dir, and/or via "emacs -q ...". <rlb>make sure you don't have some config interfering... <lechner>Thanks! What's majit, please? Also, is Magit really bundled with Emacs? <rlb>magit is *impressive* :P <rlb>Though I still haven't gotten as used to using it as I probably should have... <rlb>(still to set in my cli ways...) <ieure>lechner, Hmm, okay, I guess it isn't. <lechner>Yeah, Magit changed my life. I spent five years or more typing Git commands. Magit takes the cake! <rlb>Oh, sorry, I see, I just misspelled it earlier. <lechner>i think that's how people pronounce it even though the author says it's supposed to sound like Magic <lechner>Combining Git and Emacs in the name, i'd prefer Git'em! <Arsen>it doesn't, it combines git and magic <identity>lechner: the author says it is pronounced either like Magic or however makes sense to you, i think <lechner>well, i'm not sure it does, to anyone <lechner>i think magic is when you take a bag with white and black stones and don't know which is coming out <lechner>rlb / either way, hunk or line-wise staging is a lot easier with Git'em. Don't waste your life <identity>«Magic n. 2: an illusory feat; considered magical by naive observers» seems about right <lechner>For me it's easy to remember because the Umim and the Thummim, a single device with white and black pebbles, is the only legal form of magic in the Torah. <dsmith>ieure, Maybe something like (symbol-plist 'and=>) in each and see what the difference is? I've not messed with symbol plsits any, so that might be incorrect <dsmith>Or (get 'and=> 'scheme-indent-function) <dsmith>That property is nil for me in emacs 30.1 And the guile .dir-locals.el doesn't set it <lechner>dsmith / for me (get 'and=> 'scheme-indent-function) yields 1 <lechner>and an rgrep for and=> in that source folder or in ~/.config/emacs shows only legitimate uses in the former, and nothing in the latter <dsmith>Hmm. I wonder where it is getting set then. <dsmith>Guile sets a bunch in .dir-locals.el <dsmith>lechner, What version emacs have you? <lechner>"GNU Emacs 30.2 (build 1, x86_64-unknown-linux-gnu, cairo version 1.18.4)" <lechner>I do have complex source trees. Does Emacs go all the way up to the root folder? <lechner>It may not know where to stop, unlike Git <rlb>I suspect .dir-locals.el applies all the way up, but there's a whole page about it in "info emacs" if you want to delve "Per-Directory Local Variables". <rlb>But of course first you can just check all the parents of that file to see if any of them has a .dir-locals.el that might be relevant, if not, then "that's not it". <dsmith>"Emacs searches for ‘.dir-locals.el’ starting in the directory of the visited file, and moving up the directory tree." <rlb>I wonder if it cares about file ownership, i.e. what if there's a .dir-locals owned by someone else above HOME? :) <rlb>(hope you trust them) <rlb>Though I suppose these days emacs is supposed to check and prompt you if it's "not safe". <dsmith>Yeah, it checks at least with "Local Variables:" can get annoying at times. <dsmith>(info "(emacs) Directory Variables") <lechner>Hi, how can Guile access the type of a variable, please? <rlb>one option that may or may not work for you (use-modules (oop goops)) (class-of thing). <dsmith>lechner, Typically, you use a separate predicate for each type. <dsmith>Like string? vector? pair? number? <lechner>okay, thanks! class-of may actually work. until now, I new nothing about GOOPs because I find the object-oriented model largely incompatible with functional programmin, but I guess I'm open to new ideas <lechner>I only use this for error messages, by the way. Is 'integer' here a slot? #<<class> <integer> 7f9157fd6300> <rlb>I'd probably lean against pulling in goops just for that, for anything "substantial". <rlb>(or general purpose, up to a point) <rlb>No, that's the the class representing "integers", depending on what you mean. <rlb>Note too that goops is notably different from more common "object oriented" systems like python/java/c++/c#/etc. --- it's more like common lisp's clos, is a good bit more flexible, I'd say, and is "verb oriented" rather than "noun oriented". But depending on what you're doing, you might be better served sticking to more "plain scheme". <ArneBab>lechner: the generic methods of goops can be pretty neat, but I stepped away again because I read reports that the multi-dispatch of GOOPS can be expensive if your number of types increases more and more. <ArneBab>Also the code I wrote became simpler again, so I just didn’t need it (define-record-type from srfi-9 suffices for my needs). <rlb>definitely has a cost, and I'd assume may also make some of the compiler optimizations less likely or impossible. <rlb>i.e. as compared to bare (TYPE? ...) checks. <rlb>(and related dispatching) <lechner>for error messages in my linux syscall library, which look like below, i'd like to indicate mwette's CDATA type, which shows the name of the kernel data structure. they are currently showing at the very bottom due to a bug, perhaps in Nyacc, but will eventually disappear as they are successfully converted into Scheme native data structures as already happened with one struct-timespec https://bpa.st/AGZQ <lechner>in other words, how does Guile produce this string, please? #<cdata siginfo_t 0x7f91580d2f20> <dsmith>Can someone help me understand the extended form of identifier-syntax at (info "(guile) Identifier Macros") ? Are the "var"'s in there literal? <dthompson>in the clause (var bar), var is the identifier of the macro: bar-alias <mwette>lechner: nyacc has a put for and=> in it's .dir-locals.el <mwette>and I know you use that so maybe you are working under nyacc/ <johnwcowan>ArneBab: btw, your book got here (thanks) and I've been working my way through it <lechner>mwette / Thanks for writing! I think my Emacs has been importing .dir-locals.el across projects. Could that be? <lechner>Hi, can Guile annotate values with explanations like in Perl?