* [ANN] Guile-Parallel 1.0.0 released @ 2022-12-31 3:55 Olivier Dion via General Guile related discussions 2022-12-31 9:06 ` Damien Mattei 2022-12-31 19:58 ` Zelphir Kaltstahl 0 siblings, 2 replies; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2022-12-31 3:55 UTC (permalink / raw) To: guile-user Hi Guilers, I'm happy to announce the first release of guile-parallel. A library that offers primitives for parallelization of your programs. Project page: <https://git.sr.ht/~old/guile-parallel> List of features: - Userspace threads (jobs schedulers) - Safe dynamic-wind for all types of threads (kernel and userspace) - sleep, usleep and nsleep for all types of threads - (ice-9 atomic) extensions, e.g. atomic counters - (ice-9 q) wrapper, i.e. safe for all types of threads - Barriers à la Pthread - Condition variables, mutexes and semaphores for kernel and userspace threads - Parallel vector-map vector-count, vector-sort, vector-map-reduce Next features: - Asynchronous I/O - Channels à la Go with a select syntax (maybe?) If there're interests, usages or requests for it, please let me know! I might add it to Guix if some find it useful. Regards, old -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2022-12-31 3:55 [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions @ 2022-12-31 9:06 ` Damien Mattei 2022-12-31 19:58 ` Zelphir Kaltstahl 1 sibling, 0 replies; 22+ messages in thread From: Damien Mattei @ 2022-12-31 9:06 UTC (permalink / raw) To: Olivier Dion; +Cc: guile-user interesting, yesterday i just succed in setting up a // code with Guile that use OpenMP, i will post it in a separate thread. Damien On Sat, Dec 31, 2022 at 4:55 AM Olivier Dion via General Guile related discussions <guile-user@gnu.org> wrote: > Hi Guilers, > > I'm happy to announce the first release of guile-parallel. A library > that offers primitives for parallelization of your programs. > > Project page: <https://git.sr.ht/~old/guile-parallel> > > List of features: > > - Userspace threads (jobs schedulers) > > - Safe dynamic-wind for all types of threads (kernel and userspace) > > - sleep, usleep and nsleep for all types of threads > > - (ice-9 atomic) extensions, e.g. atomic counters > > - (ice-9 q) wrapper, i.e. safe for all types of threads > > - Barriers à la Pthread > > - Condition variables, mutexes and semaphores for kernel and userspace > threads > > - Parallel vector-map vector-count, vector-sort, vector-map-reduce > > Next features: > > - Asynchronous I/O > > - Channels à la Go with a select syntax (maybe?) > > If there're interests, usages or requests for it, please let me know! I > might add it to Guix if some find it useful. > > Regards, > old > > -- > Olivier Dion > oldiob.dev > > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2022-12-31 3:55 [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions 2022-12-31 9:06 ` Damien Mattei @ 2022-12-31 19:58 ` Zelphir Kaltstahl 2022-12-31 20:31 ` Olivier Dion via General Guile related discussions 1 sibling, 1 reply; 22+ messages in thread From: Zelphir Kaltstahl @ 2022-12-31 19:58 UTC (permalink / raw) To: Olivier Dion; +Cc: Guile User Hello Olivier! On 12/31/22 04:55, Olivier Dion via General Guile related discussions wrote: > Hi Guilers, > > I'm happy to announce the first release of guile-parallel. A library > that offers primitives for parallelization of your programs. > > Project page: <https://git.sr.ht/~old/guile-parallel> > > List of features: > > - Userspace threads (jobs schedulers) > > - Safe dynamic-wind for all types of threads (kernel and userspace) > > - sleep, usleep and nsleep for all types of threads > > - (ice-9 atomic) extensions, e.g. atomic counters > > - (ice-9 q) wrapper, i.e. safe for all types of threads > > - Barriers à la Pthread > > - Condition variables, mutexes and semaphores for kernel and userspace > threads > > - Parallel vector-map vector-count, vector-sort, vector-map-reduce > > Next features: > > - Asynchronous I/O > > - Channels à la Go with a select syntax (maybe?) > > If there're interests, usages or requests for it, please let me know! I > might add it to Guix if some find it useful. > > Regards, > old I looked at the examples in the repository a bit and it looks impressive! Maybe I can already make use of it in coming AoC puzzles. I am currently a bit confused about where the line is between a good use-case for guile-parallel and guile-fibers. Or whether they could work well together or the people making them should work together ; ) Regards, Zelphir -- repositories: https://notabug.org/ZelphirKaltstahl ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2022-12-31 19:58 ` Zelphir Kaltstahl @ 2022-12-31 20:31 ` Olivier Dion via General Guile related discussions 2023-01-02 16:13 ` Greg Troxel 2023-01-08 13:30 ` Zelphir Kaltstahl 0 siblings, 2 replies; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2022-12-31 20:31 UTC (permalink / raw) To: Zelphir Kaltstahl; +Cc: Guile User On Sat, 31 Dec 2022, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> wrote: > Maybe I can already make use of it in coming AoC puzzles. Any sort of feeback is welcome! > I am currently a bit confused about where the line is between a good use-case > for guile-parallel and guile-fibers. Or whether they could work well together or > the people making them should work together ; ) I haven't use fibers a lot, but I think that if you ever need to handle asynchronous I/O, for now you should stick with fibers. Also, fibers was written by peoples that have a way better understanding of Guile internal then I do, so I would expect it to be better in some areas. It also use epoll(2) instead of select(2), which is way better for events listening. I will make the change once Guile has native support for epoll(2). I currently only use select(2) for listening on timerfd_create(2) timers to handle sleeps of userspace threads, so the impact is marginal. Where I can see a clear difference is in the primitives offered to the users. Fibers works with channels and follows a paradigm à la Concurrent ML while Parallel works with traditionnal primitives like barriers, mutexes, semaphores, etc. Parallel also aims at providing useful parallel algorithms to the users. e.g. vector sort. The ultimate goal of Parallel is to make communication between userspace threads and kernel threads transparent. All synchronization primitives should work for all threads types and for different schedulers. I think that one can quickly use Parallel without modifying too much its code base to make it work, e.g. by replacing (rnrs sorting) vector-sort with (parallel vector) parallel-vector-sort. You can also replace the usage of (ice-9 futures) with (parallel futures). The latter scale better from my benchmarks. -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2022-12-31 20:31 ` Olivier Dion via General Guile related discussions @ 2023-01-02 16:13 ` Greg Troxel 2023-01-02 17:59 ` Maxime Devos 2023-01-02 20:28 ` Olivier Dion via General Guile related discussions 2023-01-08 13:30 ` Zelphir Kaltstahl 1 sibling, 2 replies; 22+ messages in thread From: Greg Troxel @ 2023-01-02 16:13 UTC (permalink / raw) To: Olivier Dion via General Guile related discussions; +Cc: Zelphir Kaltstahl O Olivier Dion via General Guile related discussions <guile-user@gnu.org> writes: > I haven't use fibers a lot, but I think that if you ever need to handle > asynchronous I/O, for now you should stick with fibers. Also, fibers > was written by peoples that have a way better understanding of Guile > internal then I do, so I would expect it to be better in some areas. It > also use epoll(2) instead of select(2), which is way better for events > listening. I will make the change once Guile has native support for > epoll(2). I currently only use select(2) for listening on > timerfd_create(2) timers to handle sleeps of userspace threads, so the > impact is marginal. epoll is as I understand it linux only so that's not a reasonable dependency. fibers now works with libevent which wraps multiple faclilities and is thus pretty portable. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-02 16:13 ` Greg Troxel @ 2023-01-02 17:59 ` Maxime Devos 2023-01-02 20:45 ` Greg Troxel 2023-01-02 20:28 ` Olivier Dion via General Guile related discussions 1 sibling, 1 reply; 22+ messages in thread From: Maxime Devos @ 2023-01-02 17:59 UTC (permalink / raw) To: Greg Troxel, Olivier Dion via General Guile related discussions Cc: Zelphir Kaltstahl [-- Attachment #1.1.1: Type: text/plain, Size: 1041 bytes --] On 02-01-2023 17:13, Greg Troxel wrote: > O > Olivier Dion via General Guile related discussions <guile-user@gnu.org> > writes: > >> I haven't use fibers a lot, but I think that if you ever need to handle >> asynchronous I/O, for now you should stick with fibers. Also, fibers >> was written by peoples that have a way better understanding of Guile >> internal then I do, so I would expect it to be better in some areas. It >> also use epoll(2) instead of select(2), which is way better for events >> listening. I will make the change once Guile has native support for >> epoll(2). I currently only use select(2) for listening on >> timerfd_create(2) timers to handle sleeps of userspace threads, so the >> impact is marginal. > > epoll is as I understand it linux only so that's not a reasonable > dependency. fibers now works with libevent which wraps multiple > faclilities and is thus pretty portable. > Guile-Fibers still uses epoll on Linux, on other systems it uses libevent. Greetings, Maxime. [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 929 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-02 17:59 ` Maxime Devos @ 2023-01-02 20:45 ` Greg Troxel 2023-01-02 21:24 ` Olivier Dion via General Guile related discussions 0 siblings, 1 reply; 22+ messages in thread From: Greg Troxel @ 2023-01-02 20:45 UTC (permalink / raw) To: Maxime Devos Cc: Olivier Dion via General Guile related discussions, Zelphir Kaltstahl Maxime Devos <maximedevos@telenet.be> writes: >> epoll is as I understand it linux only so that's not a reasonable >> dependency. fibers now works with libevent which wraps multiple >> faclilities and is thus pretty portable. > > Guile-Fibers still uses epoll on Linux, on other systems it uses libevent. Understood - I just meant that fibers is now (at least 99% of the way) to "broadly portable". I don't know the details of Olivier's question and libevent, but would suggest that libevent does the sort of things that are needed and is the standard portable approach and is thus worth a hard look as the presumptive right answer, absent something better that only relies on what POSIX requires (and what's on Hurd :-). ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-02 20:45 ` Greg Troxel @ 2023-01-02 21:24 ` Olivier Dion via General Guile related discussions 2023-01-02 23:56 ` Olivier Dion via General Guile related discussions 0 siblings, 1 reply; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-02 21:24 UTC (permalink / raw) To: Greg Troxel, Maxime Devos Cc: Olivier Dion via General Guile related discussions, Zelphir Kaltstahl On Mon, 02 Jan 2023, Greg Troxel <gdt@lexort.com> wrote: > Maxime Devos <maximedevos@telenet.be> writes: > >>> epoll is as I understand it linux only so that's not a reasonable >>> dependency. fibers now works with libevent which wraps multiple >>> faclilities and is thus pretty portable. >> >> Guile-Fibers still uses epoll on Linux, on other systems it uses libevent. > > Understood - I just meant that fibers is now (at least 99% of the way) > to "broadly portable". > > I don't know the details of Olivier's question and libevent, but would > suggest that libevent does the sort of things that are needed and is the > standard portable approach and is thus worth a hard look as the > presumptive right answer, absent something better that only relies on > what POSIX requires (and what's on Hurd :-). Hmm from a description I see on Guix, libev has relative timers. I don't know if it's portable like libevent though. Will look at both thanks! -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-02 21:24 ` Olivier Dion via General Guile related discussions @ 2023-01-02 23:56 ` Olivier Dion via General Guile related discussions 2023-01-03 10:57 ` Damien Mattei 0 siblings, 1 reply; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-02 23:56 UTC (permalink / raw) To: Greg Troxel, Maxime Devos Cc: Olivier Dion via General Guile related discussions, Zelphir Kaltstahl On Mon, 02 Jan 2023, Olivier Dion via General Guile related discussions <guile-user@gnu.org> wrote: > On Mon, 02 Jan 2023, Greg Troxel <gdt@lexort.com> wrote: >> Maxime Devos <maximedevos@telenet.be> writes: >> >>>> epoll is as I understand it linux only so that's not a reasonable >>>> dependency. fibers now works with libevent which wraps multiple >>>> faclilities and is thus pretty portable. >>> >>> Guile-Fibers still uses epoll on Linux, on other systems it uses libevent. >> >> Understood - I just meant that fibers is now (at least 99% of the way) >> to "broadly portable". >> >> I don't know the details of Olivier's question and libevent, but would >> suggest that libevent does the sort of things that are needed and is the >> standard portable approach and is thus worth a hard look as the >> presumptive right answer, absent something better that only relies on >> what POSIX requires (and what's on Hurd :-). > > Hmm from a description I see on Guix, libev has relative timers. I > don't know if it's portable like libevent though. Will look at both > thanks! Well from my reading, it might be interesting to have a guile-libev. -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-02 23:56 ` Olivier Dion via General Guile related discussions @ 2023-01-03 10:57 ` Damien Mattei 2023-01-03 21:40 ` guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) Maxime Devos 2023-01-03 22:06 ` [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions 0 siblings, 2 replies; 22+ messages in thread From: Damien Mattei @ 2023-01-03 10:57 UTC (permalink / raw) To: Olivier Dion Cc: Greg Troxel, Maxime Devos, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl on Mac os i have (only) one error: In procedure dlsym: Error resolving "timerfd_create": "dlsym(RTLD_DEFAULT, timerfd_create): symbol not found" On Tue, Jan 3, 2023 at 12:57 AM Olivier Dion via General Guile related discussions <guile-user@gnu.org> wrote: > On Mon, 02 Jan 2023, Olivier Dion via General Guile related discussions < > guile-user@gnu.org> wrote: > > On Mon, 02 Jan 2023, Greg Troxel <gdt@lexort.com> wrote: > >> Maxime Devos <maximedevos@telenet.be> writes: > >> > >>>> epoll is as I understand it linux only so that's not a reasonable > >>>> dependency. fibers now works with libevent which wraps multiple > >>>> faclilities and is thus pretty portable. > >>> > >>> Guile-Fibers still uses epoll on Linux, on other systems it uses > libevent. > >> > >> Understood - I just meant that fibers is now (at least 99% of the way) > >> to "broadly portable". > >> > >> I don't know the details of Olivier's question and libevent, but would > >> suggest that libevent does the sort of things that are needed and is the > >> standard portable approach and is thus worth a hard look as the > >> presumptive right answer, absent something better that only relies on > >> what POSIX requires (and what's on Hurd :-). > > > > Hmm from a description I see on Guix, libev has relative timers. I > > don't know if it's portable like libevent though. Will look at both > > thanks! > > Well from my reading, it might be interesting to have a guile-libev. > > -- > Olivier Dion > oldiob.dev > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) 2023-01-03 10:57 ` Damien Mattei @ 2023-01-03 21:40 ` Maxime Devos 2023-01-03 22:38 ` Damien Mattei 2023-01-03 22:06 ` [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions 1 sibling, 1 reply; 22+ messages in thread From: Maxime Devos @ 2023-01-03 21:40 UTC (permalink / raw) To: Damien Mattei, Olivier Dion Cc: Greg Troxel, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl [-- Attachment #1.1.1: Type: text/plain, Size: 568 bytes --] On 03-01-2023 11:57, Damien Mattei wrote: > on Mac os i have (only) one error: > In procedure dlsym: Error resolving "timerfd_create": > "dlsym(RTLD_DEFAULT, timerfd_create): symbol not found" Is this a bug report for Guile-Fibers? If so, could you provide basic information like which commit you are using, the backtrace, which file is being compiled (if any), ...? Also, while you can send bug reports by e-mail, if you have a GitHub account, then the bug tracker at https://github.com/wingo/fibers/issues is preferred. Greetings, Maxime. [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 929 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) 2023-01-03 21:40 ` guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) Maxime Devos @ 2023-01-03 22:38 ` Damien Mattei 2023-01-03 22:43 ` Maxime Devos 2023-01-04 1:28 ` Olivier Dion via General Guile related discussions 0 siblings, 2 replies; 22+ messages in thread From: Damien Mattei @ 2023-01-03 22:38 UTC (permalink / raw) To: Maxime Devos Cc: Olivier Dion, Greg Troxel, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl no i did not test fibers ,just look at it, but perhaps it is necessary for parallel ? i saw the configure file (of parallel) claim about fibers? i will download fibers and test on Mac again and hope to finish reinstalling the recent Linux tomorrow (complicated because triple boot,MacOS, Linux kicked Windows......) I can not compare parallel and openMP because of missing timerfd_create on mac os . If i do a : man timerfd_create on linux i got the doc in the manual,but nothing on Mac os,timerfd_create seems to be part of Gnu C library.But you should know that better than me. On Tue, Jan 3, 2023 at 10:40 PM Maxime Devos <maximedevos@telenet.be> wrote: > > > On 03-01-2023 11:57, Damien Mattei wrote: > > on Mac os i have (only) one error: > > In procedure dlsym: Error resolving "timerfd_create": > > "dlsym(RTLD_DEFAULT, timerfd_create): symbol not found" > > Is this a bug report for Guile-Fibers? If so, could you provide basic > information like which commit you are using, the backtrace, which file > is being compiled (if any), ...? > > Also, while you can send bug reports by e-mail, if you have a GitHub > account, then the bug tracker at https://github.com/wingo/fibers/issues > is preferred. > > Greetings, > Maxime. > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) 2023-01-03 22:38 ` Damien Mattei @ 2023-01-03 22:43 ` Maxime Devos 2023-01-04 1:28 ` Olivier Dion via General Guile related discussions 1 sibling, 0 replies; 22+ messages in thread From: Maxime Devos @ 2023-01-03 22:43 UTC (permalink / raw) To: Damien Mattei Cc: Olivier Dion, Greg Troxel, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl [-- Attachment #1.1.1: Type: text/plain, Size: 752 bytes --] On 03-01-2023 23:38, Damien Mattei wrote: > no i did not test fibers ,just look at it, but perhaps it is necessary > for parallel ? [...] IIUC, it's a bug report for Guile Parallel then? > i saw the configure file (of parallel) claim about fibers? i will download fibers and test on Mac again To be clear, I did not propose installing Guile Fibers. AFAIK, Guile Fibers is not a dependency of Guile Parallel, but I didn't check. > If i do a :man timerfd_create on linux i got the doc in the manual,but > nothing on Mac os,timerfd_create seems to be part of Gnu C library.But > you should know that better than me. I make no claims towards the existence or non-existence of timerfd_create on Mac. Greetings, Maxime. [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 929 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) 2023-01-03 22:38 ` Damien Mattei 2023-01-03 22:43 ` Maxime Devos @ 2023-01-04 1:28 ` Olivier Dion via General Guile related discussions 1 sibling, 0 replies; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-04 1:28 UTC (permalink / raw) To: Damien Mattei, Maxime Devos Cc: Greg Troxel, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl On Tue, 03 Jan 2023, Damien Mattei <damien.mattei@gmail.com> wrote: > no i did not test fibers ,just look at it, but perhaps it is necessary for > parallel ? i saw the configure file (of parallel) claim about fibers? > i Only for running a certain benchmark against fibers. > will download fibers and test on Mac again and hope to finish reinstalling > the recent Linux tomorrow (complicated because triple boot,MacOS, Linux > kicked Windows......) I can not compare parallel and openMP because of > missing timerfd_create on mac os . > If i do a : > man timerfd_create on linux i got the doc in the manual,but nothing on Mac > os,timerfd_create seems to be part of Gnu C library.But you should know > that better than me. timerfd is Linux only as far I as I know. -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-03 10:57 ` Damien Mattei 2023-01-03 21:40 ` guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) Maxime Devos @ 2023-01-03 22:06 ` Olivier Dion via General Guile related discussions 2023-01-03 22:29 ` Damien Mattei 1 sibling, 1 reply; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-03 22:06 UTC (permalink / raw) To: Damien Mattei Cc: Greg Troxel, Maxime Devos, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl On Tue, 03 Jan 2023, Damien Mattei <damien.mattei@gmail.com> wrote: > on Mac os i have (only) one error: > In procedure dlsym: Error resolving "timerfd_create": "dlsym(RTLD_DEFAULT, > timerfd_create): symbol not found" I can replace timerfd with timer_create(). It's POSIX compliant. -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-03 22:06 ` [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions @ 2023-01-03 22:29 ` Damien Mattei 0 siblings, 0 replies; 22+ messages in thread From: Damien Mattei @ 2023-01-03 22:29 UTC (permalink / raw) To: Olivier Dion Cc: Greg Troxel, Maxime Devos, Olivier Dion via General Guile related discussions, Zelphir Kaltstahl timerf_create does not exist on Mac OS system.Perhaps a call to a posix function will be ok. I'm reinstalling a new linux so i can not compare, i try on a Linux with Guile 3.0.1 but unfortunately (foreign-library) is missing.Hope i could have more info tomorrow.... On Tue, Jan 3, 2023 at 11:06 PM Olivier Dion <olivier.dion@polymtl.ca> wrote: > On Tue, 03 Jan 2023, Damien Mattei <damien.mattei@gmail.com> wrote: > > on Mac os i have (only) one error: > > In procedure dlsym: Error resolving "timerfd_create": > "dlsym(RTLD_DEFAULT, > > timerfd_create): symbol not found" > > I can replace timerfd with timer_create(). It's POSIX compliant. > > -- > Olivier Dion > oldiob.dev > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-02 16:13 ` Greg Troxel 2023-01-02 17:59 ` Maxime Devos @ 2023-01-02 20:28 ` Olivier Dion via General Guile related discussions 1 sibling, 0 replies; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-02 20:28 UTC (permalink / raw) To: Greg Troxel, Olivier Dion via General Guile related discussions Cc: Zelphir Kaltstahl On Mon, 02 Jan 2023, Greg Troxel <gdt@lexort.com> wrote: > O > Olivier Dion via General Guile related discussions <guile-user@gnu.org> > writes: > >> I haven't use fibers a lot, but I think that if you ever need to handle >> asynchronous I/O, for now you should stick with fibers. Also, fibers >> was written by peoples that have a way better understanding of Guile >> internal then I do, so I would expect it to be better in some areas. It >> also use epoll(2) instead of select(2), which is way better for events >> listening. I will make the change once Guile has native support for >> epoll(2). I currently only use select(2) for listening on >> timerfd_create(2) timers to handle sleeps of userspace threads, so the >> impact is marginal. > > epoll is as I understand it linux only so that's not a reasonable > dependency. fibers now works with libevent which wraps multiple > faclilities and is thus pretty portable. I typically only develop for Linux. But I don't mind using an abstraction that could be portable for other systems. Do you think libevent has something similar to timerfd_create(2)? That is, timers represented by file descriptor. -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2022-12-31 20:31 ` Olivier Dion via General Guile related discussions 2023-01-02 16:13 ` Greg Troxel @ 2023-01-08 13:30 ` Zelphir Kaltstahl 2023-01-08 14:44 ` Olivier Dion via General Guile related discussions 1 sibling, 1 reply; 22+ messages in thread From: Zelphir Kaltstahl @ 2023-01-08 13:30 UTC (permalink / raw) To: Olivier Dion; +Cc: Guile User On 12/31/22 21:31, Olivier Dion wrote: > On Sat, 31 Dec 2022, Zelphir Kaltstahl<zelphirkaltstahl@posteo.de> wrote: > >> Maybe I can already make use of it in coming AoC puzzles. > Any sort of feeback is welcome! Hello Olivier! May I ask how to make use of the library? I cloned the project onto my local machine in a subfolder of a project, in which I want to use it. There are some guix files in the guile-parallel repository, but I am unsure how to make use of it as a guix package. I think there was a possibility to use local code as a package in a guix shell, but I cannot find the info how to do it, so I tried the following: ~~~~ # from the main dir of my project # guile-parallel is cloned into the subfolder guile-parallel # so basically: git clone git-repo-url, nothing more guix shell -L guile-parallel guile -- guile -L . %%%% Starting test (parallel atomic) (Writing full log to "(parallel atomic).log") ~~~~ At that step it hangs. Doesn't do anything. Does not put load on my CPU, just hangs. Maybe I am doing it wrong. Best regards, Zelphir -- repositories:https://notabug.org/ZelphirKaltstahl ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-08 13:30 ` Zelphir Kaltstahl @ 2023-01-08 14:44 ` Olivier Dion via General Guile related discussions 2023-01-08 15:17 ` Zelphir Kaltstahl 0 siblings, 1 reply; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-08 14:44 UTC (permalink / raw) To: Zelphir Kaltstahl; +Cc: Guile User On Sun, 08 Jan 2023, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> wrote: > On 12/31/22 21:31, Olivier Dion wrote: >> On Sat, 31 Dec 2022, Zelphir Kaltstahl<zelphirkaltstahl@posteo.de> wrote: >> >>> Maybe I can already make use of it in coming AoC puzzles. >> Any sort of feeback is welcome! > > Hello Olivier! > > May I ask how to make use of the library? I cloned the project onto my local > machine in a subfolder of a project, in which I want to use it. There are some > guix files in the guile-parallel repository, but I am unsure how to make use of > it as a guix package. I think there was a possibility to use local code as a > package in a guix shell, but I cannot find the info how to do it, so I tried the > following: I could publish the next revision to Guix! In the mean time, I think you can do the following from your root project directory: --8<---------------cut here---------------start------------->8--- guix shell \ --file=guile-parallel/.guix.scm \ --with-source=guile-parallel=guile-parallel --8<---------------cut here---------------end--------------->8--- You can replace `guix-shell' with `guix-build' to get the path where guile-parallel was built. Also you could copy the package definition of guile-parallel under guile-parallel/.guix.scm in your project tree somehwere. Then, you can use `--with-source=guile-parallel=https://git.sr.ht/~old/guile-parallel/archive/v1.0.0.tar.gz' to use release source. Hope that help! -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-08 14:44 ` Olivier Dion via General Guile related discussions @ 2023-01-08 15:17 ` Zelphir Kaltstahl 2023-01-08 15:55 ` Olivier Dion via General Guile related discussions 0 siblings, 1 reply; 22+ messages in thread From: Zelphir Kaltstahl @ 2023-01-08 15:17 UTC (permalink / raw) To: Olivier Dion; +Cc: Guile User On 1/8/23 15:44, Olivier Dion wrote: > On Sun, 08 Jan 2023, Zelphir Kaltstahl<zelphirkaltstahl@posteo.de> wrote: >> On 12/31/22 21:31, Olivier Dion wrote: >>> On Sat, 31 Dec 2022, Zelphir Kaltstahl<zelphirkaltstahl@posteo.de> wrote: >>> >>>> Maybe I can already make use of it in coming AoC puzzles. >>> Any sort of feeback is welcome! >> Hello Olivier! >> >> May I ask how to make use of the library? I cloned the project onto my local >> machine in a subfolder of a project, in which I want to use it. There are some >> guix files in the guile-parallel repository, but I am unsure how to make use of >> it as a guix package. I think there was a possibility to use local code as a >> package in a guix shell, but I cannot find the info how to do it, so I tried the >> following: > I could publish the next revision to Guix! In the mean time, I think > you can do the following from your root project directory: > > --8<---------------cut here---------------start------------->8--- > guix shell \ > --file=guile-parallel/.guix.scm \ > --with-source=guile-parallel=guile-parallel > --8<---------------cut here---------------end--------------->8--- > > You can replace `guix-shell' with `guix-build' to get the path where > guile-parallel was built. > > Also you could copy the package definition of guile-parallel under > guile-parallel/.guix.scm in your project tree somehwere. Then, you can > use > `--with-source=guile-parallel=https://git.sr.ht/~old/guile-parallel/archive/v1.0.0.tar.gz' > to use release source. > > Hope that help! Hello Olivier, thank you for the reply! I tried the following: ~~~~ user@user-desktop:~/dev/advent-of-code-2022/day-14$ guix shell \ > --file=guile-parallel/.guix.scm \ > --with-source=guile-parallel=guile-parallel user@user-desktop:~/dev/advent-of-code-2022/day-14$ guile GNU Guile 3.0.8 Copyright (C) 1995-2021 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (use-modules ... (parallel)) While compiling expression: no code for module (parallel) scheme@(guile-user)> ~~~~ That one does not seem to work. ~~~~ user@user-desktop:~/dev/advent-of-code-2022/day-14$ guix build --file=guile-parallel/.guix.scm --with-source=guile-parallel=guile-parallel /gnu/store/8fm8m43m2rx1b6slnldfi5q8rqw45kr8-guile-parallel-0.0.0 ~~~~ That one gives the filename. ~~~~ user@user-desktop:~/dev/advent-of-code-2022/day-14$ cp guile-parallel/.guix.scm . user@user-desktop:~/dev/advent-of-code-2022/day-14$ guix shell --with-source=guile-parallel=https://git.sr.ht/~old/guile-parallel/archive/v1.0.0.tar.gz guix shell: warning: no packages specified; creating an empty environment guix shell: warning: no packages specified; creating an empty environment user@user-desktop:~/dev/advent-of-code-2022/day-14$ guix shell --with-source=guile-parallel=https://git.sr.ht/~old/guile-parallel/archive/v1.0.0.tar.gz --file=.guix.scm Starting download of /tmp/guix-file.lJWk5a Fromhttps://git.sr.ht/~old/guile-parallel/archive/v1.0.0.tar.gz... v1.0.0.tar.gz 445KiB/s 00:00 | 38KiB transferred substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0% The following derivations will be built: /gnu/store/w9i162m5pmw83dm2xhwai4s6zsxhw6c0-profile.drv /gnu/store/nrnavbjjdahwvdxzkky8wh5amfpyjqkv-guile-parallel-0.0.0.drv building /gnu/store/nrnavbjjdahwvdxzkky8wh5amfpyjqkv-guile-parallel-0.0.0.drv... building CA certificate bundle... listing Emacs sub-directories... building fonts directory... building directory of Info manuals... building profile with 1 package... user@user-desktop:~/dev/advent-of-code-2022/day-14$ guile GNU Guile 3.0.8 Copyright (C) 1995-2021 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (use-modules ... (parallel)) While compiling expression: no code for module (parallel) scheme@(guile-user)> ~~~~ (linebreaks inserted for readability) That one also does not seem to work for me. It is not a show stopper for me, as I can simply use my previously created parallel functions and replace them later, but I think it would be nice to try out guile-parallel : ) Regards, Zelphir -- repositories:https://notabug.org/ZelphirKaltstahl ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-08 15:17 ` Zelphir Kaltstahl @ 2023-01-08 15:55 ` Olivier Dion via General Guile related discussions 2023-01-08 15:59 ` Zelphir Kaltstahl 0 siblings, 1 reply; 22+ messages in thread From: Olivier Dion via General Guile related discussions @ 2023-01-08 15:55 UTC (permalink / raw) To: Zelphir Kaltstahl; +Cc: Guile User On Sun, 08 Jan 2023, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> wrote: > ~~~~ > user@user-desktop:~/dev/advent-of-code-2022/day-14$ guix shell \ >> --file=guile-parallel/.guix.scm \ >> --with-source=guile-parallel=guile-parallel > user@user-desktop:~/dev/advent-of-code-2022/day-14$ guile Try with: --8<---------------cut here---------------start------------->8--- guix shell \ guile \ --file=guile-parallel/.guix.scm \ --with-source=guile-parallel=guile-parallel --8<---------------cut here---------------end--------------->8--- otherwise you're using the guile in the previous environment, which does not have its load path set correctly I think! -- Olivier Dion oldiob.dev ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [ANN] Guile-Parallel 1.0.0 released 2023-01-08 15:55 ` Olivier Dion via General Guile related discussions @ 2023-01-08 15:59 ` Zelphir Kaltstahl 0 siblings, 0 replies; 22+ messages in thread From: Zelphir Kaltstahl @ 2023-01-08 15:59 UTC (permalink / raw) To: Olivier Dion; +Cc: Guile User On 1/8/23 16:55, Olivier Dion wrote: > On Sun, 08 Jan 2023, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> wrote: > >> ~~~~ >> user@user-desktop:~/dev/advent-of-code-2022/day-14$ guix shell \ >>> --file=guile-parallel/.guix.scm \ >>> --with-source=guile-parallel=guile-parallel >> user@user-desktop:~/dev/advent-of-code-2022/day-14$ guile > Try with: > --8<---------------cut here---------------start------------->8--- > guix shell \ > guile \ > --file=guile-parallel/.guix.scm \ > --with-source=guile-parallel=guile-parallel > --8<---------------cut here---------------end--------------->8--- > > otherwise you're using the guile in the previous environment, which does > not have its load path set correctly I think! Thank you! This works : ) Regards, Zelphir -- repositories: https://notabug.org/ZelphirKaltstahl ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2023-01-08 15:59 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-12-31 3:55 [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions 2022-12-31 9:06 ` Damien Mattei 2022-12-31 19:58 ` Zelphir Kaltstahl 2022-12-31 20:31 ` Olivier Dion via General Guile related discussions 2023-01-02 16:13 ` Greg Troxel 2023-01-02 17:59 ` Maxime Devos 2023-01-02 20:45 ` Greg Troxel 2023-01-02 21:24 ` Olivier Dion via General Guile related discussions 2023-01-02 23:56 ` Olivier Dion via General Guile related discussions 2023-01-03 10:57 ` Damien Mattei 2023-01-03 21:40 ` guile-fibers timerfd_create bug (was: Re: [ANN] Guile-Parallel 1.0.0 released) Maxime Devos 2023-01-03 22:38 ` Damien Mattei 2023-01-03 22:43 ` Maxime Devos 2023-01-04 1:28 ` Olivier Dion via General Guile related discussions 2023-01-03 22:06 ` [ANN] Guile-Parallel 1.0.0 released Olivier Dion via General Guile related discussions 2023-01-03 22:29 ` Damien Mattei 2023-01-02 20:28 ` Olivier Dion via General Guile related discussions 2023-01-08 13:30 ` Zelphir Kaltstahl 2023-01-08 14:44 ` Olivier Dion via General Guile related discussions 2023-01-08 15:17 ` Zelphir Kaltstahl 2023-01-08 15:55 ` Olivier Dion via General Guile related discussions 2023-01-08 15:59 ` Zelphir Kaltstahl
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).