It seems make-custom-textual-input-port will solve the problem of intercepting reads from stdin in evaluation thread. It is not in a release version, but is available in guile-next: Thank you to @wingo for implementing it! :) New Guile REPL in one minute. A brief demo of guile-ares-rs (previously known as guile-nrepl) dealing with continuations and infinite recursion. The source code: What a magnificent work on guile hoot, wasm and Spritely Goblins and a stream about it with @daviwil, Robin, @dthompson, @cwebber: @abcdw @dthompson @cwebber Exciting stuff indeed! I fixed the broken stream recording with a new upload: https://www.youtube.com/watch?v=8LuQtoy9NLs Moving from country to country is similar to reinstalling operating system: you verify if your setup is reliable, self-contained and reproducible. I come to Turkey tomorrow. I can't lock (wait on) mutex inside fiber, because it locks the whole kernel thread, so I've took a condition variable, put it inside atomic box and made a nutex. The atomic-box-update! implementation is here: Asyncronous programming feels like a quantum mechanics, you can't know the state of a particular object without touching it. On Implementation of Reusable Threads for Guile. Ordered a new 2tb storage for my laptop. It means that we will test the reproducibilty of my rde config and overall installation experience of rde soon :) For quite some time, I didn't have enough space to maintain VMs, gnu/store and couple of movies at the same time, so I had to cleanup and GC often. Soon it should become much more comfortable to work and live. For people interested on how much storage you need for comfortable work on systems powerd by GNU Guix: I have around 300GB total on all btrfs subvolumes and while it's manageable, it feels quite tight for my everyday research and development duties. After a couple of posts by @krevedkokun in telega guix chat 😄 @abcdw @krevedkokun I feel seen in ways that make me uncomfortable. This clojure-dap project is kicking my arse. Today is a deadline for sending proposals for grant to nlnet: I have half an hour trip to climbing gym and back 3 times a week. Not to waste this time I take my laptop with downloaded materials with me and watch courses. Previously it was OCaml course, now it is Advanced Compilers course: @abcdw score, this one is going in my bookmarks, even if I'm admittedly not prepared for advanced compilers. How about completions in guile-nrepl? Drafted it in a few minutes. But it seems I need to start working on a client as well to make it more capable (for example to show completion types like procedures, symbols, modules). @abcdw oh nice! Might be a great candidate for conjure, the guile over stdio support we currently have isn't great. https://github.com/Olical/conjure Me, trying to explain how guile-nrepl utilizes guile-fibers for asyncronous interruptible evaluation. BTW, I've commited and pushed all the recent local changes. It's not ready for everyday usage, but If you are curious and want to try it out type `make server` and use an nrepl client of your choice (monroe or rail for example). https://git.sr.ht/~abcdw/guile-nrepl Post about rde on lobste.rs, got a link to it in personal messages, IDK how to use it, so I will just share it :) https://lobste.rs/s/xswrjc/rde_tools_for_managing_reproducible @abcdw yeah it would be nice to have explicit control over which thread is performing the evaluation like guile's cooperative repl. that repl was designed to integrate into async event loops (though it uses polling whereas a more modern design would use async i/o) where the evaluation often needs to happen in a "main" thread, not the thread of the repl client. |