<stis>Sould I make a reader macro that inline python expressions? WDYT <stis>Any sugestion how to prefix it? like #"f(x,*l)[n.m].sort()" <stis>or #py f(x,*l)[n.m].sort(), using the parser <drakonis>i think guile already has procedures that allow you to read inlined code <drakonis>it just doesn't come with any fancy syntax for that <mwette>In nyacc, I use #<lang: ... >#; e.g., #<javascript: var a = 1 ># <drakonis>welp, time to start writing an event loop library <dsmith>drakonis: Something like libevent? <dsmith>Like the C libevent (or is it libev ?) <drakonis>wasnt sure if i wanted to pull in more C dependencies for guile and guix <dsmith>drakonis: Um. I was asking if the event loop library you talking about will something like the C lib{ev,event} library. <drakonis>i'll reference them while implementing it in guile <dsmith>Is fibers like that? (I've never looked at fibers) <drakonis>ah and goblins, but that one's still not there yet <drakonis>8sync already provides event loop features <mwette>I think libevent is a wrapper for epoll and the bsd equiv.; there are ffi wrappers in nyacc <mwette>Fibers was written on top of epoll (when I first checked) but may support others (kqueue) now?? <stis>hmm python on guile have bitrot, got it to compile better now <stis>on latest and greatest guile <stis>at least it now compiles some of the py librray files <stis>i'm not compiled everything yet .... <dsmith>A few years ago, I read that wingo modeled fibers on Go channels. So looked into Go. <dsmith>Was very easy to learn, and seemed a fine Python replacement (with static types!) <dsmith>But there was a lot of talk comparing Go with Rust. So I started looking into Rust. <dsmith>Wish I had Rust 20-30 years ago. <dsmith>And it's really weird, for some reason, I've now got this strange desire to re-write stuff in Rust. <drakonis>i thought it was modelled after concurrent ml? <daviid>ah, i was ready to call the doctor for you :):) <daviid>drakonis: ialso thought it was modeled after concurrent ml <daviid>ifind rust very difficult to read, C is much better :):) <daviid>saying this because i had to lookat some gtk4-rust example, which i find next to unreadable, terrible <daviid>anyway, i shall get back to work :) <dsmith>Yeah, I was kindof dissapointed at first. Go is much prettier. <daviid>"...all we need is ... (guile) scheme :)" <daviid>drakonis: i was mentioning guile-a-sync not to 'compete' with fibers, but because it offers various loop-event strategy, even one using GLib, and has an implementation that uses guile-gi and another using g-golf <daviid>drakonis: you don't want to write a event loop 'on your own', unless for studying reasons ... <daviid>not even a binding, it's all out there already ... <drakonis>also it goes into guix and shepherd once it is done <daviid>drakonis: for lerning reasons, fine, to get in shepherd, then pick fibers or guile-a-sync, imo <drakonis>i also need something to stick into the guix daemon rewrite <daviid>i think the secret plan is to get fibers in core guile at some point <drakonis>if i have to use a library to implement it, its probably going to be fibers. <drakonis>i have some mostly grandiose plans for the post rewrite daemon <drakonis>but it replaces a large amount of features already in baseline guile <drakonis>correction, it combines a whole lot of them together <drakonis>anyways, i think fibers might be a better fit because it provides the flexibility i want <drakonis>daviid: do you know anything about guile being able to enter sub-repls on demand? <drakonis>ie: whenever someone connects, spawn a sub-repl that does not interact with other running instances but is a mirror of the original at spawning? <daviid>drakonis: is that even possible? <drakonis>there have been attempts to do that with schemes <daviid>but no, i don't know 'anything about that' - my knowledge is admittedly limited in that domain though, i use(d) spawn-server-any-port for my clutter examples, but that's about it <drakonis>i'm asking because i'm having a bit of a weird thought about how to handle a multi-user repl running in a daemon <drakonis>getting ahead of myself because i havent finished the important parts of the daemon rewrite <drakonis>hm, looks like fibers needs to be touched up ***daviid` is now known as daviid
<dsmith>drakonis: Ya, bitrot always seems to set in. <allana>Hi guile! newbie question: I am using nyacc to create a FFI to C library. If I want to call a C function in that library that has an argument for a buffer to write to, is there a scheme expression for constructing a buffer? <mwette>You need to create the buffer. I guess the argument is a pointer. So you can use make-bytevector to create the buffer. <mwette>I believe nyacc will handle the bytevector->pointer convertion for you. (let ((bv (make-bytevector xx))) (f bv)) <drakonis>wingo: any plans to merge fibers into mainline guile? <lampilelo>does scm_malloc() ensure that the SCM fields of a struct allocated by it are tracked by the gc (i don't mean managed by the gc, just tracked for references to SCM objects)? based on what i read in the manual, i lean towards "no", but i'm not 100% sure <ArneBab>Is there a way to get SSL support in the web module? I’d like to avoid setting up a full-blown server just to terminate SSL connections. <lilyp>lampilelo: there should be a gc_malloc and gc_malloc_pointerless IIRC <lampilelo>lilyp: i know, that's not what i was asking about, i guess i'll have to check the source to be certain