Re: my latest blog post

2018-06-08 Thread Catonano
2018-06-08 6:24 GMT+02:00 Christopher Lemmer Webber 
:

> I think Catonano and Mark discussed things nicely earlier in the thread,
> so I'm not going to weigh in on that (though I do agree that we would
> can and should do better, but that also it's important to realize that
> community members only have so many personal resources to be able to
> respond sometimes).
>

Note taken. My bad


> Guile still matters a lot to me.  I think Guile has a long way to go,
> but I look at it more that there is an opportunity for us to do better
> than that we have failed currently.  What can we do to move in the right
> direction?
>

I think an important step is acknowledging the importance of the quality of
the experience with GNU tools, as Fis also remarked.

To me "the computer for the rest of us" is still a landmark

I know that Apple is not commonly associated with software freedom concerns

But the Apple computing experience has been empowering to countless people,
me included.

The experience does matter.

So, is a macro stepping facility missing ? Clearly state so in the manual

Andy Wingo has a post in which he lists tasks he'd lie to be implemented on
Guile, many of them have to do with the file format of the compiled files.

Some love should go to the quality of the experience too, not only to the
tech issues

Andy and Ludo are way too competent, they unawarely set the bar very high

This is a cognitive issue, I understand that, I'm not blaming anyone

Ludo openly said so in several occasions, he even included an indication
about where a funtion was being declared and where it was being called in a
scrap of Nix code, in one of his talks

And I think he did so because *I* had said that in Nix I could't
distinguish when a function was being declared and when it was being called

So he's aware of the problem

As for me I don't know exactly what cold be done

I tried to elicit some debate

I suggested some edits to the Guile manual

These are tiny steps, more could be envisioned; I just can't come up with
anything more right now

Allow me only one last remark

Fis claimed that the error messages that Guile provides them with don't
include indications about in which file the error occurred

So he's using Chez scheme instead of Guile, if I remember correctly

I take from this that the Chez scheme error mesages are better.

Mark wrote to Fis in that thread on the Guile mailing list that in order to
have better error messages, the compiler should be modified (and that would
be an awful lot of work)

This is similar to the contrast on macro stepping

Racket has a luxury macro stepping experience, Guile has no macro stepper

So how does Chez scheme manage to provide better error messages ?

I'm not trying to be adversarial again, here, Mark

I just think that the problem deserves to be mapped out so that people know
what they're getting into

I praise software freedom myself

But I think the empowerment component is being overlooked

My suspect is that over the years, Andy Wingo made some design choices in
implementing Guix that implicitly sacrificed the experience to the benefit
of performance, or oter technical aspects

Possibly because he was alone in this task and the amount of work he could
devolve into Guile was finite.

So now it's important to map things out so that we know where we are and
where we want to aim.

I know my contributions are extremely modest so I' not the most entitled
person to discuss the design of GNU tools

Please bear with me

Making my concerns known is all I can do right now

But I will look into the Guile manual in the coming days and I will try to
draft a decent tractation of macro stepping in Guile scheme


Re: my latest blog post

2018-06-08 Thread Julien Lepiller

Le 2018-06-07 17:25, Catonano a écrit :

I just published my latest blog post

In this post I discuss Guix

And I discuss Guile too

I understand that the language is strong and I expect someone to be
upset

But I feel this is due

Happy reading

http://catonano.v22018025836661967.nicesrv.de/the-gnu-community.html


Hi,

that was a long but interesting reading :)

I won't be able to address your main points, about the Guile and the 
broader GNU
community. That's because even though I'm part of Guix, I haven't really 
interacted
with them (yet?). My only interactions were through Guix and a GHM I 
attended when
I wasn't a contributor to anything. I remember it as a friendly event 
though, so
your post is a bit of a surprise to me. Let me try and address some of 
the minor

points instead.

I read you're having trouble to find information from the section 
titles. Info manuals
have an index where it's easier to find things. But actually, what helps 
me the most
is to ignore the `info` command and open either the full .texi source or 
the "html
in one page" version. Then I can do full-text search, which is a lot 
quicker. Does

anyone know if there is a similar facility in the info program?

