unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* [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; 19+ 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] 19+ messages in thread

* Re: [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
  1 sibling, 0 replies; 19+ 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] 19+ messages in thread

* Re: [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
  2022-12-31 20:31   ` Olivier Dion via General Guile related discussions
  1 sibling, 1 reply; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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 22:06                 ` Olivier Dion via General Guile related discussions
  0 siblings, 1 reply; 19+ 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] 19+ messages in thread

* Re: [ANN] Guile-Parallel 1.0.0 released
@ 2023-01-03 16:47 dsmich
  0 siblings, 0 replies; 19+ messages in thread
From: dsmich @ 2023-01-03 16:47 UTC (permalink / raw)
  To: 'Olivier Dion'
  Cc: 'Greg Troxel', 'Maxime Devos',
	'Olivier Dion via General Guile related discussions',
	'Zelphir Kaltstahl'

> From: "Olivier Dion via General Guile related discussions" 
> On Mon, 02 Jan 2023, Olivier Dion via General Guile related
discussions  wrote:
 > On Mon, 02 Jan 2023, Greg Troxel  wrote:
> > 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.

Nodejs ended up with a libev that does windows too: "libuv".

https://codeahoy.com/learn/libuv/ch1/#background---nodejs-libev-and-libuv

-Dale




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [ANN] Guile-Parallel 1.0.0 released
  2023-01-03 10:57               ` Damien Mattei
@ 2023-01-03 22:06                 ` Olivier Dion via General Guile related discussions
  2023-01-03 22:29                   ` Damien Mattei
  0 siblings, 1 reply; 19+ 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] 19+ messages in thread

* Re: [ANN] Guile-Parallel 1.0.0 released
  2023-01-03 22:06                 ` Olivier Dion via General Guile related discussions
@ 2023-01-03 22:29                   ` Damien Mattei
  0 siblings, 0 replies; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ 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; 19+ 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] 19+ messages in thread

end of thread, other threads:[~2023-01-08 15:59 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-03 16:47 [ANN] Guile-Parallel 1.0.0 released dsmich
  -- strict thread matches above, loose matches on Subject: below --
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
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 22:06                 ` 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).