unofficial mirror of gwl-devel@gnu.org
 help / color / mirror / Atom feed
* How to get started using GWL 0.2.0
@ 2020-02-17  9:59 Jelle Licht
  2020-02-17 14:21 ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: Jelle Licht @ 2020-02-17  9:59 UTC (permalink / raw)
  To: gwl-devel

Hey GWL-hackers,

Congratulations on the 0.2.0 release! After re-reading the info manual,
but not understanding all parts, I keep running into the problem of not
actually being totally sure on how to do some fairly basic things.

How do I install GWL, while using a `guix pull'-managed guix (so with
guile3.0)? As the `guix' that is a propagated input still uses guile2.2,
this is not as simple as I had hoped it would be.

Currently, I have the following wrapper in $HOME/.local/bin/gwl:
--8<---------------cut here---------------start------------->8---
#!/usr/bin/env bash
export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/2.2
export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/2.2/site-ccache:$HOME/.guix-profile/share/guile/site/2.2
$HOME/.guix-profile/bin/guix workflow "$@"
--8<---------------cut here---------------end--------------->8---

This wrapper seems to work for stuff like `gwl --help' and `gwl
--prepare=<file>'. I'd much rather prefer something less terribad though
:).

My other issue relates to actually running computations usings
GWL. Given the following workflow file:

--8<---------------cut here---------------start------------->8---
process hello-world
  # { echo "Hello, world!" }

workflow do-the-thing
  processes hello-world
--8<---------------cut here---------------end--------------->8---

I can run GWL to both prepare and graph my workflow, yet I get the
following backtrace when trying actually `gwl --run=<file>':

--8<---------------cut here---------------start------------->8---
Backtrace:
          10 (apply-smob/1 #<catch-closure 7f8598ac68c0>)
In ice-9/boot-9.scm:
    705:2  9 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
    619:8  8 (_ #(#(#<directory (guile-user) 7f8598744140>)))
In guix/ui.scm:
  1813:12  7 (run-guix-command _ . _)
In guix/scripts/workflow.scm:
   155:24  6 (guix-workflow . _)
In srfi/srfi-1.scm:
   466:18  5 (fold #<procedure 7f8590d7a4c0 at gwl/workflows.scm:246:2 (item acc)> () #)
   466:18  4 (fold #<procedure 7f8590d7a460 at gwl/workflows.scm:249:13 (process res)> …)
In gwl/workflows.scm:
   250:21  3 (_ #<process hello-world> ())
   395:39  2 (_ #<process hello-world> #:workflow _)
In srfi/srfi-1.scm:
  1000:10  1 (lset-intersection #<procedure string=? (#:optional _ _ . _)> _ ())
  1000:38  0 (_ ())

srfi/srfi-1.scm:1000:38: In procedure car: Wrong type argument in position 1 (expecting pair): #t
--8<---------------cut here---------------end--------------->8---

Thanks for any guidance, and feel free to point me to the right section
of The Fine Manual that I simply misunderstood.

- Jelle

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

* Re: How to get started using GWL 0.2.0
  2020-02-17  9:59 How to get started using GWL 0.2.0 Jelle Licht
@ 2020-02-17 14:21 ` Ricardo Wurmus
  2020-02-17 15:10   ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2020-02-17 14:21 UTC (permalink / raw)
  To: Jelle Licht; +Cc: gwl-devel


Hi Jelle,

thanks for giving the GWL a try!

> How do I install GWL, while using a `guix pull'-managed guix (so with
> guile3.0)? As the `guix' that is a propagated input still uses guile2.2,
> this is not as simple as I had hoped it would be.
>
> Currently, I have the following wrapper in $HOME/.local/bin/gwl:
> --8<---------------cut here---------------start------------->8---
> #!/usr/bin/env bash
> export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/2.2
> export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/2.2/site-ccache:$HOME/.guix-profile/share/guile/site/2.2
> $HOME/.guix-profile/bin/guix workflow "$@"
> --8<---------------cut here---------------end--------------->8---
>
> This wrapper seems to work for stuff like `gwl --help' and `gwl
> --prepare=<file>'. I'd much rather prefer something less terribad though
> :).

Yeah, this is an issue that caused me sleepless nights.  It’s something
I’ve been discussing for some time online and offline, and it’s on the
TODO for the next release.  It is not clear yet how to properly insulate
the GWL from Guix.

The switch from Guile 2 to 3 is a good example of the problem we’re
facing as we try to extend Guix.

> My other issue relates to actually running computations usings
> GWL. Given the following workflow file:
>
> --8<---------------cut here---------------start------------->8---
> process hello-world
>   # { echo "Hello, world!" }
>
> workflow do-the-thing
>   processes hello-world
> --8<---------------cut here---------------end--------------->8---
>
> I can run GWL to both prepare and graph my workflow, yet I get the
> following backtrace when trying actually `gwl --run=<file>': […]

Oh, I’m sorry!  This is a bug.  The code was supposed to pass a list of
mapped input files to a procedure, but it accendentally just passed a
boolean.  That’s clearly incorrect. I’m going to fix this soon.

So I suppose we’ll see a 0.2.1 release soon…  Sorry about that!

--
Ricardo

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

* Re: How to get started using GWL 0.2.0
  2020-02-17 14:21 ` Ricardo Wurmus
