IRC channel logs

2020-08-31.log

back to list of logs

<str1ngs>hello daviid, I'm just in the process of updating an improving nomad's guix declaration. I'm updating g-golf at the same time to 84e894eb7945c3bcdf7f8d5135c1be3efa524c92. Is that commit okay with you regards to guix.
<str1ngs>?
<daviid>str1ngs: yes
***catonano_ is now known as catonano
<dsmith>daviid: Hey hey. Well, I had another iteration on that re-export macro.
<dsmith>daviid: Now does some error messages for no modules and non-list-like module names.
<dsmith>daviid: Pretty sure I'm done now.
<daviid>dsmith: i did read that, thanks
<lisbeths>I am looking to informally discuss a bit about the guild project and learn more about it. Is it true that guile is now the official extension language of the gnu project?
<jackhill>lisbeths: yes, I believe that is is.
<jackhill>That said, I don't know more about what an official extension language means to GNU. Guile is available in lots of places, but may not be universal.
***wxie1 is now known as wxie
<leoprikler>not universal, but ubiquitous ;)
<dsmith-work>Morning Greetings, Guilers
<RhodiumToad>mornin'
<RhodiumToad>or other time as appropriate
<civodul>hey!
<mwette>Good day!
***ftknox_ is now known as ftknox
***ftknox_ is now known as ftknox
<lloda>is there a way to actively check for C-c ?
<dsmith-work>lloda: Not sure what you mean.
<mwette>lloda: In C, one can set up a signal handler for SIGINT and run the repl with setjmp (or maybe setcontext these days). The sigint handler will longjump to the start of the repl. I'm not sure how Guile deals with this.
<RhodiumToad>... not well
<RhodiumToad>longjmping out of a signal handler is a dangerous practice; if you jump out of a non-signal-safe function, any subsequent call to a non-signal-safe function can crash the process
<RhodiumToad>non-async-signal-safe
<RhodiumToad>guile's own signal handling works by setting a flag in the real sigint handler and then checking it later, at a safe place
<RhodiumToad>you can install your own handler and have it set a flag you can check yourself
<wingo>o/
<davexunit>haven't done much with guile in months. picking it back up again with a prototype for a gpu accelerated vector graphics renderer. here's some bad art demonstrating what it can do so far: https://files.dthompson.us/screenshots/Screenshot%20from%202020-08-31%2011-06-16.png
<str1ngs>davexunit: hello, I'm not sure if you got my message regards to coroutine.scm in guile-2d?
<davexunit>str1ngs: hi, guile-2d hasn't been maintained in years.
<davexunit>I currently maintain a library called chickadee that has a coroutine implementation that is similar.
<str1ngs>davexunit: understandable, It looks like emacsy snarfed coroutine.scm and I'm having a prompt issue that I can't figure out.
<str1ngs>ideally I will change this to something else, but since emacsy is a library I need to time to do the correctly.
<davexunit>what's the backtrace look like? I can make an educated guess
<str1ngs>one sec I'll give you a backtrace. manly it's something contextual but I can't figure out what. ie if I do something from a REPL.
<str1ngs> http://paste.debian.net/1161999
<str1ngs>davexunit: ^
<str1ngs>let me link the emacsy emacsy-message might help
<davexunit>str1ngs: there's not much in this trace. abort to unknown prompt means that something tried aborting to a prompt tag that it wasn't called with.
<davexunit>if you have a prompt tag 'foo, the program needs to be within a (call-with-prompt 'foo ...) form in order for (abort-to-prompt 'foo) to work.
<str1ngs>davexunit great, that might explain the contextual issue then. I appreciate the feedback.
<davexunit>str1ngs: yw
<str1ngs>davexunit: yes! works now
<davexunit>str1ngs: :)
<dsmith-work>wingo: Do you think it could be possible with our current macros to implement something like macroexpand-1. That is, just one level of macro expansion. For debugging/education mainly.
<str1ngs>davexunit: going to digest https://www.gnu.org/software/guile/manual/html_node/Prompts.html . eventually I might be skilled enough to replace coroutine.scm
<str1ngs>davexunit: I apoligize for the simple issue. I was not aware this was a guile primitive and assumed it was emacsy specific.
<davexunit>str1ngs: my latest iteration on the coroutine implementation can be found here: https://git.dthompson.us/chickadee.git/tree/chickadee/scripting/script.scm
<davexunit>for a much more sophisticated system, see guile-fibers.
<str1ngs>I had considered fibers eventually since I'm use to goroutines myself.
<dustyweb>hi hi
<dustyweb>davexunit: !!!!!
<dustyweb>:D
<dustyweb>nice to see you
<davexunit>dustyweb: hey
<dustyweb>davexunit: too bad we didn't get to do our IRL hackathon
<dustyweb>pandemick
<dustyweb>maybe we should still do one online
<davexunit>yeah it's been a rough year
<dustyweb>you holding up ok?
<dustyweb>. o O (maybe that's not a questino for a public channel in a year like 2020!)
<davexunit>kinda
<catonano>dsmith-work: about macroexpand-1: very interesting question !
<catonano>hi davexunit !
<davexunit>hey catonano
<catonano>dsmith-work, dsmith: there was a discussion, some time ago, about support for progressive expansion of macros for debugging/education, on the Guix mailing list
<dustyweb>oh davexunit just saw your vector renderer
<dustyweb>coool :)
<davexunit>thanks
<dsmith-work>catonano: I *think* guile had one a long time ago, like maybe in the 1.4 days.
<dsmith-work>Doesn't help now though..
<catonano>dsmith-work: yes it had one, its removal is mentioned on the NEWS file, you can find it with a grep search
<catonano>IN the NEWS file
<dsmith-work>Ahh, that happened in the 1.8->2.0 update
<catonano>dsmith-work: there's a thread in the guile ml (not guix, guile) titled "macroexpand-1" it's of may 21st 2018, I opened it
<catonano>dsmith-work: and then there's another thread in the guix ml titled "my latest blog post", it's of june 7th 2018. It's a bit unfortunate but it expands on macroexpand-1 for debugging/educational purposes
<dsmith-work>I see Mark digging into this at https://lists.gnu.org/archive/html/guile-user/2018-05/msg00040.html
<catonano>dsmith-work: right
<dsmith-work>I'm mostly interested in "what does this expand into", without going all the way down to tree-il or whatever.
<catonano>dsmith-work: that's exactly what I was looking for, at the time
<catonano>th eanswer is that that would be a different artefact, the current expansion can't be reused for debugging/education. And a different artefatc isn't currently available because nobody went and made it, as fo rmany other things
<catonano>that's a brutal syntesis
<wingo>dsmith-work: i am not sure. would you expand the outermost form only?
<dsmith-work>wingo: Yes. Only the outermost.
<wingo>then no variables are lexically bound?
<wingo>that would be possible to build, i think
<dsmith-work>wingo: As a fallback, merely quoting the template expression is pretty good.
<dsmith-work>wingo: With a complicated (long) macro, that is possibly recursive, it would be great to see what happened.
<dsmith-work>(the quote trick from http://www.phyast.pitt.edu/~micheles/syntax-rules.pdf#page=4 )
<hendursaga>Are there any helper functions for Guile similar to, say, Python's os.path.join? Built-in?
<civodul>hendursaga: you can try (string-join '("a" "b" "c") "/")
<civodul>it's just string manipulation but might suit your needs
<stis>hey guilers!
<hendursaga>civodul: OK but a cross-platform file delimiter, say?
<str1ngs>you can replaces "/" with file-name-separator-string for more windows support
<str1ngs>have not tried that way on windows but should word
<str1ngs>work*
<hendursaga>I think I saw that somewhere, yeah
<civodul>hendursaga: you can use file-name-separator-string instead of "/"
<civodul>ah yes, what str1ngs wrote :-)
<civodul>but IIUC "/" works everywhere nowadays, even on Windows
<dsmith>civodul: Always has.
<dsmith>At the file open() level anyway.