I've also found that GNU documentations were not excessively easy to 
navigate.
It's sometimes a bit hard to find information on something fuzzy like 
"what's the
function that returns only part of a string again?" or "is there 
something that can
grow like a list, but with O(1) access?", but it's a great document to 
have when
reading existing code: each procedure is very detailed and in a language 
that I find
easy to understand (although it sometimes refers to another part of the 
manual).


Ludo proposed to create a separate document for user stories and 
tutorials on how
to do specific things, Rekado suggested creating video tutorials 
explaining specific

points. I think this is the right direction.

About your concerns on recommending Guix to others, I think you're 
mistaken. I actually
discovered Guile through Guix and I haven't have any bad experience. I'm 
not on #guile
because people on #guix are generous enough to answer unrelated stupid 
questions :)
Guile was even my first functional programming language and I managed to 
learn just
enough of it to be able to create packages and system configurations. 
All of that
from reading existing code, copying parts that looked related to what I 
wanted to do
and not knowing what I was doing at all :). So from experience, you can 
use and even
contribute to guix without ever going to #guile. You just need a good 
tutorial from the
internet. My point is, if you don't want to recommand the guile 
community, you can still

recommand the friendly guix community.



Re: my latest blog post

2018-06-08 Thread Clément Lassieur
Hi Julien,

Julien Lepiller  writes:

> I read you're having trouble to find information from the section titles. Info
> manuals
> have an index where it's easier to find things. But actually, what helps me
> the most
> is to ignore the `info` command and open either the full .texi source or the
> "html
> in one page" version. Then I can do full-text search, which is a lot
> quicker. Does
> anyone know if there is a similar facility in the info program?

Did you try the 's' shortcut?

https://www.gnu.org/software/texinfo/manual/info-stnd/info-stnd.html#Searching-Commands



Re: my latest blog post

2018-06-08 Thread Nils Gillmann
Catonano transcribed 7.7K bytes:
> Mark,
> 
> 2018-06-07 19:03 GMT+02:00 Mark H Weaver :
> 
> I appreciate you sharing your thoughts on this.  I wanted to apologize
> > for making you feel badly; it honestly was not my intent to shame you in
> > any way.
> >
> 
> Thank you for your kind and measured words
> I appreciate both the tone and the content of your reply
> 
> I am very reassured by your statement that you find my quuestions about
> macro expansion reasonable and legitimate
> 
> My feeling was not positive and I'm only happy of having been wrong
> 
> 
> > To be honest, I felt a bit defensive when you seemed to contradict my
> > claim that 'macroexpand-1' would be difficult to implement in a modern
> > Hygienic macro expander, when you pointed to the Racket documentation
> > and asked (possibly rhetorically) whether Racket had hygienic macros.
> > What felt to you like "slight shaming" might have been somehow related
> > to my feeling defensive about this.
> >
> 
> I see
> 
> On my side, I was a bit adversary because I feel that a macro stepper is a
> fundamental feature of a scheme system and in Guile it's less than an
> afterthought
> 
> I understand that implementing it is too much work
> 
> But I think that the manual should at least mention macro stepping as a
> missing feature, it should mention the internal APIs that you indicated in
> that thread and the uncertainties around them
> 
> What I want to convey is that the user shouldn't be left in the dark about
> macro stepping
> 
> On the bright side, after this discussion, I offer to contribute a
> paragraph for the manual where the macro stepping missing feature is
> discussed
> 
> It will still be a missing feature, but at least the user will know what
> she needs to know
> 
> I'd use the enlightening example you provided, the warings you raised and
> the notions contained in the paragraph about the syntax helpers
> 
> Probably the part that's not about syntax helpers should be pulled out from
> there and integrated in the new paragraph

Just my brief encouragement:

I'm not sure how active the Guile documentation writer(s) are, but if you
know how to write it or initially draft something that would be great.
Writing the code is good, but documenting it affects much more people and
would be a good outcome of the discussion :)

