[ANN] Guile-DSV 0.5.1 released

2022-02-05 Thread Artyom V. Poptsov
Hello Guilers,

I'm pleased to announce Guile-DSV 0.5.1:
  https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.5.1

Thanks to Aleix Conchillo who came up with the idea to add Markdown
table preset.

Also now the "dsv" program from Guile-DSV allows to apply an arbitrary
Scheme code to the table before printing it.

See the full list of user-visible changes below.


* What is Guile-DSV?

Guile-DSV is a library that allows to parse Delimiter-Separated Values
format (DSV).  It supports two flavors of DSV: Unix-style[1] and RFC4180[2].

Also Guile-DSV is shipped with a program named "dsv" that allows to read
and process DSV format (including delimiter change and conversion from
one standard to another.)  See README file for usage examples.


* List of user visible changes

Here's an excerpt from the NEWS file:

--8<---cut here---start->8---
* Changes in version 0.5.1 (2022-02-05)
** Add Markdown table preset
=dsv= now has Markdown table preset that allows to generate Markdown
tables from a DSV data.
** New module: =(dsv version)=
This module contains procedures that return information about the current
Guile-DSV version.
** =dsv= now handles =--version= option
When this option is passed to the =dsv= program it prints the version
information and a short copyright note to the stdout.
** =dsv= now handles =--map-cell= option
This option allows to apply an arbitrary Scheme code to each table cell
before printing.
** =dsv= now handles =--filter-row= option
This option allows to keep only that rows from a table for which the
provided Scheme code returned #t.
** =dsv= now handles =--filter-column= option
This option allows to keep only that columns from a table for which the
provided Scheme code returned #t.
--8<---cut here---end--->8---


Thanks and happy hacking!

- Artyom

[1] http://www.catb.org/~esr/writings/taoup/html/ch05s02.html#id2901882
[2] https://tools.ietf.org/html/rfc4180

-- 
Artyom "avp" Poptsov 
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F


signature.asc
Description: PGP signature


Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Christine Lemmer-Webber
Hello!

It's been a while since Guile was my main hacking environment; I've been
returning to it, and one of the nicest things to change about its
ecosystem is the presence of Guile Hall.

I really, really like Guile Hall.  A lot!  I think it has room to grow
but it fills a clearly missing piece of the Guile ecosystem while doing
it in the best way possible: making itself explicitly compatible with
Guix.

I thought I'd write down some impressions while everything is fresh.

 - Its ability to make an autotools-compatible tarball, but without me
   needing to think about autotools at all, is a real delight.

 - Its test suite stuff is also really nice.

 - I found myself surprised that hall.scm is "just data", instead of
   taking the more guix'y approach of being code that actually builds a
   datastucture.  I'm not sure what the goal of this is; there can be
   reasons to take that approach but I'm not sure what it is here?
   My assumption is that the main reason is so that "hall scan" can
   correctly read and then modify and spit out another file, but I'm
   not sure.

 - What I would actually *really* like would be for the Hall package
   definition structure to be a wrapper *around* the Guix package
   structure.  Then the guix.scm would be really simple: it could just
   "peel off" the outer struct.  If I wanted to do some smart
   modifications of things from there maybe I could.  I dunno, something
   like this.

 - "hall scan" is really cool, but I kind of wish I didn't need to use
   it.  I'd rather not keep track of any of this stuff at all.
   I'd be happy just pointing some code at a directory and say "snarf
   up all the .scm files you see therein!"

 - I'm currently writing a manual starting in a .org file that's then
   converted into a .texi file.  I'd prefer if I could find an
   entrypoint to insert this into the compilation workflow: a pre-step
   to the docs compilation that generates the .texi file *from* my
   .org file.
 
 - On that note, it strikes me that Hall's integration with autotools
   is great because it means that existing distros don't need to be
   aware of Guile *or* Guix.  But it also means that Hall probably has
   all of the information that it could do all the steps that autoconf
   and automake do too.  That might be interesting to see that.
   
Anyway, just some thoughts.  Making Guile packages is already much less
intimidating now thanks to Hall's work.  Thank you for it!

 - Christine



Re: Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Mikael Djurfeldt
It would also be nice if we could have a Guile package repository.

Den lör 5 feb. 2022 21:11Christine Lemmer-Webber 
skrev:

