Hi Josselin,
Quoting Josselin Poiret (2022-04-28 14:48:55)
> Tanguy LE CARROUR writes:
>
> > I recently switched from Xorg to Wayland and I'm quite happy with my new
> > setup! The only last "little" thing that doesn't work for me is
> > screen-sharing using Icecat and/or Chromium!? :-(
>
> I
Hello Tanguy,
Tanguy LE CARROUR writes:
> I recently switched from Xorg to Wayland and I'm quite happy with my new
> setup! The only last "little" thing that doesn't work for me is
> screen-sharing using Icecat and/or Chromium!? :-(
I know that at least for icecat, it needs to dlopen pipewire f
Hi Josselin, hi Brendan, hi Guix,
Quoting Josselin Poiret (2022-03-29 15:22:35)
> Brendan Tildesley writes:
> > Which environment variables are you talking about? I'm running pipewire on
> > Guix System
> > and it seems to work fine.
>
> Right, I think I conflated too many different things, ba
> What's the shepherd-for-guix patch ? What does it bring to Shepherd ?
https://issues.guix.gnu.org/54216
it basically introduces a shepherd-next package. it's one way to
greatly shorten the edit-compile-test cycle of shepherd within a guix
system vm.
in the current setup, changing the shepherd
Il giorno mar, 29/03/2022 alle 15.29 +, Attila Lendvai ha scritto:
> > > Which socket file?
> > >
> > > (In practice ‘exec-command’ would only fail if the program cannot
> > > be
> > > found.)
> >
> > Attila Lendvai has encountered the socket file to be deleted
> > before,
> > this seemed to
Ludovic Courtès schreef op wo 30-03-2022 om 17:14 [+0200]:
> > (format #t "Accepted connection on ~0@*~a from ~1@*~a." "foo"
> > "bar"))
>
> Hmm that doesn’t seem to work:
>
> --8<---cut here---start->8---
> scheme@(guile-user)> ,use(ice-9 format)
> scheme
Maxime Devos skribis:
> (format #t "Accepted connection on ~0@*~a from ~1@*~a." "foo" "bar"))
Hmm that doesn’t seem to work:
--8<---cut here---start->8---
scheme@(guile-user)> ,use(ice-9 format)
scheme@(guile-user)> (format #f "Accepted connection on ~@0*
Hi,
Attila Lendvai skribis:
> my first ever service has non-trivial work to do in the start GEXP,
> and unsurprisingly, it has often ended up throwing an exception while
> i subled along my learning curve. it's not caught by shepherd right
> around the call to the start GEXP, and reaches a handl
Philip McGrath skribis:
> But, as the above paper says, this means that Chez's `call/cc`,
> `dynamic-wind`, etc. are *unsafe* from the perspective of Racket's
> control primitives. From the docs for Racket's `ffi/unsafe/vm` library [6]:
I think that’s the crux of the problem and widely recognize
Hi!
Philip McGrath skribis:
>> Fibers is used in a single-threaded fashion, which is the main
>> constraint for shepherd since it forks. That also means that fibers
>> cannot be preempted, so it’s fully cooperative scheduling.
>>
>
> Would it be feasible for shepherd *not* to fork?
Sure, but
Ludovic Courtès schreef op di 29-03-2022 om 14:48 [+0200]:
> Maxime Devos skribis:
>
> > To help translators, I would use positional arguments in
> >
> > + (l10n "Accepted connection on ~a from ~:[~a~;~*local process~].")
>
> Hmm so how would you write this?
Here's an example on how to impleme
> > Which socket file?
> >
> > (In practice ‘exec-command’ would only fail if the program cannot be
> > found.)
>
> Attila Lendvai has encountered the socket file to be deleted before,
> this seemed to have been the cause and I have seen a few bug reports
> (about tor?) that might have had the same
Hello Brendan,
Brendan Tildesley writes:
> Which environment variables are you talking about? I'm running pipewire on
> Guix System
>
> and it seems to work fine.
>
>> Best,
Right, I think I conflated too many different things, basically my
use-case was making screensharing work on wlroots-base
Hi!
Ludovic Courtès skribis:
> I have pushed a ‘wip-fibers’ branch of the Shepherd:
>
> https://git.savannah.gnu.org/cgit/shepherd.git/log/?h=wip-fibers
>
> The goal is to make shepherd (the daemon) use Fibers¹ for concurrency.
The latest news are:
1. Support for inetd-style services¹, whe
Maxime Devos skribis:
> Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
> Thoughts?
>
> From service.scm:
>
>> + (define (sleep* n)
>> +;; In general we want to use (@ (fibers) sleep) to yield to the
>> scheduler.
>> +;; However, this code might be non-suspendable--e.g., if t
Ludovic Courtès schreef op di 29-03-2022 om 14:50 [+0200]:
> Maxime Devos skribis:
>
> > What if 'exec-command' in 'fork+exec-command' fails? Is it still the
> > case that the exception bubbles up, eventually causing the socket file
> > to be deleted?
>
> Which socket file?
>
> (In practice ‘e
Ludovic Courtès schreef op di 29-03-2022 om 14:50 [+0200]:
> Which socket file?
The socket created by 'open-server-socket', used by 'herd stop' and the
like.
Greetings,
Maxime.
signature.asc
Description: This is a digitally signed message part
Maxime Devos skribis:
> What if 'exec-command' in 'fork+exec-command' fails? Is it still the
> case that the exception bubbles up, eventually causing the socket file
> to be deleted?
Which socket file?
(In practice ‘exec-command’ would only fail if the program cannot be
found.)
Ludo’.
Maxime Devos skribis:
> To help translators, I would use positional arguments in
>
> + (l10n "Accepted connection on ~a from ~:[~a~;~*local process~].")
Hmm so how would you write this?
Maxime Devos skribis:
> Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
>> Fibers is used in a single-threaded fashion, which is the main
>> constraint for shepherd since it forks. That also means that fibers
>> cannot be preempted, so it’s fully cooperative scheduling.
>
> When hz!=0
Hi!
"pelzflorian (Florian Pelz)" skribis:
> On Wed, Mar 23, 2022 at 11:36:30PM +0100, Ludovic Courtès wrote:
>> Fibers is used in a single-threaded fashion, which is the main
>> constraint for shepherd since it forks. That also means that fibers
>> cannot be preempted, so it’s fully cooperative
Hi,
On 3/29/22 05:36, Maxime Devos wrote:
Philip McGrath schreef op ma 28-03-2022 om 20:14 [-0400]:
Maybe it would be enough for this case for Fibers to provide
variants of `dynamic-wind` and/or `call-with-continuation-barrier`
that cooperate with the Fibers implementation. I don't know if
th
Zhu Zihao schreef op di 29-03-2022 om 18:13 [+0800]:
> IMO the problem is not fork, you can't do anything useful to create
> subprocess without fork on *NIX systems.
>
> fork is allowed to execute in multi-thread environment. It just don't
> care about other threads, it's safe and recommended if y
osal, SRFI-226. In this proposal, call/cc
is reimplemented in delimited control operator.
> Maybe it would be enough for this case for Fibers to provide variants of
> `dynamic-wind` and/or `call-with-continuation-barrier` that cooperate
> with the Fibers implementation. I don't know if
Philip McGrath schreef op ma 28-03-2022 om 20:14 [-0400]:
> Maybe it would be enough for this case for Fibers to provide variants of
> `dynamic-wind` and/or `call-with-continuation-barrier` that cooperate
> with the Fibers implementation. I don't know if that would be possible
> of not—in additi
On 3/28/22 20:14, Philip McGrath wrote:
I'm not sure how useful any of that is, but take it for whatever it's
worth. My overall impression is that the Shepherd on Fibers is a big
step in the right direction. Congrats on the great work!
-Philip
P.S.: If you can get access to a co
sc.sch
>
Maybe it would be enough for this case for Fibers to provide variants of
`dynamic-wind` and/or `call-with-continuation-barrier` that cooperate
with the Fibers implementation. I don't know if that would be possible
of not—in addition to my limited familiarity with Fibers, I hav
On Sun, 27 Mar 2022 22:55:36 +1100
Brendan Tildesley wrote:
> On 27/3/22 01:24, Josselin Poiret wrote:
>
> > Hello Brendan,
> >
> > Brendan Tildesley writes:
> >> I would like to replace pulseaudio with pipewire as the default in
> >> %desktop-services, the only hurdle is how to launch the us
On 27/3/22 01:24, Josselin Poiret wrote:
Hello Brendan,
Brendan Tildesley writes:
I would like to replace pulseaudio with pipewire as the default in
%desktop-services, the only hurdle is how to launch the user daemons in all the
different desktop configurations one might use. Other distros us
Hi Maxim!
Maxim Cournoyer skribis:
>> The goal is to make shepherd (the daemon) use Fibers¹ for concurrency.
>
> Very exciting work! I can't wait to have my 5 min boot reduced (mostly
> busy-waiting on the child-hurd VM to start) ;-).
Same here! The childhurd service will need some help as it
Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
> Thoughts?
To avoid accidentally using threads, perhaps Shepherd could do
(set! call-with-new-thread
(lambda ()
(error "multi-threading is not supported in Shepherd")))
?
Greetings,
Maxime.
signature.asc
Description: This is a
pelzflorian (Florian Pelz) schreef op za 26-03-2022 om 17:52 [+0100]:
> Oh yes, I had not tried that. Thank you Maxime. Still with unchanged
> original shepherd package, I get exactly the same
> shepherd-avahi-daemon.go.drv.gz build failure iff I set (shepherd
> new-shepherd). Therefore I ask ho
On Sat, Mar 26, 2022 at 07:27:00PM +0800, Zhu Zihao wrote:
>
> IIUC, After fork and execute the program, shepherd will wait for the pid
> file to appear. This is a block operation.
>
> Shepherd on Fiber make this operation non-blocking (because the pid file
> is created by Linux kernel, Shepherd
On Sat, Mar 26, 2022 at 12:59:20PM +0100, Maxime Devos wrote:
> Grafting is not necessary. See (guix)Shepherd Services:
>
>
>;; Use own Shepherd package.
>(essential-services
> (modify-services (operating-system-default-essential-services
> this-
Hello Brendan,
Brendan Tildesley writes:
> I would like to replace pulseaudio with pipewire as the default in
> %desktop-services, the only hurdle is how to launch the user daemons in all
> the
> different desktop configurations one might use. Other distros use systemd's
> socket activation to m
Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
Thoughts?
From service.scm:
> + (define (sleep* n)
> +;; In general we want to use (@ (fibers) sleep) to yield to the
> scheduler.
> +;; However, this code might be non-suspendable--e.g., if the user calls
> +;; the 'start'
Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
> Thoughts?
What if 'exec-command' in 'fork+exec-command' fails? Is it still the
case that the exception bubbles up, eventually causing the socket file
to be deleted?
Greetings,
Maxime.
signature.asc
Description: This is a digitally si
Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
> [...]
> Thoughts?
To help translators, I would use positional arguments in
+ (l10n "Accepted connection on ~a from ~:[~a~;~*local process~].")
Greetings,
Maxime.
signature.asc
Description: This is a digitally signed message part
Ludovic Courtès schreef op wo 23-03-2022 om 23:36 [+0100]:
> Fibers is used in a single-threaded fashion, which is the main
> constraint for shepherd since it forks. That also means that fibers
> cannot be preempted, so it’s fully cooperative scheduling.
When hz!=0, guile-fibers uses with-interru
pelzflorian (Florian Pelz) schreef op za 26-03-2022 om 12:06 [+0100]:
> * Lastly I grafted
>
> (define-public shepherd
> (package
> (name "shepherd")
> (replacement new-shepherd)
> …
Grafting is not necessary. See (guix)Shepherd Services:
;; Use own Shepherd package.
IIUC, After fork and execute the program, shepherd will wait for the pid
file to appear. This is a block operation.
Shepherd on Fiber make this operation non-blocking (because the pid file
is created by Linux kernel, Shepherd just need to wait for it), every
service activation runs on its own fib
On Sat, Mar 26, 2022 at 07:09:12PM +0800, Zhu Zihao wrote:
> > So shepherd service authors still cannot write blocking code but need
> > to yield?
>
> IMO, service should not block service, if they have something important
> to do before running a program, why not fork first and do it in the
> chi
Zhu Zihao writes:
> [[PGP Signed Part:Undecided]]
>> So shepherd service authors still cannot write blocking code but need
>> to yield?
>
> IMO, service should not block service, if they have something important
> to do before running a program, why not fork first and do it in the
> child-proces
> So shepherd service authors still cannot write blocking code but need
> to yield?
IMO, service should not block service, if they have something important
to do before running a program, why not fork first and do it in the
child-process (maybe wrap the actual startup program in Guile script)?
--
Hi Ludo! That you add fibers to Shepherd is great news.
On Wed, Mar 23, 2022 at 11:36:30PM +0100, Ludovic Courtès wrote:
> Fibers is used in a single-threaded fashion, which is the main
> constraint for shepherd since it forks. That also means that fibers
> cannot be preempted, so it’s fully coo
Hi Ludo!
Ludovic Courtès writes:
> Hello Guix!
>
> I have pushed a ‘wip-fibers’ branch of the Shepherd:
>
> https://git.savannah.gnu.org/cgit/shepherd.git/log/?h=wip-fibers
>
> The goal is to make shepherd (the daemon) use Fibers¹ for concurrency.
Very exciting work! I can't wait to have my
Hooray!
I think you are doing amazing work! I hope socket activation can be added
because it may be helpful for launching the user services for pipewire, but I've
never really understood how it actually works.
I would like to replace pulseaudio with pipewire as the default in
%desktop-services, the only h
Hello Guix!
I have pushed a ‘wip-fibers’ branch of the Shepherd:
https://git.savannah.gnu.org/cgit/shepherd.git/log/?h=wip-fibers
The goal is to make shepherd (the daemon) use Fibers¹ for concurrency.
Right now, actions in shepherd are all serialized: starting services,
waiting for their PID
49 matches
Mail list logo