> > My lack of response until now to your most recent message in that thread
> > was not because my "patience was exhausted", as you wrote, but only
> > because I'm stretched far too thin, and I haven't yet figured out how to
> > respond to your last message.
> >
> > I simply don't have enough time for all of the things I'd like to do, so
> > many important things get dropped on the floor.  I respond to user
> > questions and bug reports sporadically, when I have the time and energy
> > to do so.  It's nothing personal.
> >
> 
> I'm so relieved in learning you didn´t shrug it
> 
> Someone else made me notice that the lack of an answer can't always be
> interpeted as an aggression, as I did in my post.
> 
> I did, indeed.
> 
> The lack of an answer hits me, admittedly
> 
> I apologize for being emotional about this
> 
> 
> >
> > For what it's worth, I think that your line of questions about
> > 'macroexpand-1' was perfectly reasonable, and neither worthy of shame
> > nor of feeling like an idiot.  The details of modern macro expanders are
> > quite difficult, and I suspect that even seasoned Scheme hackers rarely
> > understand them in depth.
> >
> >  Regards,
> >Mark
> >
> 
> 
> thanks



Re: my latest blog post

2018-06-08 Thread Catonano
2018-06-08 11:39 GMT+02:00 Nils Gillmann :

> Just my brief encouragement:
>

> I'm not sure how active the Guile documentation writer(s) are, but if you
> know how to write it or initially draft something that would be great.
> Writing the code is good, but documenting it affects much more people and
> would be a good outcome of the discussion :)
>
>
Thank you Nils, 🙏

I'll do my best 😊

(use lots of emojis !!)


Re: my latest blog post

2018-06-08 Thread Julien Lepiller

Le 2018-06-08 11:34, Clément Lassieur a écrit :

Hi Julien,

Julien Lepiller  writes:

I read you're having trouble to find information from the section 
titles. Info

manuals
have an index where it's easier to find things. But actually, what 
helps me

the most
is to ignore the `info` command and open either the full .texi source 
or the

"html
in one page" version. Then I can do full-text search, which is a lot
quicker. Does
anyone know if there is a similar facility in the info program?


Did you try the 's' shortcut?

https://www.gnu.org/software/texinfo/manual/info-stnd/info-stnd.html#Searching-Commands


Ho, nice! Thank you! So 's' or '/' to search, and '{' or '}' to search 
previous/next occurence.

That's exactly what I wanted :)



Re: my latest blog post

2018-06-08 Thread Fis Trivial


>
> Fis claimed that the error messages that Guile provides them with don't
> include indications about in which file the error occurred
>
> So he's using Chez scheme instead of Guile, if I remember correctly
>
> I take from this that the Chez scheme error mesages are better.
>
Actually, I tried a few options. The best one is chicken scheme, which
has an option "-analyze-only", used together with geiser, Flycheck can
provide various form of checking in Emacs. But chicken compiles scheme
into c code which brought some other problems into scope. Flycheck has a
similar checker for racket too, but doesn't work quite correctly on my
platform and racket has deviated too much from standard scheme
language, I want my code could be ported to guile later easily. So I chose
chez scheme to get started, which has default setting for portable
scheme and gives informative error messages on command line.



Re: my latest blog post

2018-06-08 Thread Ludovic Courtès
Hello!

Catonano  skribis:

> In this post I discuss Guix
>
> And I discuss Guile too
>
> I understand that the language is strong and I expect someone to be upset
>
> But I feel this is due
>
> Happy reading
>
> http://catonano.v22018025836661967.nicesrv.de/the-gnu-community.html

Thanks for sharing your thoughts!  I pretty much agree with the kind
words about the Guix group. ;-)

I didn’t know (I suppose I didn’t pay attention) to what happened to you
in Guile land, and I’m sad you experienced it and felt bad about the
whole story.

I feel that “GNU is toxic” and “Guile is toxic” are unhelpful, though.
I mean, we are GNU, and we are Guile.  GNU has its own set of problems
that we’ll have to deal with, and it’s a very big organization with its
own history etc., so improving things is difficult.  But Guile is a
small community, and I’m sure we can improve.