> Hello!
>
> It's been a while since Guile was my main hacking environment; I've been
> returning to it, and one of the nicest things to change about its
> ecosystem is the presence of Guile Hall.
>
> I really, really like Guile Hall.  A lot!  I think it has room to grow
> but it fills a clearly missing piece of the Guile ecosystem while doing
> it in the best way possible: making itself explicitly compatible with
> Guix.
>
> I thought I'd write down some impressions while everything is fresh.
>
>  - Its ability to make an autotools-compatible tarball, but without me
>needing to think about autotools at all, is a real delight.
>
>  - Its test suite stuff is also really nice.
>
>  - I found myself surprised that hall.scm is "just data", instead of
>taking the more guix'y approach of being code that actually builds a
>datastucture.  I'm not sure what the goal of this is; there can be
>reasons to take that approach but I'm not sure what it is here?
>My assumption is that the main reason is so that "hall scan" can
>correctly read and then modify and spit out another file, but I'm
>not sure.
>
>  - What I would actually *really* like would be for the Hall package
>definition structure to be a wrapper *around* the Guix package
>structure.  Then the guix.scm would be really simple: it could just
>"peel off" the outer struct.  If I wanted to do some smart
>modifications of things from there maybe I could.  I dunno, something
>like this.
>
>  - "hall scan" is really cool, but I kind of wish I didn't need to use
>it.  I'd rather not keep track of any of this stuff at all.
>I'd be happy just pointing some code at a directory and say "snarf
>up all the .scm files you see therein!"
>
>  - I'm currently writing a manual starting in a .org file that's then
>converted into a .texi file.  I'd prefer if I could find an
>entrypoint to insert this into the compilation workflow: a pre-step
>to the docs compilation that generates the .texi file *from* my
>.org file.
>
>  - On that note, it strikes me that Hall's integration with autotools
>is great because it means that existing distros don't need to be
>aware of Guile *or* Guix.  But it also means that Hall probably has
>all of the information that it could do all the steps that autoconf
>and automake do too.  That might be interesting to see that.
>
> Anyway, just some thoughts.  Making Guile packages is already much less
> intimidating now thanks to Hall's work.  Thank you for it!
>
>  - Christine
>
>


Re: Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Vivien
Hello Christine, Hall, and the rest of Guile! 

Le samedi 05 février 2022 à 15:01 -0500, Christine Lemmer-Webber a
écrit :
> It's been a while since Guile was my main hacking environment; I've
> been
> returning to it, and one of the nicest things to change about its
> ecosystem is the presence of Guile Hall.

I’m starting to convert my project to hall as well :)

> I really, really like Guile Hall.  A lot!  I think it has room to
> grow
> but it fills a clearly missing piece of the Guile ecosystem while
> doing
> it in the best way possible: making itself explicitly compatible with
> Guix.
> 
> I thought I'd write down some impressions while everything is fresh.

Let me do the same thing.


>  - Its ability to make an autotools-compatible tarball, but without
> me
>    needing to think about autotools at all, is a real delight.

The automake and m4 meta-programming languages are good for what they
do, but if we’re also writing scheme for the build system, it would
become too much.


>  - Its test suite stuff is also really nice.

Using the SRFI 64 API lowers the cost to add tests, which is especially
good for such a dynamic and flexible language as guile.

>  - I found myself surprised that hall.scm is "just data", instead of
>    taking the more guix'y approach of being code that actually builds
> a
>    datastucture.  I'm not sure what the goal of this is; there can be
>    reasons to take that approach but I'm not sure what it is here?
>    My assumption is that the main reason is so that "hall scan" can
>    correctly read and then modify and spit out another file, but I'm
>    not sure.

It was a problem for me too. I wanted to compute the version number
from git describe, and it turns out I couldn’t do that in hall.scm. I
had to create a bootstrap script to generate hall.scm, run hall scan
and then other hall commands (and then autoreconf). This approach is
more functional, because there’s less state (I consider auto-generated
Makefile.am, configure.ac and similar files as state because hall and I
are supposed to edit them). It means I can git-ignore most of the stuff
that hall dist generates.

>  - What I would actually *really* like would be for the Hall package
>    definition structure to be a wrapper *around* the Guix package
>    structure.  Then the guix.scm would be really simple: it could
> just
>    "peel off" the outer struct.  If I wanted to do some smart
>    modifications of things from there maybe I could.  I dunno,
> something
>    like this.

>From what I remember, the guix package data structure is a guix record;
is specific to guix. Hall would need to depend on guix (or, my
preferred solution, guix would use GOOPS classes instead of guix
records for more things, including packages, but we’re not there yet!).

I also have a more dynamic guix.scm (I wouldn’t call it smart though).
It puts the current commit in the store, runs "hall guix" there, loads
the generated guix.scm file, and fixes the package it evaluates to (so
as to use the current commit as a source and add hall as a native-
input, for instance).

Guix shell doesn’t like stuff that’s too smart in guix.scm though,
because of its cache.

