unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Bug free programs
@ 2014-09-15 22:38 Ian Grant
  2014-09-16  9:20 ` Bootstrapping Ludovic Courtès
  2014-09-17  0:57 ` Bug free programs dsmich
  0 siblings, 2 replies; 14+ messages in thread
From: Ian Grant @ 2014-09-15 22:38 UTC (permalink / raw)
  To: guile-devel, lightning


[-- Attachment #1.1: Type: text/plain, Size: 7633 bytes --]

I'm posting this because it explains beautifully why we don't need to
expend any great effort on getting GDB or other debuggers working with
Guile. If some code needs a debugger, then it invariably needs
re-writing much more than it needs the debugger. And _programmers_ who
need the debugger are invariably much more in need of training.

This is (a tiny) part of the Computer Security History Project
interview with Roger Schell:

   http://conservancy.umn.edu/bitstream/133439/1/oh405rrs.pdf

========================================================================

Yost: And Edsger Djikstra was a visiting faculty member when you were
there. Can you talk about any interaction you had with him?

Schell: Yes, he was one of a couple of people that probably had a
major influence on my perspective on computer science. You know my
background was FORTRAN. I mean, that’s what we used. The military
programs were either assembly language or FORTRAN, or JOVIAL. JOVIAL was a
military program language—sort of like FORTRAN. When I joined Project MAC;
well, one of the things that you do with graduate
students is they’re free labor for various things that have to be
done. And one of the projects I had was what we called the Bootstrap
Project in Multics, which brought it from essentially the bare iron up
to the point where it could begin to run. It had been written an
assembly language. And in Multics, the whole story was to write things
in a higher [level] language. That makes them inspectable and viewable,
and that’s what I was working on, looking at that problem. Okay, rewrite
the Bootstrap in PL/1, from assembler language.

About that time Djikstra came to campus and he taught a class. And I
took his class and his claims, of course, seemed to me pretty
outlandish claims in terms of the ability to know that essentially you
had, call it, bug-free programs. And I, of course, had read the
T.H.E. paper that he had written about that and I was largely a
skeptic. Well, it turned out his office was about three doors down
from mine. By that time I had gotten an office in Project MAC; they
had a cluster of graduate students that I was with. Down at the other
end was Djikstra; they’d found a place for him. And so I’d go down
periodically and sort of challenge his claims. Well, he was not a
particularly patient person, and obviously, I had a lot of respect for
him so you wouldn’t debate him as you would another graduate student;
but still try and learn where he was coming from. So I sort of threw
out to him; because his examples; although the T.H.E. was about an
operating system, when he taught his classes they were about
algorithms that were essentially applications. And I said well, I’m
not sure that I am persuaded that I can get this approach really to
work; he described it as putting beads on a necklace and you put them
together, and that sort of thing. I said I’m not convinced. So he said
to me, what are you working on? I said I’m supposed to rewrite this
assembly language thing in PL/1. And he says well, you understand what
I do? Well, I think so. Well, you try it. And so, I said okay, fine,
I’ll do that. I’ll modularize it that way; I’ll introduce those sort
of layering constructs; and when I had questions and such—it isn’t
hard, and not a science as to how to construct that. And occasionally
I’d say I don’t see how to do this, so I’d go down and talk to him and
say well, okay, I don’t see; you know, it doesn’t seem to me like this
goes; and he’d patiently, or impatiently, put me on the right
track.

And so I did that and produced that program in that way, and of
course, with a Bootstrap program, you can’t do much more than a desk
check and then go run it. And so you’d have to construct a new boot
tape and it booted from tapes. You’d create all these files, then you
put them out, and they had this process of creating these tapes, and
that was the job. And I was familiar with that process; I had worked
in Multics; I had learned how to boot things up. I had written at that
low a level. So when the system would come up, if it incurred a flaw
early on in the process, it would type that the operating system was
dead; this bombed; this is not here; you’d get some sort of very
cryptic message that the operator console—which was a typewriter—would
type out.

And so I put my PL/1 version of the bootstrap program, built the tape,
and so I’m going to run my first test, and well, it’s where it’s going
to crash first, right? I mean, the usual kind of question, is can I
know what happened? So I start the tape running and went to the
operating console and waited for the message to type out. And I
waited; and I waited. And I said oh boy, I’m in trouble.  The thing;
it isn’t even able to give me an error message or anything. Nothing
happens.  I’m really in trouble! And I turned around and looked back
at the processor. Well, when the system’s fully up and running, the
background thing will flash the lights and a pattern on the console
lights. And I looked back, and it was running. And, I said, what’d I
do?  Run the wrong tape? So I looked down and made sure I had my
tape. I booted it again.  What? And it came up!

Well, you know, from my FORTRAN experience I’d never written a
thousand-line program (which this was) that ran the first time, right?
It doesn’t happen. And so that was one that definitely changed my
perspective from a software engineering point of view, in terms of
Djikstra’s impact, which is your question. Yes, it had a definite
impact on the way I view software engineering; I became obviously very
much of an advocate of that way of thinking about the problem.

======================================================================

Anyone who has used Standard ML functors knows this feeling, but more
so: when the code _compiles,_ you just know it's going to work. The
way a Standard ML functor works is it composes ML code together. It
allows you to implement an interface, and then totally replace the
underlying implementation by plugging in a different one. And the type
checking catches almost all the mistakes that people commonly
make. And if your ML compiler can assemble lightning code, you can do
this with assembler. The functor will snap assembler modules together,
and the resulting assembler, although quite complicated, _just works._
No debuggers necessary.

One may ask what has this to do with scheme? Well, Standard ML can
compose scheme or C code just as easily as it can compose assembler
code. So a Standard ML functor can define a typed template that will
allow one to exchange underling scheme implementations of functional
interfaces as easily as it does ML. This is why I want to get Moscow
ML working under Guile. Moscow ML is really light-weight when compared
with Guile. My machine takes 42 minutes (no, really, I timed it!)  to
byte-compile just ice9-pp.go. By comparison, the whole Moscow ML
autoconf/build cycle takes less than 50s. This includes the runtime,
the Standard ML basis library, and the lexer and parser generators and
the compiler and toplevel REPL. And there's a fair bit of junk we
could trip out, and we could make it a lot faster once we JIT compile
the bytecode instead of interpreting it, and when that JIT compiled
bytecode uses native Guile SCM objects to representall its data, then
there will no penalty whatsoever in a Guile program just switching to
Standard ML when it seems like a good idea.

[-- Attachment #1.2: Type: text/html, Size: 8006 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Lightning mailing list
Lightning-mXXj517/zsQ@public.gmane.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Bootstrapping
  2014-09-15 22:38 Bug free programs Ian Grant
@ 2014-09-16  9:20 ` Ludovic Courtès
  2014-09-17  0:57 ` Bug free programs dsmich
  1 sibling, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2014-09-16  9:20 UTC (permalink / raw)
  To: lightning-mXXj517/zsQ; +Cc: guile-devel-mXXj517/zsQ

Hi,

Ian Grant <ian.a.n.grant@googlemail.com>
skribis:

> ML working under Guile. Moscow ML is really light-weight when compared
> with Guile. My machine takes 42 minutes (no, really, I timed it!)  to
> byte-compile just ice9-pp.go. By comparison, the whole Moscow ML
> autoconf/build cycle takes less than 50s.

(You must be referring to psyntax-pp.scm.)

What language is Moscow ML implemented in?

Guile is bootstrapped from C: it doesn’t need a previous version of
itself or another Scheme implementation to build.  It has an interpreter
written in C.  During bootstrap, that interpreter runs the compiler to
build the final interpreter, ice-9/eval.scm.  From there we build the
rest of the compiler, which includes the macro expander, psyntax.  At
some point down the road, the compiler has been compiled to bytecode, so
things get significantly faster.

It’s a trade-off: this process is CPU-intensive, but it makes sure Guile
can always be built easily.

Ludo’.


_______________________________________________
Lightning mailing list
Lightning@gnu.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Re: Bug free programs
  2014-09-15 22:38 Bug free programs Ian Grant
  2014-09-16  9:20 ` Bootstrapping Ludovic Courtès
@ 2014-09-17  0:57 ` dsmich
  2014-09-17  1:22   ` Ian Grant
  1 sibling, 1 reply; 14+ messages in thread
From: dsmich @ 2014-09-17  0:57 UTC (permalink / raw)
  To: lightning, Ian Grant, guile-devel


---- Ian Grant <ian.a.n.grant@googlemail.com> wrote: 

....

> One may ask what has this to do with scheme? Well, Standard ML can
> compose scheme or C code just as easily as it can compose assembler
> code. So a Standard ML functor can define a typed template that will
> allow one to exchange underling scheme implementations of functional
> interfaces as easily as it does ML. This is why I want to get Moscow
> ML working under Guile. Moscow ML is really light-weight when compared
> with Guile. My machine takes 42 minutes (no, really, I timed it!)  to
> byte-compile just ice9-pp.go. By comparison, the whole Moscow ML
> autoconf/build cycle takes less than 50s. This includes the runtime,
> the Standard ML basis library, and the lexer and parser generators and
> the compiler and toplevel REPL. And there's a fair bit of junk we
> could trip out, and we could make it a lot faster once we JIT compile
> the bytecode instead of interpreting it, and when that JIT compiled
> bytecode uses native Guile SCM objects to representall its data, then
> there will no penalty whatsoever in a Guile program just switching to
> Standard ML when it seems like a good idea.

Note that the 42 minutes here is a dumbed-down scheme interpreter written in C building/boostrapping the compiler.
The guile compiler (the Scheme one) is quite a bit faster than that.

-Dale





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

* Re: Bug free programs
  2014-09-17  0:57 ` Bug free programs dsmich
@ 2014-09-17  1:22   ` Ian Grant
  2014-09-17  3:27     ` Mark H Weaver
  0 siblings, 1 reply; 14+ messages in thread
From: Ian Grant @ 2014-09-17  1:22 UTC (permalink / raw)
  To: dsmich-XauvlLoUTru+XT7JhA+gdA; +Cc: lightning, guile-devel


[-- Attachment #1.1: Type: text/plain, Size: 623 bytes --]

On Tue, Sep 16, 2014 at 8:57 PM, <dsmich-XauvlLoUTru+XT7JhA+gdA@public.gmane.org> wrote:
> Note that the 42 minutes here is a dumbed-down scheme interpreter
> written in C building/boostrapping the compiler. The guile compiler
> (the Scheme one) is quite a bit faster than that.

I know, but it's not necessary. Guile could take the scheme code which
implements the efficient compiler, and just print out the C code (which JIT
compiles the machine code) implementing that bytecode compiler. See the
thunder.pdf I sent when I first proposed this idea:

   http://lists.gnu.org/archive/html/guile-devel/2014-08/msg00064.html

[-- Attachment #1.2: Type: text/html, Size: 872 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Lightning mailing list
Lightning-mXXj517/zsQ@public.gmane.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Re: Bug free programs
  2014-09-17  1:22   ` Ian Grant
@ 2014-09-17  3:27     ` Mark H Weaver
       [not found]       ` <8738brsz82.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Mark H Weaver @ 2014-09-17  3:27 UTC (permalink / raw)
  To: Ian Grant; +Cc: lightning, guile-devel

Ian Grant <ian.a.n.grant@googlemail.com> writes:

> On Tue, Sep 16, 2014 at 8:57 PM, <dsmich@roadrunner.com> wrote:
>> Note that the 42 minutes here is a dumbed-down scheme interpreter 
>> written in C building/boostrapping the compiler. The guile compiler
>> (the Scheme one) is quite a bit faster than that.
>
> I know, but it's not necessary. Guile could take the scheme code which
> implements the efficient compiler, and just print out the C code
> (which JIT compiles the machine code) implementing that bytecode
> compiler.

Are you suggesting that we compile our Scheme code to C, include that
in our distribution, and then users would start by compiling that
(non-source) C code?  If so, I'm surprised to hear you suggest that,
given your concern over Thompson viruses (which I share, incidentally).
A Thompson virus could be hiding in this intermediate C code that would
be very hard to audit.

I, for one, am very glad that unlike many self-hosting compilers, Guile
is bootstrapped entirely from source code, with just one exception:
psyntax-pp.scm is generated from psyntax.scm, but it's fairly close to
the source code and quite readable.  Incidentally, I put a great deal of
effort into making sure it was readable.

> See the thunder.pdf I sent when I first proposed this idea:
>
> http://lists.gnu.org/archive/html/guile-devel/2014-08/msg00064.html

If you want me to read it, can you please email it as plain text?

     Mark



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

* Re: Bug free programs
       [not found]       ` <8738brsz82.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
@ 2014-09-17 13:35         ` Ian Grant
  2014-09-17 17:29           ` Mark H Weaver
  2014-09-17 16:15         ` Ian Grant
  1 sibling, 1 reply; 14+ messages in thread
From: Ian Grant @ 2014-09-17 13:35 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: lightning, dsmich-XauvlLoUTru+XT7JhA+gdA, guile-devel


[-- Attachment #1.1: Type: text/plain, Size: 1974 bytes --]

On Tue, Sep 16, 2014 at 11:27 PM, Mark H Weaver <mhw-StlzRsPvAncdnm+yROfE0A@public.gmane.org> wrote:

> Ian Grant <ian.a.n.grant-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> writes:
>
> Are you suggesting that we compile our Scheme code to C, include that
> in our distribution, and then users would start by compiling that
> (non-source) C code?  If so, I'm surprised to hear you suggest that,
> given your concern over Thompson viruses (which I share, incidentally).
> A Thompson virus could be hiding in this intermediate C code that would
> be very hard to audit.
>

Tell me, how did you compile your OS kernel and your glibc, ld.so, ld, as
and gcc binaries?

You don't seem to understand the problem: a "Thompson virus" is not hard to
audit, it is _impossible_ to audit, because it's _invisible_. The method I
explain in that document will allow us to know that there is very probably
not a "Thompson virus" anywhere in the system.

I, for one, am very glad that unlike many self-hosting compilers, Guile
> is bootstrapped entirely from source code, with just one exception:
> psyntax-pp.scm is generated from psyntax.scm, but it's fairly close to
> the source code and quite readable.  Incidentally, I put a great deal of
> effort into making sure it was readable.
>

I can assure you that Guile is most certainly not bootstrapped entirely
from source code.  If you had understood any of the discussion about the
problem you would know that there is not one single line of GNU source that
has ever been bootstrapped from source code.

>
> > See the thunder.pdf I sent when I first proposed this idea:
> >
> > http://lists.gnu.org/archive/html/guile-devel/2014-08/msg00064.html
>
> If you want me to read it, can you please email it as plain text?
>

No: because If you can't read a PDF then you can't read _any_ of the
research papers you need to be able to read in order to stand the slightest
chance of doing a decent job of developing any kind of software at all.

Ian

[-- Attachment #1.2: Type: text/html, Size: 2947 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Lightning mailing list
Lightning-mXXj517/zsQ@public.gmane.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Re: Bug free programs
       [not found]       ` <8738brsz82.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
  2014-09-17 13:35         ` Ian Grant
@ 2014-09-17 16:15         ` Ian Grant
  2014-09-18  9:28           ` Neil Jerram
  1 sibling, 1 reply; 14+ messages in thread
From: Ian Grant @ 2014-09-17 16:15 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: lightning, dsmich-XauvlLoUTru+XT7JhA+gdA, guile-devel


[-- Attachment #1.1: Type: text/plain, Size: 625 bytes --]

On Tue, Sep 16, 2014 at 11:27 PM, Mark H Weaver <mhw-StlzRsPvAncdnm+yROfE0A@public.gmane.org> wrote:

> A Thompson virus could be hiding in this intermediate C code that would
> be very hard to audit.
>

When did you last audit these 66,000 lines of intermediate code, which
people are encouraged to run as root? If you _had_ audited it, how would
you know you hadn't missed something cunningly concealed in a double
expansion somewhere?

ian3@jaguar:~/build/guile-2.0.11$ wc -l Makefile lib/Makefile
libguile/Makefile configure
   2373 Makefile
   4052 lib/Makefile
   3792 libguile/Makefile
  55901 configure
  66118 total

[-- Attachment #1.2: Type: text/html, Size: 1009 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Lightning mailing list
Lightning-mXXj517/zsQ@public.gmane.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Re: Bug free programs
  2014-09-17 13:35         ` Ian Grant
@ 2014-09-17 17:29           ` Mark H Weaver
       [not found]             ` <87a95yp341.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Mark H Weaver @ 2014-09-17 17:29 UTC (permalink / raw)
  To: Ian Grant; +Cc: lightning, guile-devel

Hi Ian,

I'm going to try to ignore your gratutious and unfounded insults,
because I agree that the problem you are trying to solve is an important
one, and believe it or not, you'd be hard pressed to find anyone else in
the GNU project who worries about this issue as much as I do.

For example, on an internal GNU mailing list, I complained when GCC
switched to using C++ because it vastly increases the complexity of the
simplest compiler that's able to bootstrap it.

The reason is that for a few years now, I've very seriously considered
dedicating myself to developing a bootstrap procedure that starts with
raw machine code running on bare metal and ends with a working GNU
toolchain.

I've also considered more practical approaches such as: lock a
(preferably older) computer inside a Faraday cage to prevent
communication with the outside world, thus limiting the intelligence
that any Thompson virus can have, while I write a very simple and novel
C compiler that's capable of bootstrapping GCC and the rest of the
toolchain, and then printing the result to paper in a form that can be
scanned reliably -- a task I have some experience with, since I led the
development of the scannable PGP source code books that allowed PGP to
be legally exported from the US fo the first time, along with the tools
needed to convert the paper books back into electronic form with modest
effort.

Ian Grant <ian.a.n.grant@googlemail.com> writes:

> On Tue, Sep 16, 2014 at 11:27 PM, Mark H Weaver <mhw@netris.org>
> wrote:
>
>     Ian Grant <ian.a.n.grant@googlemail.com> writes:
>     
>     Are you suggesting that we compile our Scheme code to C, include
>     that
>     in our distribution, and then users would start by compiling that
>     (non-source) C code? If so, I'm surprised to hear you suggest
>     that,
>     given your concern over Thompson viruses (which I share,
>     incidentally).
>     A Thompson virus could be hiding in this intermediate C code that
>     would
>     be very hard to audit.
>
> Tell me, how did you compile your OS kernel and your glibc, ld.so, ld,
> as and gcc binaries? 

Yes, that's a very serious problem, but I don't want to make the problem
worse by adding yet another pile of intermediate C code that must be
taken on faith to be free of Thompson viruses.

>     I, for one, am very glad that unlike many self-hosting compilers,
>     Guile
>     is bootstrapped entirely from source code, with just one
>     exception:
>     psyntax-pp.scm is generated from psyntax.scm, but it's fairly
>     close to
>     the source code and quite readable. Incidentally, I put a great
>     deal of
>     effort into making sure it was readable.
>
> I can assure you that Guile is most certainly not bootstrapped
> entirely from source code. If you had understood any of the discussion
> about the problem you would know that there is not one single line of
> GNU source that has ever been bootstrapped from source code.

I understand that just fine.  It's obvious that to compile Guile, you
first need a C toolchain.  That's a separate problem, and indeed a very
serious one.

>     > See the thunder.pdf I sent when I first proposed this idea:
>     >
>     >
>     http://lists.gnu.org/archive/html/guile-devel/2014-08/msg00064.html
>     
>     If you want me to read it, can you please email it as plain text?
>
> No: because If you can't read a PDF then you can't read _any_ of the
> research papers you need to be able to read in order to stand the
> slightest chance of doing a decent job of developing any kind of
> software at all.

Wow.  Did you try telling that to RMS, who made the same suggestion?

I read plenty of PDFs.  They are inconvenient, but I suffer that
inconvenience on a regular basis, when I have reason to believe that I
might learn something new from them.  So far, not a single person has
recommended your paper to me except you, nor have I learned anything I
didn't already know from the emails you've written, at least not from
the prefixes of those emails that I've read before losing interest.

I'm not saying that you don't have something to teach me.  Maybe you do,
but if so, you must learn the art of capturing the interest of your
readers long enough to convince them that they should continue reading.

At present, you're in the position of having to convince me that you're
ideas are worth studying, not the other way around, and I suspect I'm
not alone.  It would help to tell me something I didn't already know, in
ASCII, as concisely as possible.

      Mark



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

* Re: Bug free programs
       [not found]             ` <87a95yp341.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
@ 2014-09-17 18:11               ` Ian Grant
  2014-09-17 21:32                 ` Ludovic Courtès
  2014-09-17 21:57               ` Ian Grant
  1 sibling, 1 reply; 14+ messages in thread
From: Ian Grant @ 2014-09-17 18:11 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: lightning, dsmich-XauvlLoUTru+XT7JhA+gdA, guile-devel

On Wed, Sep 17, 2014 at 1:29 PM, Mark H Weaver <mhw-StlzRsPvAncdnm+yROfE0A@public.gmane.org> wrote:
> Hi Ian,
>
> I'm going to try to ignore your gratutious and unfounded insults,

They are indeed gratuitous. Think of them as a sort of free software.

> because I agree that the problem you are trying to solve is an important
> one, and believe it or not, you'd be hard pressed to find anyone else in
> the GNU project who worries about this issue as much as I do.

I have no trouble at all believing that. That doesn't mean I think you
know what you're talking about though.

> For example, on an internal GNU mailing list, I complained when GCC
> switched to using C++ because it vastly increases the complexity of the
> simplest compiler that's able to bootstrap it.

It's OK. As long they maintain one of the older gcc versions which
builds a g++ compiler from a C base, there's not much extra work
involved at all.

> The reason is that for a few years now, I've very seriously considered
> dedicating myself to developing a bootstrap procedure that starts with
> raw machine code running on bare metal and ends with a working GNU
> toolchain.

It's a good thing inertia prevailed, because that would have been a
complete and utter waste of time. But tell me, how were you planning
to load the machine code into the memory? Were you going to solder up
a front-panel loader and bootstrap it by setting the address and data
lines and pressing 'WRITE'? I hope you weren't planning to make a
paper tape reader!

> I've also considered more practical approaches such as: lock a
> (preferably older) computer inside a Faraday cage to prevent
> communication with the outside world, thus limiting the intelligence
> that any Thompson virus can have, while I write a very simple and novel
> C compiler that's capable of bootstrapping GCC and the rest of the
> toolchain, and then printing the result to paper in a form that can be
> scanned reliably -- a task I have some experience with, since I led the
> development of the scannable PGP source code books that allowed PGP to
> be legally exported from the US fo the first time, along with the tools
> needed to convert the paper books back into electronic form with modest
> effort.

What is the point of printing it on paper? How  'novel' is your C
compiler going to be once you've distributed it? Was it going to be
Free Software? If it had a bug, would you distribute an update?

> Wow.  Did you try telling that to RMS, who made the same suggestion?

No, because he didn't make it a condition of him reading it: he had
already read it when he made that suggestion.

> I read plenty of PDFs.  They are inconvenient, but I suffer that
> inconvenience on a regular basis, when I have reason to believe that I
> might learn something new from them.  So far, not a single person has
> recommended your paper to me except you,

I don't need people to recommend papers before I read them.

> nor have I learned anything I didn't already know from the emails
> you've written, at least not from the prefixes of those emails that
> I've read before losing interest.

Why did you think I hadn't noticed that?

> I'm not saying that you don't have something to teach me.  Maybe you do,

I don't think I could teach you anything.

> but if so, you must learn the art of capturing the interest of your
> readers long enough to convince them that they should continue reading.

No, I don't need to do that because I'm not selling anything. There's
nothing I need from the Free Software Foundation. The Free Software
Foundation on the other hand, very desperately needs to know what I
know about GNU software.

> At present, you're in the position of having to convince me that you're
> ideas are worth studying, not the other way around, and I suspect I'm
> not alone.  It would help to tell me something I didn't already know, in
> ASCII, as concisely as possible.

I have told you lots, and in a very few words. You just need to
actually think about it. And you will, because, until you understand
that in fact you know NOTHING about what the computer you are using to
read this message is actually doing, there won't pass a single day of
your life that you don't think about what I am telling you now.

Happy hacking, until you learn something about software engineering.

Ian

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

* Re: Bug free programs
  2014-09-17 18:11               ` Ian Grant
@ 2014-09-17 21:32                 ` Ludovic Courtès
       [not found]                   ` <87sijq2arb.fsf-mXXj517/zsQ@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2014-09-17 21:32 UTC (permalink / raw)
  To: Ian Grant; +Cc: guile-devel

Ian Grant <ian.a.n.grant@googlemail.com> skribis:

> On Wed, Sep 17, 2014 at 1:29 PM, Mark H Weaver <mhw-StlzRsPvAncdnm+yROfE0A@public.gmane.org> wrote:
>> Hi Ian,
>>
>> I'm going to try to ignore your gratutious and unfounded insults,
>
> They are indeed gratuitous.

Ian, insulting behavior is not acceptable on this mailing list.
Please stop it, now.

Furthermore, while your ideas may be worth pursuing, it’s not OK to keep
aggressively posting to so many people.  Please come back to
guile-devel@gnu.org when you have concrete proposals or code, directly
relevant to Guile development, for discussion.

Thanks for your understanding.

Ludo’.



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

* Re: Bug free programs
       [not found]             ` <87a95yp341.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
  2014-09-17 18:11               ` Ian Grant
@ 2014-09-17 21:57               ` Ian Grant
       [not found]                 ` <CAKFjmdwA31CsB_FLYuOLBfR6_DX5Qj+GUGnoMxwgrBryy4Uqtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  1 sibling, 1 reply; 14+ messages in thread
From: Ian Grant @ 2014-09-17 21:57 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: lightning, dsmich-XauvlLoUTru+XT7JhA+gdA, guile-devel

On Wed, Sep 17, 2014 at 1:29 PM, Mark H Weaver <mhw-StlzRsPvAncdnm+yROfE0A@public.gmane.org> wrote:
> [...] I led the development of the scannable PGP source code books that
> allowed PGP to be legally exported from the US fo the first time, along
> with the tools needed to convert the paper books back into electronic
> form with modest effort.

This is the most interesting thing anyone's said in the discussion so
far. Now you can teach me something.

If I had  modified GNU source and I'd compiled it to object code, and
put it in that "non-electronic media" you developed, and sold it,
without making the modified source available to people, would that be
selling Copyleft software? I think so.

Now tell me how it is _you_ know that what you did doesn't earn you
and Richard Stallman a fetching orange jump-suit each, and an
all-expenses-paid vacation at a Government holiday camp in the South
East Florida Keys, with power-showers every two hours and where you
get to listen to the same Eminem song (there is only one) 24 hours a
day?

http://www.pmddtc.state.gov/regulations_laws/documents/official_itar/ITAR_Part_121.pdf

Category VIII - Auxiliary Military Equipment
================================

(b) Military Information Security Assurance Systems and equipment, cryptographic
devices, software, and components specifically designed, developed,
modified, adapted, or configured for military applications (including
command, control and intelligence applications.

Ian

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

* Re: Bug free programs
       [not found]                   ` <87sijq2arb.fsf-mXXj517/zsQ@public.gmane.org>
@ 2014-09-17 22:10                     ` Ian Grant
  0 siblings, 0 replies; 14+ messages in thread
From: Ian Grant @ 2014-09-17 22:10 UTC (permalink / raw)
  To: Ludovic Courtès, guile-devel, lightning, Richard Stallman

On Wed, Sep 17, 2014 at 5:32 PM, Ludovic Courtès <ludo@gnu.org> wrote:
> Ian Grant <ian.a.n.grant@googlemail.com> skribis:

> Furthermore, while your ideas may be worth pursuing, it’s not OK to keep
> aggressively posting to so many people.  Please come back to
> guile-devel@gnu.org when you have concrete proposals or code, directly
> relevant to Guile development, for discussion.

Hi Ludovic,

First, see:

  http://lists.gnu.org/archive/html/guile-devel/2014-09/msg00042.html
  http://lists.gnu.org/archive/html/guile-devel/2014-09/msg00069.html
  http://lists.gnu.org/archive/html/guile-devel/2014-09/msg00067.html
  http://lists.gnu.org/archive/html/guile-devel/2014-09/msg00074.html

Then tell me what responses I received from guile developers, and what
you mean  when you say "come back when you have concrete proposals or
code"?

And then tell me what you and all the other FSF members are going to
look like if the whole FSF starts to fall down around your ears, and
you stopped me from posting messages which were just and decent
attempts to wake people up from their torpor, simply because some
weak-minded people got a little offended at being addressed directly
and couldn't justify what they had written.

Ian

_______________________________________________
Lightning mailing list
Lightning@gnu.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Re: Bug free programs
       [not found]                 ` <CAKFjmdwA31CsB_FLYuOLBfR6_DX5Qj+GUGnoMxwgrBryy4Uqtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2014-09-18  0:50                   ` Ian Grant
  0 siblings, 0 replies; 14+ messages in thread
From: Ian Grant @ 2014-09-18  0:50 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: lightning, dsmich-XauvlLoUTru+XT7JhA+gdA, guile-devel


[-- Attachment #1.1: Type: text/plain, Size: 2043 bytes --]

On Wed, Sep 17, 2014 at 5:57 PM, Ian Grant <ian.a.n.grant-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
wrote:
> Now tell me how it is _you_ know that what you did doesn't earn you
> and Richard Stallman a fetching orange jump-suit each, and an
> all-expenses-paid vacation at a Government holiday camp in the South
> East Florida Keys, with power-showers every two hours and where you
> get to listen to the same Eminem song (there is only one) 24 hours a
> day?

Here's a clue. It's from Lewis Carroll's "Symbolic Logic"
http://www.gutenberg.org/2/8/6/9/28696/

    (4)

        "Of the prisoners who were put on their trial at the last
           Assizes, all, against whom the verdict 'guilty' was
           returned, were sentenced to imprisonment;
         Some, who were sentenced to imprisonment, were also
           sentenced to hard labour".

    Let Univ. be "the prisoners who were put on their trial at the
    last Assizes"; m = who were sentenced to imprisonment;
    x = against whom the verdict 'guilty' was returned; y = who were
    sentenced to hard labour.

    The Premisses, translated into abstract form, are

        "All x are m;
         Some m are y".

    Breaking up the first, we get the three

        (1) "Some x are m;
        (2)  No x are m';
        (3)  Some m are y".

    Representing these, in the order 2, 1, 3, on a Triliteral
    Diagram, we get

        ·---------------·
        |(O)    |    (O)|
        |   ·---|---·   |
        |   |  (I)  |   |
        |---|(I)|---|---|
        |   |   |   |   |
        |   ·---|---·   |
        |       |       |
        ·---------------·

    Here we get no Conclusion at all.

    You would very likely have guessed, if you had seen _only_ the
    Premisses, that the Conclusion would be

        "Some, against whom the verdict 'guilty' was returned,
         were sentenced to hard labour".

    But this Conclusion is not even _true_, with regard to the
    Assizes I have here invented.

[-- Attachment #1.2: Type: text/html, Size: 2720 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Lightning mailing list
Lightning-mXXj517/zsQ@public.gmane.org
https://lists.gnu.org/mailman/listinfo/lightning

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

* Re: Bug free programs
  2014-09-17 16:15         ` Ian Grant
@ 2014-09-18  9:28           ` Neil Jerram
  0 siblings, 0 replies; 14+ messages in thread
From: Neil Jerram @ 2014-09-18  9:28 UTC (permalink / raw)
  To: guile-devel

On 2014-09-17 17:15, Ian Grant wrote:

> When did you last audit these 66,000 lines of intermediate code, which
> people are encouraged to run as root?
[...]
> ian3@jaguar:~/build/guile-2.0.11$ wc -l Makefile lib/Makefile
> libguile/Makefile configure
>    2373 Makefile
>    4052 lib/Makefile
>    3792 libguile/Makefile
>   55901 configure
>   66118 total

People are absolutely NOT encouraged to run ./configure and make as 
root.  In around 20 years of Guile development, I don't recall ever 
doing or encouraging that.

Regards,
       Neil




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

end of thread, other threads:[~2014-09-18  9:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-15 22:38 Bug free programs Ian Grant
2014-09-16  9:20 ` Bootstrapping Ludovic Courtès
2014-09-17  0:57 ` Bug free programs dsmich
2014-09-17  1:22   ` Ian Grant
2014-09-17  3:27     ` Mark H Weaver
     [not found]       ` <8738brsz82.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
2014-09-17 13:35         ` Ian Grant
2014-09-17 17:29           ` Mark H Weaver
     [not found]             ` <87a95yp341.fsf-Ir+b6ulHfbb+AlalS6MPSg@public.gmane.org>
2014-09-17 18:11               ` Ian Grant
2014-09-17 21:32                 ` Ludovic Courtès
     [not found]                   ` <87sijq2arb.fsf-mXXj517/zsQ@public.gmane.org>
2014-09-17 22:10                     ` Ian Grant
2014-09-17 21:57               ` Ian Grant
     [not found]                 ` <CAKFjmdwA31CsB_FLYuOLBfR6_DX5Qj+GUGnoMxwgrBryy4Uqtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-18  0:50                   ` Ian Grant
2014-09-17 16:15         ` Ian Grant
2014-09-18  9:28           ` Neil Jerram

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).