To me, the lesson as a Guile co-maintainer is that we should be paying
more attention in general.  I consider myself partly responsible for
this in that, although I’m still officially co-maintainer, I haven’t
been paying much attention to what’s going on on the Guile channels.  We
shouldn’t let hostile conversations like the one you experienced on
#guile through.  Perhaps what we need is someone to step up and help out
with Guile?  We should all care.

Thank you,
Ludo’.




Re: my latest blog post

2018-06-08 Thread Ricardo Wurmus


Hi Catonano,

> Andy Wingo has a post in which he lists tasks he'd lie to be implemented on
> Guile, many of them have to do with the file format of the compiled files.
>
> Some love should go to the quality of the experience too, not only to the
> tech issues

These are very closely linked.  I mention this because it may not be
obvious to people like myself who don’t work on compilers.

FWIW, people *are* working on improving the experience of programming
with Guile.  Some do this by working on Geiser, others by writing
libraries that are well-suited for exploratory programming with Geiser,
etc.

> Mark wrote to Fis in that thread on the Guile mailing list that in order to
> have better error messages, the compiler should be modified (and that would
> be an awful lot of work)

Exactly.  Please note that the compiler is currently being modified, so
it is not a good idea to start other big architectural changes right
now.

> I just think that the problem deserves to be mapped out so that people know
> what they're getting into

Certainly.  We cannot demand of other people to do this work for us,
though.  If you follow guile-devel you will also see that some compiler
changes have resulted in certain regressions, which are debugged,
addressed, and ultimately fixed.  Losing certain means of debugging
things would also be considered a regression, and they can generally be
handled in the same way.

Andy’s time is still limited.  What other people can do is discuss
*specific* cases on guile-devel and work towards a solution.  But please
do not demand of others to explain everything in detail.  (I’m directing
this at everyone who heeds my advice to go to guile-devel, not at any
one person in particular.)  In order to have a positive impact you also
need to learn enough about the state of the art to ensure that the
discussions can be productive.

For compiler design I have a lot of things to read before being able to
contribute meaningfully to a discussion; all I can do is record
instances where Guile produces poor error messages and try to figure out
what led to this outcome.  Once I’ve done my work I can share this with
other developers and get their input.


Some final remarks:

I should say that I’m rather unhappy with your labelling of the Guile
community as “toxic” or “full of jerks”.  This has not been my
experience at all, neither in my communications with the maintainers,
nor in the response to my modest contributions.

I will say that it is a rather quiet community, though.  What you called
“the silent treatment” is just silence, which is occasionally punctured
by helpful comments.  As a co-maintainer of Guix I would feel very
uncomfortable if my replying to some (but not all) emails would be
construed as an act of aggression, or really any kind of silent attempt
at communicating something.  In that case I’d much rather *not* respond
to any emails.

With regards to the shouting match on #guile that you linked in your
blog post, I can only say that I would have likely stepped in had this
happened when I was around.  Textual communication certainly should not
reach these levels of apparent aggression.

--
Ricardo




Re: Widen info

2018-06-08 Thread Julien Lepiller

Le 2018-06-08 15:50, Oleg Pykhalov a écrit :

Hello Julien,

Julien Lepiller  writes:

[…]


I read you're having trouble to find information from the section
titles. Info manuals have an index where it's easier to find
things. But actually, what helps me the most is to ignore the `info`
command and open either the full .texi source or the "html in one
page" version. Then I can do full-text search, which is a lot
quicker. Does anyone know if there is a similar facility in the info
program?


Clément already suggested you hitting ‘s’ key in ‘info’ program.

I want to add that if you have Emacs installed, you could invoke ‘M-x
info’ and then ‘C-x n w’ which will call “widen” to show all the 
manual.


Also, by reading ‘man info’ I've discovered ‘-o’ flag, which you could
try to use as an alternative to Emacs “widen”:

--8<---cut here---start->8---
info --subnodes -o - guix | less
--8<---cut here---end--->8---

[…]

Regards,
Oleg.


Fun, thanks for sharing :)



Widen info

2018-06-08 Thread Oleg Pykhalov
Hello Julien,

Julien Lepiller  writes:

[…]