> 
>  - "hall scan" is really cool, but I kind of wish I didn't need to
> use
>    it.  I'd rather not keep track of any of this stuff at all.
>    I'd be happy just pointing some code at a directory and say "snarf
>    up all the .scm files you see therein!"

Such a wildcard pattern was heavily discouraged in the past, because
you could forget to distribute some files and there wouldn’t be a good
way to know why the build would fail on someone else’s computer due to
a missing file. Nowadays, we have git (and other version control
systems) and continuous integration, so I don’t see a reason why what
you want would be a problem.

> 
>  - I'm currently writing a manual starting in a .org file that's then
>    converted into a .texi file.  I'd prefer if I could find an
>    entrypoint to insert this into the compilation workflow: a pre-
> step
>    to the docs compilation that generates the .texi file *from* my
>    .org file.

I think it would be easier for hall to support org->texi conversion
natively, so that we could still code without automake knowledge. For
instance, as you must have noticed, implementing the conversion as an
automake rule means that automake will fail because it won’t know
whether the generated file needs version.texi.

>  - On that note, it strikes me that Hall's integration with autotools
>    is great because it means that existing distros don't need to be
>    aware of Guile *or* Guix.  But it also means that Hall probably
> has
>    all of the information that it could do all the steps that
> autoconf
>    and automake do too.  That might be interesting to see that.

You mean that hall could implement all of the autotools features? Even
if we remove C-related features, hoping that we won’t need to write C
code ever again, that’s still a lot to ask for. I’m not sure

Re: Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Jose Antonio Ortega Ruiz
On Sat, Feb 05 2022, Mikael Djurfeldt wrote:

> It would also be nice if we could have a Guile package repository.

FWIW, I wish we had an alternative to Guix and autotools for pure-scheme
packages, which don't need all that complication (and that i would love
to see becoming the norm, with that pretty FFI of ours).  Something
like, say, leiningen (or elpa, raco, rebar3, cargo, gobuild, elpa,
cabal...).  For context:

  https://gitlab.com/a-sassmannshausen/guile-hall/-/issues/51

I'd call it "wile", packages would live in "the wilery" (wilery.org is
free) and wile.scm would probably use a simplified dorodango
syntax... and i'd even work on it.  But my feeling is that the community
is heavily invested in autotools and Guix as /the/ build system (and
very happily so!) and i don't have the evangelising chops/time :)

Cheers,
jao
-- 
Nature uses as little as possible of anything.
  -Johannes Kepler, astronomer (1571-1630)



Re: Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Christine Lemmer-Webber
IMO, we have, that, and it is Guix.  I'm actually quite happy about
that.  :)

Specific-language-package-repos have caused a lot of the mess we're
currently in; in an unexpected way, it's hurt user freedom a lot,
because mixing these is so hard that software which might be otherwise
reproducible and usable by everyone becomes only deployable by "expert"
devops teams deploying ad-hoc container black boxes who are themselves
very overloaded and have a hard time keeping on top of what's going on.

Guix is great.  I'd love Guix to become the universal package repository
for all FOSS languages. :)

 - Christine

Mikael Djurfeldt  writes:

> It would also be nice if we could have a Guile package repository.
>
> Den lör 5 feb. 2022 21:11Christine Lemmer-Webber  
> skrev:
>
>  Hello!
>
>  It's been a while since Guile was my main hacking environment; I've been
>  returning to it, and one of the nicest things to change about its
>  ecosystem is the presence of Guile Hall.
>
>  I really, really like Guile Hall.  A lot!  I think it has room to grow
>  but it fills a clearly missing piece of the Guile ecosystem while doing
>  it in the best way possible: making itself explicitly compatible with
>  Guix.
>
>  I thought I'd write down some impressions while everything is fresh.
>
>   - Its ability to make an autotools-compatible tarball, but without me
> needing to think about autotools at all, is a real delight.
>
>   - Its test suite stuff is also really nice.
>
>   - I found myself surprised that hall.scm is "just data", instead of
> taking the more guix'y approach of being code that actually builds a
> datastucture.  I'm not sure what the goal of this is; there can be
> reasons to take that approach but I'm not sure what it is here?
> My assumption is that the main reason is so that "hall scan" can
> correctly read and then modify and spit out another file, but I'm
> not sure.
>
>   - What I would actually *really* like would be for the Hall package
> definition structure to be a wrapper *around* the Guix package
> structure.  Then the guix.scm would be really simple: it could just
> "peel off" the outer struct.  If I wanted to do some smart
> modifications of things from there maybe I could.  I dunno, something
> like this.
>
>   - "hall scan" is really cool, but I kind of wish I didn't need to use
> it.  I'd rather not keep track of any of this stuff at all.
> I'd be happy just pointing some code at a directory and say "snarf
> up all the .scm files you see therein!"
>
>   - I'm currently writing a manual starting in a .org file that's then
> converted into a .texi file.  I'd prefer if I could find an
> entrypoint to insert this into the compilation workflow: a pre-step
> to the docs compilation that generates the .texi file *from* my
> .org file.
>
>   - On that note, it strikes me that Hall's integration with autotools
> is great because it means that existing distros don't need to be
> aware of Guile *or* Guix.  But it also means that Hall probably has
> all of the information that it could do all the steps that autoconf
> and automake do too.  That might be interesting to see that.
>
>  Anyway, just some thoughts.  Making Guile packages is already much less
>  intimidating now thanks to Hall's work.  Thank you for it!
>
>   - Christine