@ 2020-02-17 15:10   ` Ricardo Wurmus
  2020-02-17 18:31     ` Jelle Licht
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2020-02-17 15:10 UTC (permalink / raw)
  To: Jelle Licht; +Cc: gwl-devel


Ricardo Wurmus <rekado@elephly.net> writes:

> Hi Jelle,
>
> thanks for giving the GWL a try!
>
>> How do I install GWL, while using a `guix pull'-managed guix (so with
>> guile3.0)? As the `guix' that is a propagated input still uses guile2.2,
>> this is not as simple as I had hoped it would be.

For now I think we could provide a guile3.0-gwl variant in Guix using
guile3.0-guix as an input.  (Or rather default to Guile 3 and provide a
guile2 variant.)

>> My other issue relates to actually running computations usings
>> GWL. Given the following workflow file:
>>
>> --8<---------------cut here---------------start------------->8---
>> process hello-world
>>   # { echo "Hello, world!" }
>>
>> workflow do-the-thing
>>   processes hello-world
>> --8<---------------cut here---------------end--------------->8---
>>
>> I can run GWL to both prepare and graph my workflow, yet I get the
>> following backtrace when trying actually `gwl --run=<file>': […]
>
> Oh, I’m sorry!  This is a bug.  The code was supposed to pass a list of
> mapped input files to a procedure, but it accendentally just passed a
> boolean.  That’s clearly incorrect. I’m going to fix this soon.
>
> So I suppose we’ll see a 0.2.1 release soon…  Sorry about that!

I fixed the bug locally, but I want to add a few more tests for that
part of the code before pushing it.

--
Ricardo

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

* Re: How to get started using GWL 0.2.0
  2020-02-17 15:10   ` Ricardo Wurmus
@ 2020-02-17 18:31     ` Jelle Licht
  2020-02-17 19:53       ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: Jelle Licht @ 2020-02-17 18:31 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: gwl-devel

Ricardo Wurmus <rekado@elephly.net> writes:

> Ricardo Wurmus <rekado@elephly.net> writes:
>
> [...]
> I fixed the bug locally, but I want to add a few more tests for that
> part of the code before pushing it.

I'd still like to play around with any (temporary) workaround you might
have. Would you be willing share it as a patch that I can apply locally?

- Jelle

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

* Re: How to get started using GWL 0.2.0
  2020-02-17 18:31     ` Jelle Licht
@ 2020-02-17 19:53       ` Ricardo Wurmus
  2020-02-17 22:55         ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2020-02-17 19:53 UTC (permalink / raw)
  To: Jelle Licht; +Cc: gwl-devel


Jelle Licht <jlicht@fsfe.org> writes:

> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> Ricardo Wurmus <rekado@elephly.net> writes:
>>
>> [...]
>> I fixed the bug locally, but I want to add a few more tests for that
>> part of the code before pushing it.
>
> I'd still like to play around with any (temporary) workaround you might
> have. Would you be willing share it as a patch that I can apply locally?

Oh, certainly.  The reason for the bug is that I didn’t bother testing
workflows without any inputs.  The temporary workaround is to add an
input, even if you aren’t using it:

--8<---------------cut here---------------start------------->8---
process hello-world
  inputs "/tmp"
  # { echo "Hello, world!" }

workflow do-the-thing
  processes hello-world
--8<---------------cut here---------------end--------------->8---

Sorry about this!

-- 
Ricardo

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

* Re: How to get started using GWL 0.2.0
  2020-02-17 19:53       ` Ricardo Wurmus
@ 2020-02-17 22:55         ` Ricardo Wurmus
  0 siblings, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2020-02-17 22:55 UTC (permalink / raw)
  To: Jelle Licht; +Cc: gwl-devel


Ricardo Wurmus <rekado@elephly.net> writes:

> Jelle Licht <jlicht@fsfe.org> writes:
>
>> Ricardo Wurmus <rekado@elephly.net> writes:
>>
>>> Ricardo Wurmus <rekado@elephly.net> writes:
>>>
>>> [...]
>>> I fixed the bug locally, but I want to add a few more tests for that
>>> part of the code before pushing it.
>>
>> I'd still like to play around with any (temporary) workaround you might
>> have. Would you be willing share it as a patch that I can apply locally?
>
> Oh, certainly.  The reason for the bug is that I didn’t bother testing
> workflows without any inputs.  The temporary workaround is to add an
> input, even if you aren’t using it:
>
> --8<---------------cut here---------------start------------->8---
> process hello-world
>   inputs "/tmp"
>   # { echo "Hello, world!" }
>
> workflow do-the-thing
>   processes hello-world
> --8<---------------cut here---------------end--------------->8---
>
> Sorry about this!

This is now fixed in commit 6d050d9937f4a454b5e051640a8831fb5035c758.
Still working on extending the test suite…

-- 
Ricardo

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

end of thread, other threads:[~2020-02-17 22:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-17  9:59 How to get started using GWL 0.2.0 Jelle Licht
2020-02-17 14:21 ` Ricardo Wurmus
2020-02-17 15:10   ` Ricardo Wurmus
2020-02-17 18:31     ` Jelle Licht
2020-02-17 19:53       ` Ricardo Wurmus
2020-02-17 22:55         ` Ricardo Wurmus

unofficial mirror of gwl-devel@gnu.org

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/gwl/0 gwl/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 gwl gwl/ https://yhetil.org/gwl \
		gwl-devel@gnu.org
	public-inbox-index gwl

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.gwl


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git