> I read you're having trouble to find information from the section
> titles. Info manuals have an index where it's easier to find
> things. But actually, what helps me the most is to ignore the `info`
> command and open either the full .texi source or the "html in one
> page" version. Then I can do full-text search, which is a lot
> quicker. Does anyone know if there is a similar facility in the info
> program?

Clément already suggested you hitting ‘s’ key in ‘info’ program.

I want to add that if you have Emacs installed, you could invoke ‘M-x
info’ and then ‘C-x n w’ which will call “widen” to show all the manual.

Also, by reading ‘man info’ I've discovered ‘-o’ flag, which you could
try to use as an alternative to Emacs “widen”:

--8<---cut here---start->8---
info --subnodes -o - guix | less
--8<---cut here---end--->8---

[…]

Regards,
Oleg.


signature.asc
Description: PGP signature


Re: Fwd: Re: Patch file for colorize module

2018-06-08 Thread Sahitihi
Hi Ricardo,

I used this command but even this result with the colorless output.

> You need to use “./pre-inst-env guix” to use your modified version of
> Guix.
>
As per discussion in irc, I tried using "pk str" and  "(pk
(string-append …))" to show values.

I dint find any differences with and without pk.

I thought I overlooked, so I tried copying terminal lines to files and
compared.  I couldn't find differences except that of timing.

Can please help in figuring out where I went wrong.


Thanks!
Sahithi




Re: my latest blog post

2018-06-08 Thread Mark H Weaver
Hi Catonano,

Thank you for your email.  I don't have time to make a proper response
yet, but for now I will respond to just one point:

Catonano  writes:
> On my side, I was a bit adversary because I feel that a macro stepper
> is a fundamental feature of a scheme system and in Guile it's less
> than an afterthought

As far as I know, Racket is the only Scheme implementation with a macro
stepper for hygienic macros.  Do you know of any others?

So, I strongly disagree that a macro stepper is a "fundamental feature
of a scheme system".  In fact, Scheme first appeared in 1975, and first
gained hygienic macros in 1986, but it was not until ~2007 that a macro
stepper for Scheme appeared, for Racket (called PLT Scheme at the time).
The paper, ,
described it as "the first macro stepper for Scheme".

> I understand that implementing it is too much work

It's not that it's too much work; it just hasn't yet been done.

> But I think that the manual should at least mention macro stepping as
> a missing feature,

If it were part of a Scheme standard, or even a very commonly
implemented extension, then I would agree that we should document its
absence.  However, as far as I know, Racket is the only Scheme
implementation that has a macro stepper.  So, this is not a feature that
users generally expect to have in a Scheme implementation.

I disagree that the Guile manual should specifically call attention to a
missing feature that almost no other Scheme implementation includes.

Whenever people switch from one Scheme implementation to another, they
will notice many missing features and APIs, and some new ones.  In your
case, you noticed that Guile lacks Racket's macro stepper, but there are
a great many other things in Racket which Guile lacks.

If we were to start documenting all of the features that exist in at
least one Scheme implementation as missing features, that's quite a
slippery slope.  I don't want to go down that slope.

If this were a common confusion among our users, then there would be
some justification for this, but it's not a common confusion.  In the
decade since the first Scheme macro stepper was invented, you are the
_only_ person who has reported confusion from the absence of this
feature in Guile.

That's not to say that you're unreasonable; it's simply due to your
particular experience of being acquainted with this feature of Racket
and perhaps being surprised that Guile didn't have it.  This same thing
could happen with _any_ feature of _any_ Scheme implementation.

Does that make sense?

 Regards,
   Mark



Re: my latest blog post

2018-06-08 Thread Ricardo Wurmus


Fis Trivial  writes:

> time. Little off topic, what I want to say is that, if I didn't tried to
> evaluate any code from string, how come a modern interpreter can tell me
> the error is happened in "unknown file" "unknown line"? Especially the
> "unknown file".

I cannot answer this without more context.

In the case of Guix this sometimes happens because of code staging,
which is described in detail here:

https://arxiv.org/abs/1709.00833

It’s a known limitation that is not easy to solve in general.

> So, in general, I believe that, if the guile project still have the
> desire of making some waves, user friendliness should be the first
> priority. Not those improvement mentioned in the manual like
> implementing python.

