unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Zelphir Kaltstahl <zelphirkaltstahl@gmail.com>
To: alex.sassmannshausen@gmail.com
Cc: guile-user@gnu.org
Subject: Re: Guile Config
Date: Tue, 10 Jul 2018 22:10:33 +0200	[thread overview]
Message-ID: <22ba56af-c033-5170-cbf0-d25e64969471@gmail.com> (raw)
In-Reply-To: <87y3ejxvvl.fsf@gmail.com>

On 10.07.2018 11:50, Alex Sassmannshausen wrote:
> Hi Zelphir,
>
> Just as a heads up — this is perhaps a little tangential.  I created the
> guile-config package
> (https://gitlab.com/a-sassmannshausen/guile-config), which builds on
> getopt-long to provide a (IMHO) richer and more sustainable approach to
> managing commandline options for a program.
>
> Just figured you might be interested to have a look, as you were curious
> about the subject matter.
>
> HTH,
>
> Alex

Hi Alex,

I took a short look and Guile config seems to do much more than only
parsing command line arguments. It seems to be a more general thing for
configuring any kind of program and different kinds of configurations?

I think examples in the readme file for a few things one can do with it
would be cool. Could you provide some basic example for command line
arguments with Guile Config? (I am often guilty of not writing any
readme for my own projects ^^', but I pledge improvement!)
The ASCII art diagram is nice for getting an overview and I am sure it
all makes sense when one looks a bit closer and maybe looks into some of
the code as well. I could not understand, why this tool would itself
write configuration files after reading configuration files one provides
for it, nor what a codex really is, except that it is some kind of struct.
Maybe this all has to do with Guix? Do I need Guix for Guile Config or
is it intended to be used together with that? I've only once tried to
install the Guix OS thingy (Guix SD?). It did not boot from USB. I could
not install it on my machine and I could not find a working tutorial on
how to install it. Since then I've not tried again, so I have no
experience with Guix or the OS at all.

I am still learning about the "Guile ways" of doing basic things
(cooking recipe learning style, I guess :D). The two examples I've
created with getopt-long and SRFI 37 are in my examples repository
(https://gitlab.com/zelphir-kaltstahl-projects/guile-scheme-tutorials-and-examples/tree/dev/command-line-arguments).
With the SRFI 37 example I am not sure if the global options hash table
is a good idea, as I usually try to keep as little global state as
possible. I am trying to figure out all the basic things, so that if
some programming problem comes up, I could say "Oh, lets do that in
Guile Scheme.", just as easily, as I could do it with for example
Python. When I think of something I do in Python and then think: "But
how would I do it in Guile Scheme?", I feel an urge to be able to.
Knowing the basics will let me get to the meat of the problem, instead
of on-the-fly having to improvise many things to get there. If anyone
wants to, they can use it as tutorials or templates or whatever,
although I am too lazy currently to make proper tutorials out of things.
I try to keep the examples easy to understand for my own good too though.

Thanks for the hint Alex, great to see the Guile ecosystem growing! I
often see new release announcements on this mailing list and every piece
of new tooling or libraries makes it a bit better. Previously having
practiced some with Racket, I am used to suddenly discovering some
library that unexpectedly already does what I want in an elegant way. I
think it would be cool if Guile gets to the same level + more
discoverable. Especially with stuff like fibers (which is still on my
learning list) under its belt, it is very powerful. Guile Hall also
seems to be going in the direction of creating something that can be
used with package managers or a Guile packages specific manager (?).

Regards,
Zelphir



  reply	other threads:[~2018-07-10 20:10 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.77.1531065622.9222.guile-user@gnu.org>
2018-07-08 17:00 ` guile-user Digest, Vol 188, Issue 9 Zelphir Kaltstahl
2018-07-08 17:10   ` Matt Wette
2018-07-09  3:42   ` Keith Wright
2018-07-09  6:24     ` Zelphir Kaltstahl
2018-07-10  9:50   ` Alex Sassmannshausen
2018-07-10 20:10     ` Zelphir Kaltstahl [this message]
2018-07-11 13:33       ` Guile Config Alex Sassmannshausen
2018-07-15 10:47         ` Zelphir Kaltstahl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=22ba56af-c033-5170-cbf0-d25e64969471@gmail.com \
    --to=zelphirkaltstahl@gmail.com \
    --cc=alex.sassmannshausen@gmail.com \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).