IRC channel logs

2025-01-10.log

back to list of logs

<dckc>I'm sitting down to do some scheme hacking again, and I'm struggling with stuff like how to run a file, how to change directories in the repl and such...
<dckc>I re-visited https://files.spritely.institute/papers/scheme-primer.html but it doesn't talk much about putting code in files.
<dckc>I vaguely recall there was a sort of "lesson 2" that talked more about that, but I don't recall where it is.
<dckc>ah... this looks familiar: https://files.spritely.institute/docs/guile-goblins/0.14.0/index.html#SEC_Contents
<dckc>is that current?
<dckc>I wonder why I couldn't find it from https://spritely.institute/
<dckc>in particular, why not from https://spritely.institute/goblins/ ?
<dckc>"at minimum, you’ll want to put in your .emacs: (show-paren-mode 1)" then you have to re-load .emacs, right? it's hard to draw the line at how much background knowledge to assume
<dckc>maybe I'm thinking too much in the shell / Make / filesystem world again
<dckc>I just get uneasy in a REPL, not knowing what version of code is loaded and stuff.
<dckc>.
<dckc>my goal this evening is to make some scheme macros that let me write in james / https://github.com/cwebber/rockit style and run it in the goblins way
<dckc>I'm starting with the counter instance.
<dckc>guile really doesn't like (let value init)
<dckc>making macros that grok that looks like a significant pain... the scope of value goes outside those ()s
<dckc>"The traditional way to hack Guile is to use Geiser, both evaluating from some foo.scm file/buffer with more “permanent” code via, for example, the C-x C-e / C-x C-b / C-x C-k commands" ???
<dckc>C-x C-b brings up a list of buffers.
<dckc>Is that supposed to be C-c C-b ?
<dckc>re .emacs , perhaps it should be linked to https://www.emacswiki.org/emacs/InitFile ; that's what paredit seems to do
<dckc>my experience using .emacs is that I lose more often than I win.
<dckc>I can never get the right magic for connecting to melpa or whatever.
<dckc>guix should make much of that go away, yes?
<dckc>wicked! https://index.scheme.org/filterset/r6rs_all/search
<dckc>odd... in the guile manual, macros is under API reference. But it looks like narrative documentation.
<dckc>and it seems like a language thing, not a stdlib thing. clearly don't limit API to stdlib things
<dckc>the API section starts with FFI matters. wild
<dckc>rest is not in the index. isn't there a :rest parameter thingy?
<dckc>rest is in 6.7.4.1 lambda* and define*
<dckc>#:rest , that is
<dckc> https://github.com/cwebber/rockit/pull/4
<dckc>2025-01-10 01:56 c3eb6ac
<jfred>dckc: I've found that a useful geiser command is C-c C-a in a scheme buffer, which switches you to a repl and puts the repl into the current module you're working in
<jfred>it wasn't obvious to me coming from other languages like python, but guile's repl lets you work in multiple modules and switch between them, each module having its own environment
<jfred>(I was occasionally confused at why a function I'd defined in a module didn't seem to exist in the repl, until I realized you need to be working in the same module in the repl to see it - the repl was "smarter" than I was expecting, I didn't realize it was doing more than just splatting the last expression into the current repl buffer)
<dckc>thanks... yeah.. I read some docs about how stuff is focussed on one module at a time... but I didn't see C-c C-a
<dckc>a wish: something like https://indieweb.org/Loqi around here.
<jfred>sneek: later tell dckc there is a bot in here that does some of that
<sneek>Will do.
<dckc>do tell. what bot? show me how it works? give me and example?
<sneek>Welcome back dckc, you have 1 message!
<sneek>dckc, jfred says: there is a bot in here that does some of that
<jfred>well there's one example ;P
<jfred>I admittedly don't know what else it can do, the "tell" feature is the only one I've seen used haha
<dpk>sneek: help
<dpk>(it responds to that command in a PM)