IRC channel logs

2023-05-20.log

back to list of logs

<sneek>chrislck: Greetings :D
<chrislck>sneek: botsnack
<sneek>:)
<apteryx>hm, how can I connect an input pipe to an output pipe?
<apteryx>like I would in shell: "btrfs send ... | btrfs receive ..."
<apteryx>do I need to use fork and dup2 ?
<apteryx>I think I just need a pipe, and connecting both ends correctly
<apteryx>perhaps I can "link" them via sendfile?
<apteryx>nope, not with a Guile-SSH open-input-pipe: sendfile: Wrong type argument in position 1 (expecting open file port): #<output: channel (open) 7fe02ba40260>
<apteryx>Buffering typo in manual: force-otput
<apteryx>oh! spawn seems of help
<apteryx>ERROR: failed to read stream from kernel: Bad file descriptor ^^'
<stis>Hello! Some cool progress with python on guile!: http://itampe.com/category/computers.html
<stis>Right now I'm working on a VM and explore C a bit though
<stis>so since a couple of month's time mostly C hacking.
<stis>and of cause a deep into the foundations of physics: http://itampe.com/category/math-and-physics.html
<wingo>for those interested in the cps level of guile's compiler -- https://wingolog.org/archives/2023/05/20/approaching-cps-soup
<stis>wingo: one shot continuation is a real performance booster!! I think we should consider having them in guile!
<wingo>do you combine them with spaghetti stacks or something like that?
<stis>wingo: lovely present (re your blog link), will light up my morning
<stis>yes, if you with sphagetti stacs mean that one uses multiple local stacks, then yes. got 60M iteratins/s with a one shot continuation in my python-on-guile while execting a python generator
<stis>I think it's 7-10X faster then with vanilla guile continuations and that is for a very simple continuation that does not contain much stack to copy
<stis>see link above
<stis>I believe this would boost especially fibers, if not for some issues like each thread running a long time or that creation is heavier or something like that.
<stis>wingo: ^
<wingo>yes certainly. but i wonder, what would the cost be if allocation were cheaper and bump-pointer
<stis>AS you know I have worked hard with the prolog usage pattern and there one can take advantage of a bump pointer allocation
<stis>one can detect at rewinding the cases which still are alive and migrate those stacks to heap. If they are few and long between one have a quite good performance and low overhead in the creation of the pshagetti stacks
<stis>So in your vm engine you maintain one big array and split that up with pointer bumping to the different stacks. Multi threding can be a trickery though
<stis>So if you in your function instantiate a generator to an iterator and creates a continuation run the iteration and then exit's the function you would not need to mitigate the sphagetti stack to the heap
<stis>I am actually designing a VM that in the design assumes this kind of pattern right now
<wingo>neat
<stis>So when creating a continuation of this kind, add a unwind/rewind context that when the iterator has finished set the state of that context so that you know that you can skip the heap transfer and you are good to go
<stis>skip the heap transfer at unwinding the call and you are good to go
<stis>I think I'll start documenting the environment soon. It will be a relative slow VM but should be superfast at moving entities over the network as all data is compressed.
<stis>I though that that design pattern was not well explored (maybe due to good reasons) so I could as well do that
<stis>I plan to make a simple scheme on of cause
<stis>on it
<stis>wingo: nice post. Made my morning and the cofee tated better :-)
<tohoyn>snack: hello
<tohoyn>sneek: hello
<chrislck>CPS soup, yummy lunch
<mwette>I played with the cps approach, but have stayed w/ tree-il. Maybe I'll try again some day. The following has compile-tree-il and compile-cps : https://git.savannah.nongnu.org/cgit/nyacc.git/tree/examples/nyacc/lang/calc/compiler.scm
<civodul>wait, why am i just discovering that ice-9 match supports quasiquote notation?!
<civodul>as in (match x (`(1 2 ,y) y))
<civodul>seriously
<civodul>twasn't the case "when i was young"
<civodul>it was already the case in 2010 apparently
<civodul>go figure
<janneke>nice, no more (? (const (cute equal? ...))) ;)
<stis>\me starts hacking again ...
<mwette>civodul: that's a good one; with all the gems in guile, no one can escape overlooking a few
<civodul>mwette: heh!
<civodul>yet i'm the one who imported it from Alex Shinn's repo back in the day
<civodul>proof that i don't know what i'm doing :-)
<civodul>i mean, when pmatch was added, i think the rationale was precisely that it supports quasiquote style
<sneek>Yey! chrislck is back!!
<RhodiumToad>...
<chrislck>sneek: botsnack
<sneek>:)
<chrislck>yay
<mwette>civodul: I love the quasiquote syntax. Note that sxml-match takes the ` for granted: (sxml-match sx ((abc ,def ,ghi) ...))
<RhodiumToad>speaking of sxml, can we get the upstream SSAX fix imported at some point? it's been years now