Different people work on different things that they find interesting.
It’s not a good idea to tell other people what they should spend their
volunteering time on.  Somebody who currently works on bringing Python
to the Guile VM may be in a unique position to do just that, but would
be a terrible choice for the job of improving compiler messages.

A volunteer project of this size simply doesn’t work this way.

I do know, though, that a discussion on guix-devel@gnu.org is not going
to lead to the desired outcome in Guile.  Only work on Guile can achieve
that.  For discussions about Guile, to submit proposals and to volunteer
your time for implementing the proposals, please continue this
discussion with the Guile community on guile-de...@gnu.org.

--
Ricardo




Re: Fwd: Re: Patch file for colorize module

2018-06-08 Thread Ricardo Wurmus


Hi Sahithi,

> As per discussion in irc, I tried using "pk str" and "(pk
> (string-append …))" to show values.
>
> I dint find any differences with and without pk.

That’s expected.  “pk” only peeks at the value — it does not modify it.

The goal of using “pk” was to help you figure out if the values of any
of the inner expressions really are what you want them to be.

> I thought I overlooked, so I tried copying terminal lines to files and
> compared. I couldn't find differences except that of timing.

I found the error already, but I’m sure you can too.  Here’s a hint:
play around with “(colorize-string "hello" '(GREEN))”.  Does this look
right?  If not, why is that?  Look closely at the definition of
“colorize-string”.  What arguments does it expect?  How are arguments
bound to variables?  How many arguments does “colorize-string” accept?
Are you really sure about that…?

Please really do play with this in the REPL and remind yourself of what
you expect to see.  Let’s even ignore color.  What should really happen
to the first argument to “colorize-string” in terms of ANSI codes?

--
Ricardo




Re: my latest blog post

2018-06-08 Thread Catonano
2018-06-08 15:49 GMT+02:00 Ludovic Courtès :

> Hello!
>
> Catonano  skribis:
>
> > In this post I discuss Guix
> >
> > And I discuss Guile too
> >
> > I understand that the language is strong and I expect someone to be upset
> >
> > But I feel this is due
> >
> > Happy reading
> >
> > http://catonano.v22018025836661967.nicesrv.de/the-gnu-community.html
>
> Thanks for sharing your thoughts!  I pretty much agree with the kind
> words about the Guix group. ;-)
>
> I didn’t know (I suppose I didn’t pay attention) to what happened to you
> in Guile land, and I’m sad you experienced it and felt bad about the
> whole story.
>
> I feel that “GNU is toxic” and “Guile is toxic” are unhelpful, though.
> I mean, we are GNU, and we are Guile.  GNU has its own set of problems
> that we’ll have to deal with, and it’s a very big organization with its
> own history etc., so improving things is difficult.  But Guile is a
> small community, and I’m sure we can improve.
>

I agree that there's room for improvement

That's the reason why I wrote that post

I could have silently drift away and maybe move to Racket or to Pharo or to
knitting fishing nets, as thousands of people have already done

I thought that in providing my cut on the Guile experience I was providing
ground on which to operate

It was what I could do to help the Guile community to improve a bit.

I was maybe slightly presumptuos, yes


> To me, the lesson as a Guile co-maintainer is that we should be paying
> more attention in general.  I consider myself partly responsible for
> this in that, although I’m still officially co-maintainer,


Ah I didn't know this
I thought you were a _former_ comantainer

Had I nown you were still a comantainer, I wold have pinged you, when the
accident happened

I refrained from pinging you because I had understood that you had
explicitly stripped yourself of the Guile responsibility in order to
dedicate your efforts to Guix


> I haven’t
> been paying much attention to what’s going on on the Guile channels.  We
> shouldn’t let hostile conversations like the one you experienced on
> #guile through.


Definitely. I'm glad you acnowledge this



> Perhaps what we need is someone to step up and help out
> with Guile?  We should all care.
>

Should any initiative to improve the Guile channels come out of this, I
would consider this a huge success of my post 😊




>
> Thank you,
> Ludo’.
>
>
Thank you !