Re: Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Zelphir Kaltstahl

On 2/5/22 21:01, Christine Lemmer-Webber wrote:

Hello!

It's been a while since Guile was my main hacking environment; I've been
returning to it, and one of the nicest things to change about its
ecosystem is the presence of Guile Hall.

I really, really like Guile Hall.  A lot!  I think it has room to grow
but it fills a clearly missing piece of the Guile ecosystem while doing
it in the best way possible: making itself explicitly compatible with
Guix.

I thought I'd write down some impressions while everything is fresh.

  - Its ability to make an autotools-compatible tarball, but without me
needing to think about autotools at all, is a real delight.

  - Its test suite stuff is also really nice.

  - I found myself surprised that hall.scm is "just data", instead of
taking the more guix'y approach of being code that actually builds a
datastucture.  I'm not sure what the goal of this is; there can be
reasons to take that approach but I'm not sure what it is here?
My assumption is that the main reason is so that "hall scan" can
correctly read and then modify and spit out another file, but I'm
not sure.

  - What I would actually *really* like would be for the Hall package
definition structure to be a wrapper *around* the Guix package
structure.  Then the guix.scm would be really simple: it could just
"peel off" the outer struct.  If I wanted to do some smart
modifications of things from there maybe I could.  I dunno, something
like this.

  - "hall scan" is really cool, but I kind of wish I didn't need to use
it.  I'd rather not keep track of any of this stuff at all.
I'd be happy just pointing some code at a directory and say "snarf
up all the .scm files you see therein!"

  - I'm currently writing a manual starting in a .org file that's then
converted into a .texi file.  I'd prefer if I could find an
entrypoint to insert this into the compilation workflow: a pre-step
to the docs compilation that generates the .texi file *from* my
.org file.
  
  - On that note, it strikes me that Hall's integration with autotools

is great because it means that existing distros don't need to be
aware of Guile *or* Guix.  But it also means that Hall probably has
all of the information that it could do all the steps that autoconf
and automake do too.  That might be interesting to see that.

Anyway, just some thoughts.  Making Guile packages is already much less

intimidating now thanks to Hall's work.  Thank you for it!

  - Christine


For what it is worth: You do not need to use Hall, if you do not need to run 
tests, when installing via Guix or similar things. If you are fine with running 
tests before publishing a version of a package to Guix, then you only need Guix 
and a package definition. No autotools.


I found all the stuff that is generated by Hall a bit worrying. Lots of 
autotools appearing in my repository, which I do not fully understand. Being 
forced to use hall scan and so on. Too much magic behind the scenes. Packaging 
should be so simple, that I can still easily understand all the things in my 
repository, without studying autotools for a week, searching for archaic 
variable names and what they to and how everything works. I am not a huge fan of 
the JS ecosystem at all, but if we look at the NPM world, there is only one file 
that needs to exist, the package.json, and already you have a valid package. Why 
can it not be the same simplicity for Guile? And if Guix really requires there 
to be a `make` `make check` or whatever, then where is the guide, that tells me 
how to hand-craft the Makefile, so that everything works and I don't need extra 
tooling to generate files.


I want to be able to edit the guix package definition, point it to the tests 
directory, and be done with it. When I use Hall, then I have yet another tool in 
the workflow. Again more commands and things to keep in mind. I want less tools 
and simplicity. I don't run autotools for running my tests locally, so there is 
no theoretical need for that. The maximum I do it a very simple Makefile, which 
provides me with a `make test` to run tests or `make` to run the program. It is 
just that from the Guix side of things, something would have to be done to be 
able to invoke tests properly, without a `make test` command being available, 
but knowing where the tests are. They could be declared in the package 
definition for example. Why do I need any autotools stuff? Just make Guix call 
my SRFI-64 tests.


This is why I decided to not use Hall for guile-fslib. I did not like the 
complexity of having all the autotools stuff in my repo, which I don't even 
fully understand, just for it becoming a package. Even if I don't need to 
manually touch any of those files. I can run tests on my machine before sending 
in a patch for a new version and that will be fine.


Hall is probably a great thing, if you have a package, that is not pure Guile, 
s

Re: Newbie thoughts on Guile Hall + Guix

2022-02-05 Thread Aleix Conchillo Flaqué
I will have to disagree on this one. Not about Guix being great :-). I
believe a simple, lightweight, integrated and cross platform package
manager for Guile would be fantastic.

For reasons that don't matter right now I have been using macOS for the
past two years and I wish I had a package manager. Since I didn't have one
I created Guile Homebrew which I'm probably the only one using. However, I
would love to have something like other languages have as jao and Zelphir
suggest. It is true that Guix would solve the reproducibility issue, but
installing Guix and having a completely separate system of libraries just
to write some project is overkill, at least for me. Maybe it makes sense
for some specific projects but for most of the things that people work on I
would say it probably doesn't. Plus, it doesn't work on macOS but that's
another story.

Speaking about package managers for Guile, some might remember about
Guildhall (https://github.com/ijp/guildhall), maybe it's waiting there for
someone to pick it up.

Aleix

On Sat, Feb 5, 2022 at 4:47 PM Christine Lemmer-Webber <
cweb...@dustycloud.org> wrote:

> IMO, we have, that, and it is Guix.  I'm actually quite happy about
> that.  :)
>
> Specific-language-package-repos have caused a lot of the mess we're
> currently in; in an unexpected way, it's hurt user freedom a lot,
> because mixing these is so hard that software which might be otherwise
> reproducible and usable by everyone becomes only deployable by "expert"
> devops teams deploying ad-hoc container black boxes who are themselves
> very overloaded and have a hard time keeping on top of what's going on.
>
> Guix is great.  I'd love Guix to become the universal package repository
> for all FOSS languages. :)
>
>  - Christine
>
> Mikael Djurfeldt  writes:
>
> > It would also be nice if we could have a Guile package repository.
> >
> > Den lör 5 feb. 2022 21:11Christine Lemmer-Webber 
> skrev:
> >
> >  Hello!
> >
> >  It's been a while since Guile was my main hacking environment; I've been
> >  returning to it, and one of the nicest things to change about its
> >  ecosystem is the presence of Guile Hall.
> >
> >  I really, really like Guile Hall.  A lot!  I think it has room to grow
> >  but it fills a clearly missing piece of the Guile ecosystem while doing
> >  it in the best way possible: making itself explicitly compatible with
> >  Guix.
> >
> >  I thought I'd write down some impressions while everything is fresh.
> >
> >   - Its ability to make an autotools-compatible tarball, but without me
> > needing to think about autotools at all, is a real delight.
> >
> >   - Its test suite stuff is also really nice.
> >
> >   - I found myself surprised that hall.scm is "just data", instead of
> > taking the more guix'y approach of being code that actually builds a
> > datastucture.  I'm not sure what the goal of this is; there can be
> > reasons to take that approach but I'm not sure what it is here?
> > My assumption is that the main reason is so that "hall scan" can
> > correctly read and then modify and spit out another file, but I'm
> > not sure.
> >
> >   - What I would actually *really* like would be for the Hall package
> > definition structure to be a wrapper *around* the Guix package
> > structure.  Then the guix.scm would be really simple: it could just
> > "peel off" the outer struct.  If I wanted to do some smart
> > modifications of things from there maybe I could.  I dunno, something
> > like this.
> >
> >   - "hall scan" is really cool, but I kind of wish I didn't need to use
> > it.  I'd rather not keep track of any of this stuff at all.
> > I'd be happy just pointing some code at a directory and say "snarf
> > up all the .scm files you see therein!"
> >
> >   - I'm currently writing a manual starting in a .org file that's then
> > converted into a .texi file.  I'd prefer if I could find an
> > entrypoint to insert this into the compilation workflow: a pre-step
> > to the docs compilation that generates the .texi file *from* my
> > .org file.
> >
> >   - On that note, it strikes me that Hall's integration with autotools
> > is great because it means that existing distros don't need to be
> > aware of Guile *or* Guix.  But it also means that Hall probably has
> > all of the information that it could do all the steps that autoconf
> > and automake do too.  That might be interesting to see that.
> >
> >  Anyway, just some thoughts.  Making Guile packages is already much less
> >  intimidating now thanks to Hall's work.  Thank you for it!
> >
> >   - Christine
>
>
>