From MAILER-DAEMON Fri May 09 13:17:56 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WioQm-00064p-A4
	for mharc-axiom-developer@gnu.org; Fri, 09 May 2014 13:17:56 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:38270)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WioQf-00063n-Ml
	for axiom-developer@nongnu.org; Fri, 09 May 2014 13:17:54 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WioQa-0002nk-FY
	for axiom-developer@nongnu.org; Fri, 09 May 2014 13:17:49 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:48598
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WioQa-0002ng-AQ
	for axiom-developer@nongnu.org; Fri, 09 May 2014 13:17:44 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s49HHeFI017068
	for <axiom-developer@nongnu.org>; Fri, 9 May 2014 12:17:42 -0500
Received: by u1204 (Postfix, from userid 1000)
	id BBFE068788; Fri,  9 May 2014 13:16:19 -0400 (EDT)
From: Tim Daly <daly@axiom-developer.org>
To: axiom-developer@nongnu.org
Message-Id: <20140509171619.BBFE068788@u1204>
Date: Fri,  9 May 2014 13:16:19 -0400 (EDT)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] Must hear...
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Fri, 09 May 2014 17:17:55 -0000

With respect to "documentation" of open source software...

"You keep using that word. I don't think it means what you think it
means." -- "The Princess Bride"

The notion that "reading the code" is the ultimate truth for
"documentation" is based on a misunderstanding at so many levels it is
hard to explain. In fact, most of the ideas don't begin to cover
"documenting the system". Fortunately, Robert Lefkowitz absolutely
illuminates the scope of the problem in these delightful talks.

For those who have not heard it, this is truly a treat.
For those who "document" this is a must-hear.

Robert Lefkowitz -- The Semasiology of Open Source
http://web.archive.org/web/20130729214526id_/http://itc.conversationsnetwork.org/shows/detail169.html
http://web.archive.org/web/20130729210039id_/http://itc.conversationsnetwork.org/shows/detail662.html

Tim Daly


From MAILER-DAEMON Fri May 09 13:44:05 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wioq5-0005Pa-OA
	for mharc-axiom-developer@gnu.org; Fri, 09 May 2014 13:44:05 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:45912)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wiopz-0005NT-0z
	for axiom-developer@nongnu.org; Fri, 09 May 2014 13:44:04 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wiopt-0003HK-JY
	for axiom-developer@nongnu.org; Fri, 09 May 2014 13:43:58 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:34351
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wiopt-0003HG-EE
	for axiom-developer@nongnu.org; Fri, 09 May 2014 13:43:53 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s49HhqFI019020;
	Fri, 9 May 2014 12:43:52 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s49HhqER019017;
	Fri, 9 May 2014 12:43:52 -0500
Date: Fri, 9 May 2014 12:43:52 -0500
Message-Id: <201405091743.s49HhqER019017@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] Must hear...
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Fri, 09 May 2014 17:44:04 -0000

There is a 3rd part to this series. Enjoy...

Robert Lefkowitz -- The Semasiology of Open Source (part 3)

http://daviding.wordpress.com/2007/10/22/robert-lefkowitz-the-semasiology-of-open-source-part-iii-oscon-2007-it-conversations-20060726/

Tim


From MAILER-DAEMON Fri May 09 16:38:42 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WirZ4-000749-G3
	for mharc-axiom-developer@gnu.org; Fri, 09 May 2014 16:38:42 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:58049)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WirYy-00072z-0l
	for axiom-developer@nongnu.org; Fri, 09 May 2014 16:38:41 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WirYs-0005lQ-Qc
	for axiom-developer@nongnu.org; Fri, 09 May 2014 16:38:35 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:45359
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WirYs-0005lM-Kt
	for axiom-developer@nongnu.org; Fri, 09 May 2014 16:38:30 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s49KcSFI021210;
	Fri, 9 May 2014 15:38:28 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s49KcRcS021207;
	Fri, 9 May 2014 15:38:27 -0500
Date: Fri, 9 May 2014 15:38:27 -0500
Message-Id: <201405092038.s49KcRcS021207@axiom-developer.org>
To: "Bill Naylor" <bill@orcca.on.ca>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: [Axiom-developer] Polynomial GCD code
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Fri, 09 May 2014 20:38:41 -0000

Bill,

Do you have a copy of your thesis code in Axiom?
If so, can I have a copy to try to incorporate into Axiom?

Tim Daly
daly@axiom-developer.org
http://daly.axiom-developer.org


From MAILER-DAEMON Sun May 11 04:57:49 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjPZt-0005d2-Lq
	for mharc-axiom-developer@gnu.org; Sun, 11 May 2014 04:57:49 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:33488)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WjPZm-0005cM-TQ
	for axiom-developer@nongnu.org; Sun, 11 May 2014 04:57:48 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WjPZh-0007aT-Kr
	for axiom-developer@nongnu.org; Sun, 11 May 2014 04:57:42 -0400
Received: from mout.kundenserver.de ([212.227.126.131]:65490)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WjPZh-0007aI-Bl
	for axiom-developer@nongnu.org; Sun, 11 May 2014 04:57:37 -0400
Received: from [192.168.1.65] ([94.195.43.120])
	by mrelayeu.kundenserver.de (node=mreue006) with ESMTP (Nemesis)
	id 0LxHby-1Wu0MG12zq-016wc0; Sun, 11 May 2014 10:57:34 +0200
Message-ID: <536F3B52.8050907@martinb.com>
Date: Sun, 11 May 2014 09:56:50 +0100
From: Martin Baker <ax87438@martinb.com>
Organization: axiom
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <20140509171619.BBFE068788@u1204>
In-Reply-To: <20140509171619.BBFE068788@u1204>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V02:K0:K7lvEWAZZCTjgaunMNvGec0jtXiDWrs+lrATEaVrDil
	CrYBPznM+jD68VFftOVKqaq46twR+1m7obJ6vBNYuQiOOoXm0v
	kF6G+50bKXEMmrnMTdo4iRBMivNhWJgsHVTH3nPTc4gMAw8HJV
	ZWITNtpUL0dshesUnGx4kNVKTA29M3UUA2pnR2fv7XHfuslPuT
	iLb+CFDk2QdhcaWX/ePKoU9JEWGnqpLj3EC0ucC9A0vYJ+rm/Y
	xRHsBGSI95YyJG/AhjIvnmUL5tGTAWcqy0wkKWomNfx4Zt6zKF
	aZAOBq8zqg99yd2cwxB2nrl/MTig4YJ/AxEQ7XmO9yN8LM5c+d
	ezztGh8Set1jjjHydgBgVaKnRbvV6/cq7KuTUDrzJ
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic]
X-Received-From: 212.227.126.131
Subject: Re: [Axiom-developer] Must hear...
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 11 May 2014 08:57:48 -0000

On 09/05/14 18:16, Tim Daly wrote:
> With respect to "documentation" of open source software...
>
> "You keep using that word. I don't think it means what you think it
> means." -- "The Princess Bride"
>
> The notion that "reading the code" is the ultimate truth for
> "documentation" is based on a misunderstanding at so many levels it is
> hard to explain. In fact, most of the ideas don't begin to cover
> "documenting the system". Fortunately, Robert Lefkowitz absolutely
> illuminates the scope of the problem in these delightful talks.
>
> For those who have not heard it, this is truly a treat.
> For those who "document" this is a must-hear.
>
> Robert Lefkowitz -- The Semasiology of Open Source
> http://web.archive.org/web/20130729214526id_/http://itc.conversationsnetwork.org/shows/detail169.html
> http://web.archive.org/web/20130729210039id_/http://itc.conversationsnetwork.org/shows/detail662.html

So what should one do if one wants to modify parts of Axiom (or its 
forks) where all there is is the code?

Should one:
1) Trace through the code and try to reverse engineer the documentation, 
then modify that.
2) Try to understand generally what it does (such as working out what 
the inputs and outputs are). Then rewrite it from scratch in a 
documentation led way.

For me, in a lot of cases, I would prefer option 2. I would not claim to 
be as smart as the original authors, any algorithm that I would come up 
with might be less efficient and inferior in many respects. However I 
would try to document it as well as I could and try to make it a better 
basis for future improvement. Also, if I am going to make mistakes, at 
least I would learn more from my own mistakes.

Martin



From MAILER-DAEMON Sun May 11 15:36:12 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjZXg-0006AT-7i
	for mharc-axiom-developer@gnu.org; Sun, 11 May 2014 15:36:12 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:39895)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjZXW-00068z-Nq
	for axiom-developer@nongnu.org; Sun, 11 May 2014 15:36:10 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjZXP-0006ce-7E
	for axiom-developer@nongnu.org; Sun, 11 May 2014 15:36:02 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:36506
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjZXP-0006cX-1f
	for axiom-developer@nongnu.org; Sun, 11 May 2014 15:35:55 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4BJZlFI017923;
	Sun, 11 May 2014 14:35:48 -0500
Received: by u1204 (Postfix, from userid 1000)
	id 5397268921; Sun, 11 May 2014 15:35:47 -0400 (EDT)
From: u1204 <daly@axiom-developer.org>
To: Martin Baker <ax87438@martinb.com>
In-Reply-To: <536F3B52.8050907@martinb.com> (message from Martin Baker on Sun,
	11 May 2014 09:56:50 +0100)
Date: Sun, 11 May 2014 15:35:47 -0400
Message-ID: <874n0wrtv0.fsf@axiom-developer.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Must hear...
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 11 May 2014 19:36:10 -0000

> So what should one do if one wants to modify parts of Axiom (or its 
> forks) where all there is is the code?
> 
> Should one:
> 1) Trace through the code and try to reverse engineer the documentation, 
> then modify that.
> 2) Try to understand generally what it does (such as working out what 
> the inputs and outputs are). Then rewrite it from scratch in a 
> documentation led way.
> 
> For me, in a lot of cases, I would prefer option 2. I would not claim to 
> be as smart as the original authors, any algorithm that I would come up 
> with might be less efficient and inferior in many respects. However I 
> would try to document it as well as I could and try to make it a better 
> basis for future improvement. Also, if I am going to make mistakes, at 
> least I would learn more from my own mistakes.

For existing code there are many ways to approach the problem and I
can't recommend any general approach. The main goal to keep in mind is
to speak to a broad audience who might need to do something with the
code. For instance, with the sequence prediction code, what is the idea?
What papers should be read? What subset of the problem is covered? Are
there boundary cases?  Are there examples to try? How is the code
structured? Does it depend on a limit package? Does it work over floats?

The approach I'm taking is to start from the code, find the related
theory, then understand and document from the theory to the code.
At that point I feel I know enough to critically examine the code.

Any algebra author sufficiently clever and educated to write an algebra
package (e.g. JET), is bringing a LOT of background to the code. Writing
reasonable documentation without their help is a formidable challenge.
However if Axiom is going to survive and surpass the current state of
the art it is necessary to try.

If the information is available it can easily be restructured into the
books, hyperdoc, help files, ++ comments, test files, and examples.

The new )describe command currently shows working examples. That can be
enough for someone to start using the domains. The new )help command
will (eventually) pop into a browser worksheet with a series of
worked-out problems, explanations, and a live connection to the
interpreter so experiements can be done.

New algebra authors really do need to spend the time and effort to
bring the quality of their documentation up to the quality of their
code. Writing down the ideas while writing the code is not particularly
challenging and, in fact, is very likely to improve the quality of the
code, based on feedback from those who tried.

As Roboert Persig said in "Zen and the Art of Motorcycle Maintenance", 
it's all about quality. As Knuth said, it's all about communication.
Stealing from both, I say it is all about quality communication.

Tim






From MAILER-DAEMON Sun May 11 15:39:47 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjZb9-00086e-H3
	for mharc-axiom-developer@gnu.org; Sun, 11 May 2014 15:39:47 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:40429)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjZb2-0007yO-SE
	for axiom-developer@nongnu.org; Sun, 11 May 2014 15:39:45 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjZax-0007E1-UP
	for axiom-developer@nongnu.org; Sun, 11 May 2014 15:39:40 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:44275
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjZax-0007Dx-Pa
	for axiom-developer@nongnu.org; Sun, 11 May 2014 15:39:35 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4BJdZFI017930
	for <axiom-developer@nongnu.org>; Sun, 11 May 2014 14:39:35 -0500
Received: by u1204 (Postfix, from userid 1000)
	id 27FA968921; Sun, 11 May 2014 15:39:35 -0400 (EDT)
From: Tim Daly <daly@axiom-developer.org>
To: axiom-developer@nongnu.org
Date: Sun, 11 May 2014 15:39:26 -0400
Message-ID: <871tw0rtox.fsf@axiom-developer.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by axiom-developer.org id
	s4BJdZFI017930
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] [m.kohlhase@jacobs-university.de: First Call for
	Papers: 26. OpenMath Workshop (at CICM 2014; July 7.  July 2014)]
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 11 May 2014 19:39:45 -0000

Date: Sun, 11 May 2014 16:31:32 +0200
From: Michael Kohlhase <m.kohlhase@jacobs-university.de>
To: list
Subject: First Call for Papers: 26. OpenMath Workshop (at CICM 2014; July=
 7.  July 2014)=20
CC: Michael Kohlhase <m.kohlhase@jacobs-university.de>

26th OpenMath Workshop
Coimbra, Portugal
July 7. 2014
co-located with CICM 2014
Submission deadline 7 June

http://www.cicm-conference.org/2014/openmath/

OBJECTIVES

OpenMath (http://www.openmath.org) is a language for exchanging
mathematical formulae across applications (such as computer algebra
systems).  From 2010 its importance has increased in that OpenMath
Content Dictionaries were adopted as a foundation of the MathML 3 W3C
recommendation (http://www.w3.org/TR/MathML), the standard for
mathematical formulae on the Web.

Topics we expect to see at the workshop include

   * Feature Requests (Standard Enhancement Proposals) and Discussions
     for going beyond OpenMath 2;
   * Further convergence of OpenMath and MathML 3;
   * Reasoning with OpenMath;
   * Software using or processing OpenMath;
   * OpenMath on the Semantic Web;
   * New OpenMath Content Dictionaries;

Contributions can be either full research papers, Standard Enhancement
Proposals, or a description of new Content Dictionaries, particularly
ones that are suggested for formal adoption by the OpenMath Society.

IMPORTANT DATES (all times are "anywhere on earth")

   * 7. June 2014: Submission
   * 20. June 2014: Notification of acceptance or rejection
   * 5. July 2014: Final revised papers due
   * 7. July 2014: Workshop (Coimbra time)

SUBMISSIONS

Submission is via EasyChair (http://www.easychair.org/conferences?conf=3D=
om20131). =20
Final papers must conform to the EasyChair LaTeX style.  Initial submissi=
ons in this=20
format  are welcome but not mandatory  but they should be in PDF and with=
in the=20
given limit of pages/words.

Submission categories:

   * Full paper: 5-10 EasyChair pages
   * Short paper: 1-4 EasyChair pages
   * CD description: 1-6 EasyChair pages; a .zip or .tgz file of the
     CDs must be attached, or a link to the CD provided.
   * Standard Enhancement Proposal: 1-10 EasyChair pages (as
     appropriate w.r.t. the background knowledge required); a .zip or
     .tgz file of any related implementation (e.g. a Relax NG schema)
     should be attached.

If not in EasyChair format, 500 words count as one page.

PROCEEDINGS

Electronic proceedings will be published with CEUR-WS.org.

ORGANISATION COMMITTEE

   * James Davenport (University of Bath, UK)
   * Michael Kohlhase (Jacobs University Bremen, Germany)

PROGRAMME COMMITTEE

   * James Davenport (University of Bath, UK)
   * Michael Kohlhase (Jacobs University Bremen, Germany)
   * Christoph Lange (Rheinische Friedrich-Wilhelms-Universit=C3=A4t Bonn=
, Germany)=20
   * Lars Hellstr=C3=B6m (Ume=C3=A5 Universitet, Sweden)
   * Jan Willem Knopper (Technische Universiteit Eindhoven, Netherlands)
   * Paul Libbrecht (PH Weingarten)
   * Chris Rowley (LaTeX3 Project and Open Math Society)

Comments/questions/enquiries: to be sent to the organizers



From MAILER-DAEMON Sun May 11 16:33:40 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjaRI-0004TM-0Z
	for mharc-axiom-developer@gnu.org; Sun, 11 May 2014 16:33:40 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:48709)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjaR9-0004Pp-0w
	for axiom-developer@nongnu.org; Sun, 11 May 2014 16:33:38 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjaR1-0005Cf-Gm
	for axiom-developer@nongnu.org; Sun, 11 May 2014 16:33:30 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:43763
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjaR1-0005Cb-C9
	for axiom-developer@nongnu.org; Sun, 11 May 2014 16:33:23 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4BKXHFI018580;
	Sun, 11 May 2014 15:33:17 -0500
Received: by u1204 (Postfix, from userid 1000)
	id 9704A6891D; Sun, 11 May 2014 16:33:17 -0400 (EDT)
From: Tim Daly <daly@axiom-developer.org>
To: Martin Baker <ax87438@martinb.com>, axiom-developer@nongnu.org
Message-Id: <20140511203317.9704A6891D@u1204>
Date: Sun, 11 May 2014 16:33:17 -0400 (EDT)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: Re: [Axiom-developer] Must hear...
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 11 May 2014 20:33:38 -0000

> So what should one do if one wants to modify parts of Axiom (or its 
> forks) where all there is is the code?
> 
> Should one:
> 1) Trace through the code and try to reverse engineer the documentation, 
> then modify that.
> 2) Try to understand generally what it does (such as working out what 
> the inputs and outputs are). Then rewrite it from scratch in a 
> documentation led way.
> 
> For me, in a lot of cases, I would prefer option 2. I would not claim to 
> be as smart as the original authors, any algorithm that I would come up 
> with might be less efficient and inferior in many respects. 

Martin,

Given my mono-maniacal focus on documentation I think I may have
mis-read what you wrote. Let me try another interpretation.

Are you asking "How do I modify existing code?". For new algebra that
I've written I've tried to provide documentation. But for existing
algebra I've been VERY relucant to change things, even where there
seems to be a better way. Fixing mistakes and extending the code
seem reasonable but changing the existing API?

One key reason is "backward compatibility". The book and the test
cases document the language and algebra. Old code should continue to
work, otherwise we get into the "python 2.7 vs 3.3 debates". If the
old code doesn't work the system is, by definition, broken.

Old code always has warts. Common Lisp has CAR which could easily
have been subsumed and removed by extending the definition of FIRST.
Pretty, but ... yeah, broken by definition.

Another key reason is that the author of the code was likely an expert
in the area. Even experts make mistakes that need to be fixed but
wholesale rewrites seem rather drastic. A rewrite assumes a higher
level of expertise. Some of the Axiom code was written as PhD thesis
work so the bar is pretty high.

That said, there may be valid reasons to modify or rewrite algebra.

> However I 
> would try to document it as well as I could and try to make it a better 
> basis for future improvement. Also, if I am going to make mistakes, at 
> least I would learn more from my own mistakes.

Unless there is some overarching reason it is hard to see the need to
rewrite existing code. A new design that regularizes many domains
might make a good reason. A complete extension of the whole area, such
as a major matrix package might make DHMATRIX a useless subset. But
changing the API of an existing domain so that old code doesn't work
is, by definition, broken.

Mistakes in the code will occur both in old code and in new code.
Unfortunately new mistakes are only likely to be uncovered by new
people using the new code... which by recursion on the motivation
to rewrite the code...  leads to yet a different set of mistakes. 

Code doesn't rust. It doesn't "get old". Especially computational
mathematics code. Tearing down the cathedral because we now know
how to make stones that lasts longer seems ... I don't know ...
disrespectful of the genius of the original architects?

Tim


From MAILER-DAEMON Sun May 11 17:48:12 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjbbQ-0003Ck-PS
	for mharc-axiom-developer@gnu.org; Sun, 11 May 2014 17:48:12 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:35394)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjbbK-0003BA-4a
	for axiom-developer@nongnu.org; Sun, 11 May 2014 17:48:11 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjbbF-0001LP-3N
	for axiom-developer@nongnu.org; Sun, 11 May 2014 17:48:06 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:39454
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjbbE-0001LG-UJ
	for axiom-developer@nongnu.org; Sun, 11 May 2014 17:48:01 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4BLlwFI021631;
	Sun, 11 May 2014 16:47:58 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4BLlvJk021628;
	Sun, 11 May 2014 16:47:57 -0500
Date: Sun, 11 May 2014 16:47:57 -0500
Message-Id: <201405112147.s4BLlvJk021628@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] ouch
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 11 May 2014 21:48:11 -0000

The Low Quality of Scientific Code

http://techblog.bozho.net/?p=1423

Tim


From MAILER-DAEMON Mon May 12 03:22:54 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjkZa-0004NY-10
	for mharc-axiom-developer@gnu.org; Mon, 12 May 2014 03:22:54 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:32852)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WjkZT-0004N9-1i
	for axiom-developer@nongnu.org; Mon, 12 May 2014 03:22:53 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WjkZM-0002uT-Pa
	for axiom-developer@nongnu.org; Mon, 12 May 2014 03:22:46 -0400
Received: from mout.kundenserver.de ([212.227.126.130]:64423)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WjkZM-0002uF-FT
	for axiom-developer@nongnu.org; Mon, 12 May 2014 03:22:40 -0400
Received: from [192.168.1.64] (5ec027b4.skybroadband.com [94.192.39.180])
	by mrelayeu.kundenserver.de (node=mreue007) with ESMTP (Nemesis)
	id 0MM4YC-1WidZC2PeO-007iSG; Mon, 12 May 2014 09:22:38 +0200
Message-ID: <53707692.60300@martinb.com>
Date: Mon, 12 May 2014 08:21:54 +0100
From: Martin Baker <ax87438@martinb.com>
Organization: axiom
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <20140511203317.9704A6891D@u1204>
In-Reply-To: <20140511203317.9704A6891D@u1204>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V02:K0:NgM7ilYCcMaEiOw0S2bCtwEfS4Br2AuayQuA2bjAXHc
	n8YwcTTUzDQDc4lMxAunRNRd9qGRI7oPhAKGCmic7FYUnozLS2
	uqIwrSGOq5r8OZlgnk/LnWU3phyLM8gKqbVKxc+zvhgkpEJ8uT
	i69/liodouHzcFnK4ZQY8R+K3kf4VRp0mTXc/IVRYzKSZoNiyr
	GVp3hP5LNdG+y0b6aYIUmdJXHGHrSaTV/cohozlgEatnHj1/zd
	MRM8dqR/84EGgu3tII2ct7DLDd2nNIPaML/ZlLhY7mEcusjWFJ
	a/cMgaWawMAT0yv7NtfqrVCbbdoagE2HhXwsFhlz7GcgiuDHIV
	cFBYq5PuOe56JS+vvVkqjF0H8xRGPucR7PVlH6KR1
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic]
X-Received-From: 212.227.126.130
Subject: Re: [Axiom-developer] Must hear...
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 12 May 2014 07:22:53 -0000

On 11/05/14 21:33, Tim Daly wrote:
> Unless there is some overarching reason it is hard to see the need to
> rewrite existing code. A new design that regularizes many domains
> might make a good reason. A complete extension of the whole area, such
> as a major matrix package might make DHMATRIX a useless subset. But
> changing the API of an existing domain so that old code doesn't work
> is, by definition, broken.
>
> Mistakes in the code will occur both in old code and in new code.
> Unfortunately new mistakes are only likely to be uncovered by new
> people using the new code... which by recursion on the motivation
> to rewrite the code...  leads to yet a different set of mistakes.
>
> Code doesn't rust. It doesn't "get old". Especially computational
> mathematics code. Tearing down the cathedral because we now know
> how to make stones that lasts longer seems ... I don't know ...
> disrespectful of the genius of the original architects?

One of the ideas I seem to be getting from the Robert Lefkowitz talks is 
that most of the life-cycle of a piece of software is in maintenance 
(i.e. change) and that is why this type of documentation is needed. It 
seemed to me that a corollary of that is that, if the code does not need 
to change, then documentation is not required.

The thought also occurred to me that the wider axiom community has two 
types of factions, those who want to change without documentation and 
those who want to document without change. I don't mean this to be taken 
seriously, its totally unfair of me to write down such an untrue 
thought. I apologise unreservedly to people who are working very hard to 
improve a program they believe in strongly.

I agree about the genius of the original architects who were years ahead 
of their time. I think more history should be made available to let more 
people know about this.

However I don't want to use, or work on, software that is a museum or 
shrine to the genius of the original architects. I have convinced myself 
that the sort of changes, that I would like, are driven by real needs to 
support new mathematical structures and so on and not just a wish to 
tweak the margins of the program for the sake of it.

see my wish list:
http://www.euclideanspace.com/prog/scratchpad/fricas/wishlist/

I think what you are hinting at is that the original scratchpad software 
was written by a large number of brilliant people and I am a single, 
humble individual who is very far from being a genius. I assure you, I 
know that already. I really should set myself more realistic goals.

It seems to me what Robert Lefkowitz is saying is that programs need to 
change over time, and for that they need documentation and of course the 
meaning of the word 'documentation' changes over time and everyone 
understands the meaning of words differently. Mathematical truth may not 
change over time, but the way that people use it, what is considered 
important, notation and just about everything else does change. Perhaps 
'documentation' does not mean what I think it means but, for me, its 
about not freezing the program in time.

Martin


From MAILER-DAEMON Mon May 12 06:11:00 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WjnCF-0001Bl-U3
	for mharc-axiom-developer@gnu.org; Mon, 12 May 2014 06:10:59 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:40128)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjnC6-00014u-Qn
	for axiom-developer@nongnu.org; Mon, 12 May 2014 06:10:55 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjnC0-0005Fh-I1
	for axiom-developer@nongnu.org; Mon, 12 May 2014 06:10:50 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:60310
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WjnC0-0005FU-9y
	for axiom-developer@nongnu.org; Mon, 12 May 2014 06:10:44 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4CAAdFI002291;
	Mon, 12 May 2014 05:10:39 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4CAAd9G002288;
	Mon, 12 May 2014 05:10:39 -0500
Date: Mon, 12 May 2014 05:10:39 -0500
Message-Id: <201405121010.s4CAAd9G002288@axiom-developer.org>
To: Martin Baker <ax87438@martinb.com>, axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: Re: [Axiom-developer] Must hear....
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 12 May 2014 10:10:55 -0000

>> Unless there is some overarching reason it is hard to see the need to
>> rewrite existing code. A new design that regularizes many domains
>> might make a good reason. A complete extension of the whole area, such
>> as a major matrix package might make DHMATRIX a useless subset. But
>> changing the API of an existing domain so that old code doesn't work
>> is, by definition, broken.
>>
>> Mistakes in the code will occur both in old code and in new code.
>> Unfortunately new mistakes are only likely to be uncovered by new
>> people using the new code... which by recursion on the motivation
>> to rewrite the code...  leads to yet a different set of mistakes.
>>
>> Code doesn't rust. It doesn't "get old". Especially computational
>> mathematics code. Tearing down the cathedral because we now know
>> how to make stones that lasts longer seems ... I don't know ...
>> disrespectful of the genius of the original architects?

Perhaps my cathedral analogy was "over the top". That's partly because
I worked with people like Barry Trager, Manuel Bronstein, et.al. The
day-to-day contact made me realize how little I actually understand.
Naturally I am very careful when changing things, trying to understand
what exists before making changes. Google wouldn't let me change
their search algorithm without understanding it and the mathematics
of Axiom is much more complicated.




>One of the ideas I seem to be getting from the Robert Lefkowitz talks is 
>that most of the life-cycle of a piece of software is in maintenance 
>(i.e. change) and that is why this type of documentation is needed. It 
>seemed to me that a corollary of that is that, if the code does not need 
>to change, then documentation is not required.

Axiom is clearly in need of maintenance in so many areas. At the very
minimum we have spent a good portion of the time dealing with low-level
issues like changing libraries, changing tools, and changing operating
systems. Fortunately we are nearing a key goal of a lisp-only platform
so Axiom will only need a working standards-based common lisp. The
build machinery is about to be swallowed and then the front end
hyperdoc work (already started) will be subsumed.

Climbing beyond that level is the effort to document the huge library
of computational mathematics. The code needs to change to handle 
the rest of the Risch algorithm, for instance. But what exists also
needs to be brought to a state where we know what is there, where it
is, and how to extend the missing parts. Manuel gave me permission to
use all of his writings to document the code... It just takes time.

If Axiom was a 100 line program this would be trivial. At 1.2 million
lines it is going to take a while.




>The thought also occurred to me that the wider axiom community has two 
>types of factions, those who want to change without documentation and 
>those who want to document without change. I don't mean this to be taken 
>seriously, its totally unfair of me to write down such an untrue 
>thought. I apologise unreservedly to people who are working very hard to 
>improve a program they believe in strongly.

Well, that's not a bad way to characterize it. I'm re-working the
Axiom emails and I see many cases of changes proposed without even a
single line of comment. I also see a lot of pushback about the wisdom
of LP. So there is certainly a camp of "change without documentation". 
There hasn't been a single, well documented pamphlet file submitted. 
We're also watching LP die in the forks, leading to the "raw code" 
approach.

On the other hand, "documentation without change" seems to
characterize my position on things, mildly unfairly I think, but not
without merit.  I have added algebra for predicting sequences, for
JET, for BLAS, for numeric functions, etc. The numeric code I wrote is
reasonably well documented. The JET code was done as well as I could
from available words. I'd also like to pick up Waldek's recent
integration work but I have no idea where to start, nor what references
to read to understand it, nor enough background to document it. So 
Axiom is changing, slowly.

I've asked several authors for permission to quote their papers, which
is an exception permitted by copyright for research purposes. All but
one have said yes. I have a whole directory of papers slated to be
added as documentation to the related domains. Each one is "expensive"
because I have to learn the relevant background to write readable
documentation and connect it to the domains but, hey, it's a 30 year
horizon project :-)




>I agree about the genius of the original architects who were years ahead 
>of their time. I think more history should be made available to let more 
>people know about this.

>However I don't want to use, or work on, software that is a museum or 
>shrine to the genius of the original architects. I have convinced myself 
>that the sort of changes, that I would like, are driven by real needs to 
>support new mathematical structures and so on and not just a wish to 
>tweak the margins of the program for the sake of it.

There seem to be two philosophical approaches to computational
mathematics. From one side there are the "programmers doing mathematics". 
They follow the usual path of "write the code, read the code". They 
are very liberal about the programs, moving from patch-to-patch, 
changing things. They are fast and liberal, moving at the pace of
programmers everywhere.

On the other side I see the "mathematicians doing programming". They
follow the usual "write the paper, bury the code". They are very 
conservative about the math, moving theorem-to-theorem, proving each
step along the way. Change is slow and conservative, moving at the
pace of mathematicians everywhere. 

As a "computational mathematician" I'm trying to occupy the middle
ground where code gets written and it is intimately connected with the
paper and proof. There is no need to invent new mathematics as there
are whole landscapes of existing work that can be reduced to
programs. The ideas should stay with the code so future Axiom
developers can maintain and modify the mathematics in a disciplined
way. Indeed, a stated long term Axiom goal is to integrate with either
ACL2 or COQ to prove the algorithms in Axiom.  I believe that properly
written literate programs are the best vehicle for all that.

I have published an invited editorial in the Notices of the American
Mathematical Society, pushing for LP and Reproducible Research so
Axiom isn't the only place you'll see me moaning about this. I am
working with John Kitchin from Carnegie Mellon on an effort to teach
the next generation of students to write literate programs. The
hope is that the next generation of students will naturally document
their programs. John works in computational chemistry, which would
make an interesting extension area of Axiom (if I only had time...)





>see my wish list:
>http://www.euclideanspace.com/prog/scratchpad/fricas/wishlist/

I have research in Indefinites, Interval Arithmetic, and Provisos that
I really, really want to implement. I have done work in all three
areas. They would really extend Axiom's power.  I want to do work in
Quantum Physics, with things like Hadamard gates, so I can implement
the quantum fourier transform algorithm. I've been working with Albert
Rich on the computer algebra test suite (CATS) using his 50,000 
integrals. I want to implement his techniques in Axiom to cover the
cases we miss now.

Wish lists are long, days are short.

Axiom is a "spare time" effort, not a career, so time is limited.  I
miss the days when computational mathematics was supported financially.
This "nights and weekends" approach is painfully slow. In fact, without
the support of Gilbert Baumslag, Axiom's release might not have happened
at all.







>I think what you are hinting at is that the original scratchpad software 
>was written by a large number of brilliant people and I am a single, 
>humble individual who is very far from being a genius. I assure you, I 
>know that already. I really should set myself more realistic goals.

There are truly brilliant people I've seen in the open source version
of Axiom. There is no shortage of brilliant people here. Waldek is
doing amazing work, for instance.  Do not ever feel that I'm "hinting"
you're not. I'm not the one to judge, nor is my opinion worth the time
to consider. If you're doing computational mathematics at all, you're
already in the best of company.

We need the brilliant among us to write stuff down for lesser mortals
like myself. It is wonderful to bring the gift of fire ... but could
you explain that trick with rubbing the sticks again? :-)





>It seems to me what Robert Lefkowitz is saying is that programs need to 
>change over time, and for that they need documentation and of course the 
>meaning of the word 'documentation' changes over time and everyone 
>understands the meaning of words differently. Mathematical truth may not 
>change over time, but the way that people use it, what is considered 
>important, notation and just about everything else does change. Perhaps 
>'documentation' does not mean what I think it means but, for me, its 
>about not freezing the program in time.

Mathematics changes over time but very slowly. I've heavily quoted
from a 19th century treatise on quaternions in the Axiom documentation.
The words are still relevant.

I don't want Axiom frozen. I want it brought to a state where it can
be maintained, modified, and extended without being a 1-in-a-million
programmer/mathematician/genius. Add new algebra, but document it.
Change old algebra, but document it first. Expose the thinking as
well as the code. Whatever gets written will IMMEDIATELY become a
maintenance task for the future. Communicate the ideas.

Tim



From MAILER-DAEMON Tue May 13 09:14:21 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WkCXF-0002eK-Ko
	for mharc-axiom-developer@gnu.org; Tue, 13 May 2014 09:14:21 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:53769)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WkCX7-0002Tk-Jj
	for axiom-developer@nongnu.org; Tue, 13 May 2014 09:14:19 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WkCX1-0005rp-GZ
	for axiom-developer@nongnu.org; Tue, 13 May 2014 09:14:13 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:49848
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WkCX1-0005rO-CF
	for axiom-developer@nongnu.org; Tue, 13 May 2014 09:14:07 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4DDE0FI023628;
	Tue, 13 May 2014 08:14:00 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4DDDxH0023623;
	Tue, 13 May 2014 08:13:59 -0500
Date: Tue, 13 May 2014 08:13:59 -0500
Message-Id: <201405131313.s4DDDxH0023623@axiom-developer.org>
To: Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org, Gabriel Dos Reis <gdr@cs.tamu.edu>
Subject: [Axiom-developer] open-axiom-1.4.2 cannot be built with sbcl-1.1.18
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 13 May 2014 13:14:19 -0000

Helmut,

Please contact Gabriel Dos Reis, copied above, for help.

The SBCL problem is not unusual. One of the hard parts of a 
large project is the amount of time spent keeping up with
the many different ports to many platforms. 

You might consider trying it on a prior version of SBCL to
see if you can isolate the problem and give him a more
detailed bug report. The actual bug could have nothing to do
with either piece of software.

Tim Daly






From MAILER-DAEMON Tue May 13 11:58:48 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WkF6N-00006G-Sp
	for mharc-axiom-developer@gnu.org; Tue, 13 May 2014 11:58:47 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:53932)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <jarausch@igpm.rwth-aachen.de>) id 1WkAx9-00063I-Fi
	for axiom-developer@nongnu.org; Tue, 13 May 2014 07:33:07 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <jarausch@igpm.rwth-aachen.de>) id 1WkAx1-0005X2-9g
	for axiom-developer@nongnu.org; Tue, 13 May 2014 07:32:59 -0400
Received: from mx-out-1.rwth-aachen.de ([134.130.5.186]:45103)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <jarausch@igpm.rwth-aachen.de>) id 1WkAx1-0005Wt-30
	for axiom-developer@nongnu.org; Tue, 13 May 2014 07:32:51 -0400
X-IronPort-AV: E=Sophos;i="4.97,1043,1389740400"; d="scan'208";a="283783994"
Received: from igpm.igpm.rwth-aachen.de ([134.130.161.1])
	by mx-1.rz.rwth-aachen.de with ESMTP; 13 May 2014 13:32:48 +0200
Received: from numa-i.igpm.rwth-aachen.de ([134.130.161.252])
	by igpm.igpm.rwth-aachen.de with esmtp (Exim 4.72)
	(envelope-from <jarausch@igpm.rwth-aachen.de>) id 1WkAwy-0000Xp-45
	for axiom-developer@nongnu.org; Tue, 13 May 2014 13:32:48 +0200
Received: from numa-i (localhost [127.0.0.1])
	by numa-i.igpm.rwth-aachen.de (Postfix) with ESMTP id 8CA0A2B40
	for <axiom-developer@nongnu.org>; Tue, 13 May 2014 13:32:50 +0200 (CEST)
Date: Tue, 13 May 2014 13:32:50 +0200
From: Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
To: axiom-developer@nongnu.org
X-Mailer: Balsa 2.4.13
Message-Id: <1399980770.16024.2@numa-i>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; DelSp=Yes; Format=Flowed
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
	recognized.
X-Received-From: 134.130.5.186
X-Mailman-Approved-At: Tue, 13 May 2014 11:58:45 -0400
Subject: [Axiom-developer] open-axiom-1.4.2 cannot be built with sbcl-1.1.18
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 13 May 2014 11:33:07 -0000

Hi,

I'm trying to build open-axiom-1.4.2 with SBCL-1.1.18.
It fails with strange memory errors like

; compiling (DEFUN |bfOR| ...)
; compiling (DEFUN |bfAND| ...)CORRUPTION WARNING in SBCL pid 9224(tid =20
140737353516800):
Memory fault at 1878002f (pc=3D0x100099ca66, sp=3D0x7ffff6c8eaf8)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
CORRUPTION WARNING in SBCL pid 9224(tid 140737353516800):
Memory fault at 40200066 (pc=3D0x10015259aa, sp=3D0x7ffff6c8e430)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
CORRUPTION WARNING in SBCL pid 9224(tid 140737353516800):
Memory fault at 40200066 (pc=3D0x10015259aa, sp=3D0x7ffff6c8dbe0)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.

debugger invoked on a SB-SYS:MEMORY-FAULT-ERROR in thread
#<THREAD "main thread" RUNNING {1002E5E1F3}>:
   Unhandled memory fault at #x40200066.

and so on.

I have built Fricas and Maxima successfully with SBCL.

What is so special about Open-Axiom?

Of course, no source program should ever get a compiler in producing
memory faults. But is it only SBCL which is wrong here?

Is there a patch to build Open-Axiom with SBCL ?

Many thanks for some hints,
Helmut

--=20
Helmut Jarausch
Numer. Math.
RWTH-Aachen University
Germany=


From MAILER-DAEMON Tue May 13 13:34:37 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WkGb7-0004MS-DA
	for mharc-axiom-developer@gnu.org; Tue, 13 May 2014 13:34:37 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:46224)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WkGaz-0004Cv-Q6
	for axiom-developer@nongnu.org; Tue, 13 May 2014 13:34:35 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WkGat-0005r3-Cl
	for axiom-developer@nongnu.org; Tue, 13 May 2014 13:34:29 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:49359
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WkGat-0005qz-7q
	for axiom-developer@nongnu.org; Tue, 13 May 2014 13:34:23 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4DHYIFI024005;
	Tue, 13 May 2014 12:34:18 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4DHYIWb024002;
	Tue, 13 May 2014 12:34:18 -0500
Date: Tue, 13 May 2014 12:34:18 -0500
Message-Id: <201405131734.s4DHYIWb024002@axiom-developer.org>
To: Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: [Axiom-developer] open-axiom-1.4.2 cannot be built with sbcl-1.1.18
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 13 May 2014 17:34:36 -0000

Helmut,

You have the wrong mailing list. The names of the two projects
is a source of confusion.

This is the mailing list for Axiom. Please contact Gaby.

Tim Daly


From MAILER-DAEMON Sun May 18 02:44:33 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wlupl-0002yP-Qx
	for mharc-axiom-developer@gnu.org; Sun, 18 May 2014 02:44:33 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:50270)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wlupg-0002uM-7P
	for axiom-developer@nongnu.org; Sun, 18 May 2014 02:44:33 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wlupb-0007aS-A7
	for axiom-developer@nongnu.org; Sun, 18 May 2014 02:44:28 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:53054
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wlupb-0007aI-4X
	for axiom-developer@nongnu.org; Sun, 18 May 2014 02:44:23 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4I6iIFI026522;
	Sun, 18 May 2014 01:44:18 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4I6iIpF026519;
	Sun, 18 May 2014 01:44:18 -0500
Date: Sun, 18 May 2014 01:44:18 -0500
Message-Id: <201405180644.s4I6iIpF026519@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: John Kitchin <jkitchin@andrew.cmu.edu>
Subject: [Axiom-developer] Axiom mentioned in an LP talk by Bart Childs
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 18 May 2014 06:44:33 -0000

I've been listening to various talks about literate programming.  Bart
Childs of Texas A&M University, presented a paper with a talk "Thirty
Years of Literate Programming and More?" and mentions Axiom at around
24:30 (actually, somebody named Nelson, I suspect Nelson Beebe, from
the audience talks about it at Bart's request).

http://www.youtube.com/watch?v=D1cKI2jsidc

https://www.tug.org/TUGboat/tb31-2/tb98childs.pdf

He had some interesting results from teaching using literate programming
in an undergraduate course.

Tim Daly



From MAILER-DAEMON Sun May 18 03:42:05 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WlvjR-0000IF-5H
	for mharc-axiom-developer@gnu.org; Sun, 18 May 2014 03:42:05 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:54807)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WlvjI-0000H6-Ax
	for axiom-developer@nongnu.org; Sun, 18 May 2014 03:42:03 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WlvjA-0006MU-Ru
	for axiom-developer@nongnu.org; Sun, 18 May 2014 03:41:56 -0400
Received: from mout.kundenserver.de ([212.227.126.130]:62958)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1WlvjA-0006MM-Ih
	for axiom-developer@nongnu.org; Sun, 18 May 2014 03:41:48 -0400
Received: from [192.168.1.64] ([94.195.43.18])
	by mrelayeu.kundenserver.de (node=mreue001) with ESMTP (Nemesis)
	id 0LaOJ5-1XCAFx1E23-00mNjm; Sun, 18 May 2014 09:41:46 +0200
Message-ID: <5378640C.5090707@martinb.com>
Date: Sun, 18 May 2014 08:41:00 +0100
From: Martin Baker <ax87438@martinb.com>
Organization: axiom
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <201405180644.s4I6iIpF026519@axiom-developer.org>
In-Reply-To: <201405180644.s4I6iIpF026519@axiom-developer.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V02:K0:wIufwrC1+Kgm672EewDYq+sswvoyxYRbRpNcpYr/7pX
	yPJIRxNTmBuioe3zKNarPB/yZvqcRCm1rhR1YE02aj5SNzXthm
	U2mQuq0xAKGWKXZjwft18/yPSB/3NVAs0r2hlUBg3CA3eVPlNb
	SfMJIeKyq5LrxQ1h0mlaqlOwxjFyX4Bc3whiQYx0WAYlLxvF8l
	hy+ABDfCdLTvhZN3BBTwLePaRLtHcIfFUydMJtri7HdHXRpQ2y
	PPQIEPZwZQOJe2Z/vZr/wx696hN1DrSoht7igZdxClA8ZTuuM/
	WkIWMKq93wjmz7FxWtlZtt1uUVXLceUKUVrqhad13bohaQ17PM
	8BqfUScVY8tWiI6zhWfo=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic]
X-Received-From: 212.227.126.130
Subject: Re: [Axiom-developer] Axiom mentioned in an LP talk by Bart Childs
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 18 May 2014 07:42:03 -0000

Tim,

The link you gave:
http://www.youtube.com/watch?v=D1cKI2jsidc
did not work on my computer, I think it should be:
http://www.youtube.com/watch?v=D1cKI2jsldc

Martin


From MAILER-DAEMON Sun May 18 10:42:37 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wm2IP-0006bL-F7
	for mharc-axiom-developer@gnu.org; Sun, 18 May 2014 10:42:37 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:38872)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dosreis@gmail.com>) id 1Wm2IM-0006aw-Ao
	for axiom-developer@nongnu.org; Sun, 18 May 2014 10:42:35 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dosreis@gmail.com>) id 1Wm2IL-0008B0-5A
	for axiom-developer@nongnu.org; Sun, 18 May 2014 10:42:34 -0400
Received: from mail-we0-x22a.google.com ([2a00:1450:400c:c03::22a]:61683)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dosreis@gmail.com>) id 1Wm2IK-00088z-QP
	for axiom-developer@nongnu.org; Sun, 18 May 2014 10:42:33 -0400
Received: by mail-we0-f170.google.com with SMTP id u57so4518983wes.1
	for <axiom-developer@nongnu.org>; Sun, 18 May 2014 07:42:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=qprBzshHP/lc6JJ1WVPUMajwjAF8W7tXXxcfVgJFu48=;
	b=b+1KJgTtRbxTnCtrT7wVChuGl4LRMgVIoPY9PKm0OHsT7QtPOaaFqZLDzOrhziREwo
	aal41HPZlZIxm1t5iOHTJJYK834s0s8JWFtHDZljCZ4+YZaOYAnxiZWnv0g3qtinIc4K
	0KMzL/2TeSvmg5vcZzMvGeKOai5HKAV1zLO0cN+edCCjWtBpS3eZdZ7oaHzWdzPvYMjh
	8+bxGB3TeRrkcHnOmNInRaKYG6CXfzFIotph5Dcs5V+cilaejp9CxXh+c8XLDB5XFWsv
	5qDENv7tX47/MW3ZoCafG5Zgm+MV129p1UKV652FMhTCE0dusKtiRfGw+DwpMd8lGnYm
	R6hg==
MIME-Version: 1.0
X-Received: by 10.180.106.194 with SMTP id gw2mr7980215wib.47.1400424151209;
	Sun, 18 May 2014 07:42:31 -0700 (PDT)
Sender: dosreis@gmail.com
Received: by 10.216.157.6 with HTTP; Sun, 18 May 2014 07:42:31 -0700 (PDT)
In-Reply-To: <1399980770.16024.2@numa-i>
References: <1399980770.16024.2@numa-i>
Date: Sun, 18 May 2014 07:42:31 -0700
X-Google-Sender-Auth: jDRC7rszcBjOSn7xeGhaSC_uKgY
Message-ID: <CAAiZkiA0ezNAs6Y4k4ZsEJJaCWvDJJ0Y_q3XC-s-RfnpoHV6xg@mail.gmail.com>
From: Gabriel Dos Reis <gdr@integrable-solutions.net>
To: Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
Content-Type: multipart/alternative; boundary=e89a8f3bab23115c2204f9ada82d
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a00:1450:400c:c03::22a
Cc: axiom-dev <axiom-developer@nongnu.org>, open-axiom-devel@lists.sf.net
Subject: Re: [Axiom-developer] open-axiom-1.4.2 cannot be built with
	sbcl-1.1.18
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 18 May 2014 14:42:35 -0000

--e89a8f3bab23115c2204f9ada82d
Content-Type: text/plain; charset=UTF-8

On Tue, May 13, 2014 at 4:32 AM, Helmut Jarausch <
jarausch@igpm.rwth-aachen.de> wrote:

> Hi,
>
> I'm trying to build open-axiom-1.4.2 with SBCL-1.1.18.
> It fails with strange memory errors like
>
> ; compiling (DEFUN |bfOR| ...)
> ; compiling (DEFUN |bfAND| ...)CORRUPTION WARNING in SBCL pid 9224(tid
> 140737353516800):
> Memory fault at 1878002f (pc=0x100099ca66, sp=0x7ffff6c8eaf8)
> The integrity of this image is possibly compromised.
> Continuing with fingers crossed.
> CORRUPTION WARNING in SBCL pid 9224(tid 140737353516800):
> Memory fault at 40200066 (pc=0x10015259aa, sp=0x7ffff6c8e430)
> The integrity of this image is possibly compromised.
> Continuing with fingers crossed.
> CORRUPTION WARNING in SBCL pid 9224(tid 140737353516800):
> Memory fault at 40200066 (pc=0x10015259aa, sp=0x7ffff6c8dbe0)
> The integrity of this image is possibly compromised.
> Continuing with fingers crossed.
>
> debugger invoked on a SB-SYS:MEMORY-FAULT-ERROR in thread
> #<THREAD "main thread" RUNNING {1002E5E1F3}>:
>   Unhandled memory fault at #x40200066.
>
> and so on.
>
> I have built Fricas and Maxima successfully with SBCL.
>
> What is so special about Open-Axiom?
>
> Of course, no source program should ever get a compiler in producing
> memory faults. But is it only SBCL which is wrong here?
>
> Is there a patch to build Open-Axiom with SBCL ?
>
> Many thanks for some hints,
> Helmut


Helmut,

Thanks for the report.  Issues related to OpenAxiom  should be reported to
OpenAxiom developers at

    open-axiom-devel@lists.sf.net
    open-axiom-bugs@lists.sf.net

Are you by any chance building on Gentoo?  It looks the same as this issue:


https://groups.google.com/forum/#!msg/sbcl-help-archive/fTYViJjaotE/dsWMdRWPjJgJ

-- Gaby

--e89a8f3bab23115c2204f9ada82d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail=
_quote">On Tue, May 13, 2014 at 4:32 AM, Helmut Jarausch <span dir=3D"ltr">=
&lt;<a href=3D"mailto:jarausch@igpm.rwth-aachen.de" target=3D"_blank">jarau=
sch@igpm.rwth-aachen.de</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex">Hi,<br>
<br>
I&#39;m trying to build open-axiom-1.4.2 with SBCL-1.1.18.<br>
It fails with strange memory errors like<br>
<br>
; compiling (DEFUN |bfOR| ...)<br>
; compiling (DEFUN |bfAND| ...)CORRUPTION WARNING in SBCL pid 9224(tid 1407=
37353516800):<br>
Memory fault at 1878002f (pc=3D0x100099ca66, sp=3D0x7ffff6c8eaf8)<br>
The integrity of this image is possibly compromised.<br>
Continuing with fingers crossed.<br>
CORRUPTION WARNING in SBCL pid 9224(tid 140737353516800):<br>
Memory fault at 40200066 (pc=3D0x10015259aa, sp=3D0x7ffff6c8e430)<br>
The integrity of this image is possibly compromised.<br>
Continuing with fingers crossed.<br>
CORRUPTION WARNING in SBCL pid 9224(tid 140737353516800):<br>
Memory fault at 40200066 (pc=3D0x10015259aa, sp=3D0x7ffff6c8dbe0)<br>
The integrity of this image is possibly compromised.<br>
Continuing with fingers crossed.<br>
<br>
debugger invoked on a SB-SYS:MEMORY-FAULT-ERROR in thread<br>
#&lt;THREAD &quot;main thread&quot; RUNNING {1002E5E1F3}&gt;:<br>
=C2=A0 Unhandled memory fault at #x40200066.<br>
<br>
and so on.<br>
<br>
I have built Fricas and Maxima successfully with SBCL.<br>
<br>
What is so special about Open-Axiom?<br>
<br>
Of course, no source program should ever get a compiler in producing<br>
memory faults. But is it only SBCL which is wrong here?<br>
<br>
Is there a patch to build Open-Axiom with SBCL ?<br>
<br>
Many thanks for some hints,<br>
Helmut</blockquote><div><br></div><div>Helmut,</div><div><br></div><div>Tha=
nks for the report. =C2=A0Issues related to OpenAxiom =C2=A0should be repor=
ted to OpenAxiom developers at</div><div>=C2=A0</div><div>=C2=A0 =C2=A0 <a =
href=3D"mailto:open-axiom-devel@lists.sf.net">open-axiom-devel@lists.sf.net=
</a></div>
<div>=C2=A0 =C2=A0 <a href=3D"mailto:open-axiom-bugs@lists.sf.net">open-axi=
om-bugs@lists.sf.net</a></div><div><br></div><div>Are you by any chance bui=
lding on Gentoo? =C2=A0It looks the same as this issue:</div><div><br></div=
><div>=C2=A0 =C2=A0=C2=A0<a href=3D"https://groups.google.com/forum/#!msg/s=
bcl-help-archive/fTYViJjaotE/dsWMdRWPjJgJ">https://groups.google.com/forum/=
#!msg/sbcl-help-archive/fTYViJjaotE/dsWMdRWPjJgJ</a></div>
<div><br></div><div>-- Gaby</div><div><br></div></div></div></div>

--e89a8f3bab23115c2204f9ada82d--


From MAILER-DAEMON Sun May 18 10:46:04 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wm2Lk-0007FW-1q
	for mharc-axiom-developer@gnu.org; Sun, 18 May 2014 10:46:04 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:39507)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dosreis@gmail.com>) id 1Wm2Lh-0007EP-Rx
	for axiom-developer@nongnu.org; Sun, 18 May 2014 10:46:02 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dosreis@gmail.com>) id 1Wm2Lg-0000qc-Pj
	for axiom-developer@nongnu.org; Sun, 18 May 2014 10:46:01 -0400
Received: from mail-we0-x235.google.com ([2a00:1450:400c:c03::235]:37165)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dosreis@gmail.com>) id 1Wm2Lg-0000qU-JQ
	for axiom-developer@nongnu.org; Sun, 18 May 2014 10:46:00 -0400
Received: by mail-we0-f181.google.com with SMTP id w61so4377807wes.40
	for <axiom-developer@nongnu.org>; Sun, 18 May 2014 07:45:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=EDGW8BpkSmnCylAjDphKMxcsxyZhljf3jRX3LgVYSgU=;
	b=UmpnjLxejarT3lm9d5W0RZv3sD67cKDfFjLmldw7KxI94Yz7d3ByWGaNHQgP+h8cxT
	98Hyp43UW5w82I9yMKV/W8YyeA3FI5VbC9I8uzkj0t6pmypQPWkuEeeZ3J1G0bFoxell
	uuVG/RX1kcTNTPhd9oS0shkMVsmqQXQx4jFjL+N7gDZH+9IFpJFuyi25vq8/XH+UhrMj
	u4eqUdg2Bze7hi/Onm58oECNK3JsRhN6Wfj5UNJl7SVk3B0iXKR9VyRbHZ7mXcJNkQXO
	w1AO75mFjWHnzJWL6JlWt4FnaDqsJlP5KHuFBrkNT3oVQTahuBWB/JG7mIC4nFPfNFWM
	GGyQ==
MIME-Version: 1.0
X-Received: by 10.180.211.239 with SMTP id nf15mr8023686wic.9.1400424359702;
	Sun, 18 May 2014 07:45:59 -0700 (PDT)
Sender: dosreis@gmail.com
Received: by 10.216.157.6 with HTTP; Sun, 18 May 2014 07:45:59 -0700 (PDT)
In-Reply-To: <1399980770.16024.2@numa-i>
References: <1399980770.16024.2@numa-i>
Date: Sun, 18 May 2014 07:45:59 -0700
X-Google-Sender-Auth: -jJ1QwV_3FGnp3gxNFD9emR5kaE
Message-ID: <CAAiZkiDWS3WJ3N_fcr0mB-v4npu1rKHyO86ECJ0a5cMbwff91g@mail.gmail.com>
From: Gabriel Dos Reis <gdr@integrable-solutions.net>
To: Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
Content-Type: multipart/alternative; boundary=001a11c264ec7eb9c204f9adb491
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a00:1450:400c:c03::235
Cc: axiom-dev <axiom-developer@nongnu.org>, open-axiom-devel@lists.sf.net
Subject: Re: [Axiom-developer] open-axiom-1.4.2 cannot be built with
	sbcl-1.1.18
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 18 May 2014 14:46:02 -0000

--001a11c264ec7eb9c204f9adb491
Content-Type: text/plain; charset=UTF-8

On Tue, May 13, 2014 at 4:32 AM, Helmut Jarausch <
jarausch@igpm.rwth-aachen.de> wrote:

>
>
> I have built Fricas and Maxima successfully with SBCL.
>
> What is so special about Open-Axiom?
>
> Of course, no source program should ever get a compiler in producing
> memory faults. But is it only SBCL which is wrong here?
>
> Is there a patch to build Open-Axiom with SBCL ?
>

PS: I build OpenAxiom regularly with SBCL on openSUSE and Mac OS X.
I do not have access to a Gentoo box, so anyway that would help me
reproduce this would be most welcome.

-- Gaby

--001a11c264ec7eb9c204f9adb491
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail=
_quote">On Tue, May 13, 2014 at 4:32 AM, Helmut Jarausch <span dir=3D"ltr">=
&lt;<a href=3D"mailto:jarausch@igpm.rwth-aachen.de" target=3D"_blank">jarau=
sch@igpm.rwth-aachen.de</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><br>
<br>
I have built Fricas and Maxima successfully with SBCL.<br>
<br>
What is so special about Open-Axiom?<br>
<br>
Of course, no source program should ever get a compiler in producing<br>
memory faults. But is it only SBCL which is wrong here?<br>
<br>
Is there a patch to build Open-Axiom with SBCL ?<br></blockquote><div><br><=
/div><div>PS: I build OpenAxiom regularly with SBCL on openSUSE and Mac OS =
X.</div><div>I do not have access to a Gentoo box, so anyway that would hel=
p me reproduce this would be most welcome.</div>
<div><br></div><div>-- Gaby=C2=A0</div></div></div></div>

--001a11c264ec7eb9c204f9adb491--


From MAILER-DAEMON Sun May 18 13:13:00 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wm4dw-0004MA-Du
	for mharc-axiom-developer@gnu.org; Sun, 18 May 2014 13:13:00 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:57222)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wm4dq-0004Lx-6C
	for axiom-developer@nongnu.org; Sun, 18 May 2014 13:12:59 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wm4dl-0005j5-0c
	for axiom-developer@nongnu.org; Sun, 18 May 2014 13:12:54 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:46557
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wm4dk-0005j0-RJ
	for axiom-developer@nongnu.org; Sun, 18 May 2014 13:12:48 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4IHCUFI012458;
	Sun, 18 May 2014 12:12:30 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4IHCTdR012455;
	Sun, 18 May 2014 12:12:29 -0500
Date: Sun, 18 May 2014 12:12:29 -0500
Message-Id: <201405181712.s4IHCTdR012455@axiom-developer.org>
To: Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: [Axiom-developer] open-axiom-1.4.2 cannot be built with sbcl-1.1.18
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Sun, 18 May 2014 17:12:59 -0000

Helmut,

This problem is not related to Axiom. They are different projects.

Please do not copy axiom-developer@nongnu.org on your mailings.

Thank you.

Tim Daly


From MAILER-DAEMON Mon May 19 04:08:12 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WmIcG-0007M4-J4
	for mharc-axiom-developer@gnu.org; Mon, 19 May 2014 04:08:12 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:55285)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WmIc9-0007Ls-Ce
	for axiom-developer@nongnu.org; Mon, 19 May 2014 04:08:11 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WmIc3-0005e6-8U
	for axiom-developer@nongnu.org; Mon, 19 May 2014 04:08:05 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:52293
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WmIc3-0005e0-37
	for axiom-developer@nongnu.org; Mon, 19 May 2014 04:07:59 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4J87vFI012812;
	Mon, 19 May 2014 03:07:57 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4J87vhp012809;
	Mon, 19 May 2014 03:07:57 -0500
Date: Mon, 19 May 2014 03:07:57 -0500
Message-Id: <201405190807.s4J87vhp012809@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] On syntactic coloring of language
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2014 08:08:11 -0000

I had a debate about syntax highlighting of languages, an idea that
dates back to Ada, as near as I can determine. In Ada publications
it was traditional to highlight, by bold characters, all of the
keywords in the language. This notion continues today.

Highlighting, and in particular bolding, is intended to draw attention
to things of interest. In normal prose one highlights portions of text
that are under discussion, items of controversy, or famous quotes. The
technique is a primary tool of communication.

In computer languages, of which I have professionally coded in over 60,
it is usually used in the Ada tradition of highlighting syntax.

Several objections can be raised. 

First, suppose we applied this to English. We could make the editor
bold the 19 basic prepositions (at, after, by, down, for, from, in,
of, on, over, past, round, since, through, till, to, under, up, with).
While syntactically correct it is, to say the least, distracting.

This draws attention to these "keywords" in the sentence but, as a
native speaker of English, adds nothing worthwhile. In computer
languages this has the same effect. It is not at all useful to bold
keywords like IF, THEN, or ELSE. Any native speaker of the language
can see these at a glance. Bringing such "background" items to the
"foreground" of attention highlights the static, inverting the usual
use of the technique in communication.

Even worse, some languages don't have "keywords" in the usual sense.
In Lisp it is entirely possible to use the symbol "if" in any number
of contexts, only one of which invokes its meaning as a conditional
statement. It is a complete waste of cycles to dynamically re-parse
text that a native speaker can read.

Second, and worse, such highlighting undermines the most important
aspect of the technique, namely to draw the reader's attention to
something noteworthy. Bolding and other forms of highlighting are
textual means of emphasis in communication. Regular, repeated, and
non-communicative use removes this from the toolbox of the author.

Third, and on a personal aside, one often encounters color-coded
program text in these highlighting schemes. As someone who is
partially color blind it is often impossible to see some characters at
all. It is usually possible to change these settings online but in
printed text whole passages are unreadable. Thus

   void foo(char *x) {
     if (x > b) then c else d;
   }

in certain colors becomes

       foo(     x) 
       (x   b)      c       d

which, I must say, certainly de-emphasizes the language syntax though
losing a bit in semantics. :-)

So consider the difference between "coding for yourself" where your
editor highlights code in pretty rainbow colors and "coding or writing
for communication" where the techniques for directing the attention of
the audience matters.

BE BOLD! may work for a wiki but not for communication.

Tim Daly
The uncommunicative curmudgeon.




From MAILER-DAEMON Mon May 19 08:58:28 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WmN9A-00068R-BZ
	for mharc-axiom-developer@gnu.org; Mon, 19 May 2014 08:58:28 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:60464)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <wyscc@sci.ccny.cuny.edu>) id 1WmN93-00067y-7t
	for axiom-developer@nongnu.org; Mon, 19 May 2014 08:58:26 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <wyscc@sci.ccny.cuny.edu>) id 1WmN8y-00057m-Ar
	for axiom-developer@nongnu.org; Mon, 19 May 2014 08:58:21 -0400
Received: from cgate.sci.ccny.cuny.edu ([134.74.34.100]:51808)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <wyscc@sci.ccny.cuny.edu>) id 1WmN8y-00057e-7K
	for axiom-developer@nongnu.org; Mon, 19 May 2014 08:58:16 -0400
Received: from [108.30.208.83] (account wyscc@sci.ccny.cuny.edu)
	by cgate.sci.ccny.cuny.edu (CommuniGate Pro WebUser 4.2.10)
	with HTTP id 30080942; Mon, 19 May 2014 08:56:06 -0400
From: "William Sit" <wyscc@sci.ccny.cuny.edu>
To: daly@axiom-developer.org,axiom-developer@nongnu.org
X-Mailer: CommuniGate Pro WebUser Interface v.4.2.10
Date: Mon, 19 May 2014 08:56:06 -0400
Message-ID: <web-30080942@cgate.sci.ccny.cuny.edu>
In-Reply-To: <201405190807.s4J87vhp012809@axiom-developer.org>
References: <201405190807.s4J87vhp012809@axiom-developer.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: Solaris 10
X-Received-From: 134.74.34.100
Subject: Re: [Axiom-developer] On syntactic coloring of language
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2014 12:58:26 -0000

Dear Tim:

Your reasoning is perfect for natural languages. For 
computer languages, I do think there is a purpose for 
certain highlighting of keywords and their associated 
punctuations, particularly when the correct language 
syntax frequently demands nested pairs of delimiters whose 
scopes may be more than a few lines, and where structural 
indentations may not be practical. Examples would be html, 
Mathematica and TeX/LaTeX. Thus, the reason for 
highlighting an IF-THEN-ELSE (as just one example) is not 
because readers can't recognize those keywords, but 
because readers may find it difficult to identify the 
extents indicated by the hyphens in IF-THEN-ELSE. Such 
highlighting benefits both the authors and the readers and 
has its role for better syntactic communication.

One should not compare or confuse the highlighting of, 
say, prepositions in natural languages with scope defining 
highlighting in programming languages.

That said, it is not good programming practice to have 
long scopes between paired delimiters, or for that matter, 
deeply nested pairs of delimiters.

I agree that those who choose color highlighting should 
choose colors carefully. I would prefer background 
coloring only and not text coloring, to avoid the precise 
problems you illustrated. Text emphasis should be shown 
using different typefaces, and in rare situations, a solid 
color like red.

William

On Mon, 19 May 2014 03:07:57 -0500
  daly@axiom-developer.org wrote:
> I had a debate about syntax highlighting of languages, 
>an idea that
> dates back to Ada, as near as I can determine. In Ada 
>publications
> it was traditional to highlight, by bold characters, all 
>of the
> keywords in the language. This notion continues today.
> 
> Highlighting, and in particular bolding, is intended to 
>draw attention
> to things of interest. In normal prose one highlights 
>portions of text
> that are under discussion, items of controversy, or 
>famous quotes. The
> technique is a primary tool of communication.
> 
> In computer languages, of which I have professionally 
>coded in over 60,
> it is usually used in the Ada tradition of highlighting 
>syntax.
> 
> Several objections can be raised. 
> 
>First, suppose we applied this to English. We could make 
>the editor
> bold the 19 basic prepositions (at, after, by, down, 
>for, from, in,
> of, on, over, past, round, since, through, till, to, 
>under, up, with).
> While syntactically correct it is, to say the least, 
>distracting.
> 
> This draws attention to these "keywords" in the sentence 
>but, as a
> native speaker of English, adds nothing worthwhile. In 
>computer
> languages this has the same effect. It is not at all 
>useful to bold
> keywords like IF, THEN, or ELSE. Any native speaker of 
>the language
> can see these at a glance. Bringing such "background" 
>items to the
> "foreground" of attention highlights the static, 
>inverting the usual
> use of the technique in communication.
> 
> Even worse, some languages don't have "keywords" in the 
>usual sense.
> In Lisp it is entirely possible to use the symbol "if" 
>in any number
> of contexts, only one of which invokes its meaning as a 
>conditional
> statement. It is a complete waste of cycles to 
>dynamically re-parse
> text that a native speaker can read.
> 
> Second, and worse, such highlighting undermines the most 
>important
> aspect of the technique, namely to draw the reader's 
>attention to
> something noteworthy. Bolding and other forms of 
>highlighting are
> textual means of emphasis in communication. Regular, 
>repeated, and
> non-communicative use removes this from the toolbox of 
>the author.
> 
> Third, and on a personal aside, one often encounters 
>color-coded
> program text in these highlighting schemes. As someone 
>who is
> partially color blind it is often impossible to see some 
>characters at
> all. It is usually possible to change these settings 
>online but in
> printed text whole passages are unreadable. Thus
> 
>   void foo(char *x) {
>     if (x > b) then c else d;
>   }
> 
> in certain colors becomes
> 
>       foo(     x) 
>       (x   b)      c       d
> 
> which, I must say, certainly de-emphasizes the language 
>syntax though
> losing a bit in semantics. :-)
> 
> So consider the difference between "coding for yourself" 
>where your
> editor highlights code in pretty rainbow colors and 
>"coding or writing
> for communication" where the techniques for directing 
>the attention of
> the audience matters.
> 
> BE BOLD! may work for a wiki but not for communication.
> 
> Tim Daly
> The uncommunicative curmudgeon.
> 
> 
> 
> _______________________________________________
> Axiom-developer mailing list
> Axiom-developer@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/axiom-developer

William Sit, Professor Emeritus
Mathematics, City College of New York
Office: R6/291D Tel: 212-650-5179
Home Page: http://scisun.sci.ccny.cuny.edu/~wyscc/


From MAILER-DAEMON Mon May 19 10:32:32 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WmOcC-0003El-9y
	for mharc-axiom-developer@gnu.org; Mon, 19 May 2014 10:32:32 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:56368)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WmOc5-000339-LI
	for axiom-developer@nongnu.org; Mon, 19 May 2014 10:32:31 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WmObz-0007yo-Ib
	for axiom-developer@nongnu.org; Mon, 19 May 2014 10:32:25 -0400
Received: from mo6-p00-ob.smtp.rzone.de ([2a01:238:20a:202:5300::9]:52382)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WmObz-0007xW-04
	for axiom-developer@nongnu.org; Mon, 19 May 2014 10:32:19 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1400509935; l=695;
	s=domk; d=hemmecke.org;
	h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:
	Subject:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH;
	bh=RnnlcTC/3HC1l9xXx8QllKlsh6A=;
	b=amXhJgw89y7lEL9RQyI+sOHlPg5Jn6rFBscJzs2/fS0t6Mu+300HCwAZf1UgyztR1y0
	M6gyfH0zx3mwV/9gJehpq7iKDH2KzBjUX3SEUM4IQuiZXRohLAHVG/iFjrLoeCIQFfXiB
	DDhx/jj6g3thcx1HSybJS8XT8q5flwinrnM=
X-RZG-AUTH: :Pm0Ic2CgfvKqpyys4bXs6bamDO4KmmoRsZ13hlmoEk5ZaFQhic5buILDsRMJ
X-RZG-CLASS-ID: mo00
Received: from [192.168.1.2] (91-115-107-7.adsl.highway.telekom.at
	[91.115.107.7]) by smtp.strato.de (RZmta 34.2 DYNA|AUTH)
	with ESMTPSA id 60088aq4JEQGB7H
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client did not present a certificate)
	for <axiom-developer@nongnu.org>;
	Mon, 19 May 2014 16:26:16 +0200 (CEST)
Message-ID: <537A1487.5000101@hemmecke.org>
Date: Mon, 19 May 2014 16:26:15 +0200
From: Ralf Hemmecke <ralf@hemmecke.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <201405190807.s4J87vhp012809@axiom-developer.org>
	<web-30080942@cgate.sci.ccny.cuny.edu>
In-Reply-To: <web-30080942@cgate.sci.ccny.cuny.edu>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a01:238:20a:202:5300::9
Subject: Re: [Axiom-developer] On syntactic coloring of language
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2014 14:32:31 -0000

> I agree that those who choose color highlighting should choose colors
> carefully. I would prefer background coloring only and not text
> coloring, to avoid the precise problems you illustrated. Text emphasis
> should be shown using different typefaces, and in rare situations, a
> solid color like red.

We are no longer in the early days of computers.
And we are dealing with open source.

I think that it's nowadays totally easy to separate style elements from
the content and let the *reader* decide what style he/she wants. In
LaTeX we have .sty files, for HTML there is .css etc. etc.

The only issue is if the reader has no choice than to read badly styled
text.

Ralf


From MAILER-DAEMON Mon May 19 15:06:37 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WmStR-0002WH-OX
	for mharc-axiom-developer@gnu.org; Mon, 19 May 2014 15:06:37 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:33487)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <wyscc@sci.ccny.cuny.edu>) id 1WmStL-0002W3-Nu
	for axiom-developer@nongnu.org; Mon, 19 May 2014 15:06:36 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <wyscc@sci.ccny.cuny.edu>) id 1WmStF-0008Jx-DP
	for axiom-developer@nongnu.org; Mon, 19 May 2014 15:06:31 -0400
Received: from cgate.sci.ccny.cuny.edu ([134.74.34.100]:53365)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <wyscc@sci.ccny.cuny.edu>) id 1WmStF-0008Jt-9s
	for axiom-developer@nongnu.org; Mon, 19 May 2014 15:06:25 -0400
Received: from [108.30.208.83] (account wyscc@sci.ccny.cuny.edu)
	by cgate.sci.ccny.cuny.edu (CommuniGate Pro WebUser 4.2.10)
	with HTTP id 30085078; Mon, 19 May 2014 15:04:15 -0400
From: "William Sit" <wyscc@sci.ccny.cuny.edu>
To: Ralf Hemmecke <ralf@hemmecke.org>,axiom-developer@nongnu.org
X-Mailer: CommuniGate Pro WebUser Interface v.4.2.10
Date: Mon, 19 May 2014 15:04:15 -0400
Message-ID: <web-30085078@cgate.sci.ccny.cuny.edu>
In-Reply-To: <537A1487.5000101@hemmecke.org>
References: <201405190807.s4J87vhp012809@axiom-developer.org>
	<web-30080942@cgate.sci.ccny.cuny.edu>
	<537A1487.5000101@hemmecke.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: Solaris 10
X-Received-From: 134.74.34.100
Subject: Re: [Axiom-developer] On syntactic coloring of language
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 19 May 2014 19:06:36 -0000

Hi Ralf:

I don't think Tim is talking about the "product" (such as 
a compiled pdf from LaTeX, or a rendered html web page), 
but about the source files. The style in a publication is 
rightly the choice of the author, as a personal artistic 
preference. While it is possible (I won't say "easy") to 
change the style of a published work (as a web page, by 
changing css file), I doubt a reader would waste time if 
the reader finds the rendition really subjectively 
offending. The work will most likely be ignored. But that 
is not an issue: the author most likely just wanted to 
appeal to "flocks of the same feather" and used the style 
as a filter.

If the source (ASCII text with markups) is the product, 
then I agree with you. By using a different editor, one 
can change the style or even make it plain text with 
relative ease (say cut and paste to Notepad). The main 
issue in that case is the ubiquitous LF/CR problem.

William

On Mon, 19 May 2014 16:26:15 +0200
  Ralf Hemmecke <ralf@hemmecke.org> wrote:
>> I agree that those who choose color highlighting should 
>>choose colors
>> carefully. I would prefer background coloring only and 
>>not text
>> coloring, to avoid the precise problems you illustrated. 
>>Text emphasis
>> should be shown using different typefaces, and in rare 
>>situations, a
>> solid color like red.
> 
> We are no longer in the early days of computers.
> And we are dealing with open source.
> 
> I think that it's nowadays totally easy to separate 
>style elements from
> the content and let the *reader* decide what style 
>he/she wants. In
> LaTeX we have .sty files, for HTML there is .css etc. 
>etc.
> 
> The only issue is if the reader has no choice than to 
>read badly styled
> text.
> 
> Ralf
> 
> _______________________________________________
> Axiom-developer mailing list
> Axiom-developer@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/axiom-developer

William Sit, Professor Emeritus
Mathematics, City College of New York
Office: R6/291D Tel: 212-650-5179
Home Page: http://scisun.sci.ccny.cuny.edu/~wyscc/


From MAILER-DAEMON Tue May 20 16:40:41 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wmqq1-0001qH-N0
	for mharc-axiom-developer@gnu.org; Tue, 20 May 2014 16:40:41 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:38267)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <johnrkitchin@gmail.com>) id 1WmmLv-00040E-84
	for axiom-developer@nongnu.org; Tue, 20 May 2014 11:53:20 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <johnrkitchin@gmail.com>) id 1WmmLr-0006OE-25
	for axiom-developer@nongnu.org; Tue, 20 May 2014 11:53:19 -0400
Received: from mail-we0-x22d.google.com ([2a00:1450:400c:c03::22d]:54194)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <johnrkitchin@gmail.com>) id 1WmmLq-0006Nf-S3
	for axiom-developer@nongnu.org; Tue, 20 May 2014 11:53:15 -0400
Received: by mail-we0-f173.google.com with SMTP id u57so733110wes.4
	for <axiom-developer@nongnu.org>; Tue, 20 May 2014 08:53:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:sender:in-reply-to:references:date:message-id:subject
	:from:to:cc:content-type;
	bh=KPkEMVajWTSPfA44IM4gX4oUmvnn0bXwdJ1HfCwSR6w=;
	b=yuafcjGQb0Znc2b3Xbxyt6X9dgsb4SAyGYhYzyUVKgZdKiXL/4Pms1ndzoK7mDe7cI
	VM8b9tvgJCzugUic00A2XqcgaQlN9ZGHpSZC2IDRU5sUpE4E1/8LeyM1KRI1tqZHX+M3
	8lT6y0JBApuo1vU42DMaF1vTCe63ygK8Gr02C19HrGRALeHYgSXyvRAbrFwiUj3HlTZk
	flPnhFwIDr4HqaCs33xbqR4wFt55//KZwKD8V22CGFz6jfKXHop0ty8aZNjs0jw4Uc01
	/44nUPuzrFiES9UOINA0lFhvF6MxqUyWsoqqA1oSJ4Auqe3jNj6gkebtbv8M/NHHbla2
	wmCw==
MIME-Version: 1.0
X-Received: by 10.194.243.3 with SMTP id wu3mr37996659wjc.29.1400601193177;
	Tue, 20 May 2014 08:53:13 -0700 (PDT)
Sender: johnrkitchin@gmail.com
Received: by 10.216.152.193 with HTTP; Tue, 20 May 2014 08:53:13 -0700 (PDT)
In-Reply-To: <201405180644.s4I6iIpF026519@axiom-developer.org>
References: <201405180644.s4I6iIpF026519@axiom-developer.org>
Date: Tue, 20 May 2014 11:53:13 -0400
X-Google-Sender-Auth: ocCblJG9v-yMKh6l3ZIx4QR8aRA
Message-ID: <CAJ51EToA+unYSNzWH0eZBhcM12kB8Egn+sGR9b1F72RHjHMTwQ@mail.gmail.com>
From: John Kitchin <jkitchin@andrew.cmu.edu>
To: Tim Daly <daly@axiom-developer.org>
Content-Type: multipart/alternative; boundary=089e013d14c49769bb04f9d6e09c
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a00:1450:400c:c03::22d
X-Mailman-Approved-At: Tue, 20 May 2014 16:40:40 -0400
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Axiom mentioned in an LP talk by Bart Childs
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 20 May 2014 15:53:20 -0000

--089e013d14c49769bb04f9d6e09c
Content-Type: text/plain; charset=UTF-8

Thanks. I recently wrote probably my first serious attempt at a literate
program in org-mode to insert and format references in technical documents!

John

-----------------------------------
John Kitchin
Associate Professor
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
http://kitchingroup.cheme.cmu.edu



On Sun, May 18, 2014 at 2:44 AM, <daly@axiom-developer.org> wrote:

> I've been listening to various talks about literate programming.  Bart
> Childs of Texas A&M University, presented a paper with a talk "Thirty
> Years of Literate Programming and More?" and mentions Axiom at around
> 24:30 (actually, somebody named Nelson, I suspect Nelson Beebe, from
> the audience talks about it at Bart's request).
>
> http://www.youtube.com/watch?v=D1cKI2jsidc
>
> https://www.tug.org/TUGboat/tb31-2/tb98childs.pdf
>
> He had some interesting results from teaching using literate programming
> in an undergraduate course.
>
> Tim Daly
>
>

--089e013d14c49769bb04f9d6e09c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks. I recently wrote probably my first serious attempt=
 at a literate program in org-mode to insert and format references in techn=
ical documents!<br></div><div class=3D"gmail_extra"><br clear=3D"all"><div>=
John<br>
<br>-----------------------------------<br>John Kitchin<br>Associate Profes=
sor<br>Doherty Hall A207F<br>Department of Chemical Engineering<br>Carnegie=
 Mellon University<br>Pittsburgh, PA 15213<br>412-268-7803<br><a href=3D"ht=
tp://kitchingroup.cheme.cmu.edu" target=3D"_blank">http://kitchingroup.chem=
e.cmu.edu</a><br>
<br></div>
<br><br><div class=3D"gmail_quote">On Sun, May 18, 2014 at 2:44 AM,  <span =
dir=3D"ltr">&lt;<a href=3D"mailto:daly@axiom-developer.org" target=3D"_blan=
k">daly@axiom-developer.org</a>&gt;</span> wrote:<br><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex">
I&#39;ve been listening to various talks about literate programming. =C2=A0=
Bart<br>
Childs of Texas A&amp;M University, presented a paper with a talk &quot;Thi=
rty<br>
Years of Literate Programming and More?&quot; and mentions Axiom at around<=
br>
24:30 (actually, somebody named Nelson, I suspect Nelson Beebe, from<br>
the audience talks about it at Bart&#39;s request).<br>
<br>
<a href=3D"http://www.youtube.com/watch?v=3DD1cKI2jsidc" target=3D"_blank">=
http://www.youtube.com/watch?v=3DD1cKI2jsidc</a><br>
<br>
<a href=3D"https://www.tug.org/TUGboat/tb31-2/tb98childs.pdf" target=3D"_bl=
ank">https://www.tug.org/TUGboat/tb31-2/tb98childs.pdf</a><br>
<br>
He had some interesting results from teaching using literate programming<br=
>
in an undergraduate course.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Tim Daly<br>
<br>
</font></span></blockquote></div><br></div>

--089e013d14c49769bb04f9d6e09c--


From MAILER-DAEMON Tue May 20 17:14:21 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WmrMb-00020T-DD
	for mharc-axiom-developer@gnu.org; Tue, 20 May 2014 17:14:21 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:54964)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WmrMV-0001yr-7Y
	for axiom-developer@nongnu.org; Tue, 20 May 2014 17:14:19 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WmrMQ-0006Sw-FB
	for axiom-developer@nongnu.org; Tue, 20 May 2014 17:14:15 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:53659
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WmrMQ-0006Sq-A5
	for axiom-developer@nongnu.org; Tue, 20 May 2014 17:14:10 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4KKJsFI020416;
	Tue, 20 May 2014 15:19:54 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4KKJsDJ020413;
	Tue, 20 May 2014 15:19:54 -0500
Date: Tue, 20 May 2014 15:19:54 -0500
Message-Id: <201405202019.s4KKJsDJ020413@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] documentation
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 20 May 2014 21:14:20 -0000

An interesting blog post by Yevgenly Brikman

"You are what you document"

http://brikis98.blogspot.com.tr/2014/05/you-are-what-you-document.html?spref=tw

Tim Daly




From MAILER-DAEMON Tue May 20 18:40:32 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wmshz-00029r-ST
	for mharc-axiom-developer@gnu.org; Tue, 20 May 2014 18:40:32 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:46692)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wmshr-00028c-MA
	for axiom-developer@nongnu.org; Tue, 20 May 2014 18:40:29 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wmshl-0003G8-Hm
	for axiom-developer@nongnu.org; Tue, 20 May 2014 18:40:23 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:52667
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wmshl-0003G3-CA
	for axiom-developer@nongnu.org; Tue, 20 May 2014 18:40:17 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4KMeGFI022359;
	Tue, 20 May 2014 17:40:16 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4KMeGbK022356;
	Tue, 20 May 2014 17:40:16 -0500
Date: Tue, 20 May 2014 17:40:16 -0500
Message-Id: <201405202240.s4KMeGbK022356@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] Nelson Beebe quote
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 20 May 2014 22:40:30 -0000

I transcribed Nelson's quote from the Tug meeting, for those of you
who missed his comment.

Nelson said:

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

I come from a mathematics department and many mathematicians,
particularly those in pure math, have a strong distrust of computers
and they are really not inclined to accept computer-based proofs,
although there have been some dramatic examples of those in the last
two or three decades.

In the early 1970s, researchers at IBM developed a symbolic algebra
system called Scratchpad and this went on inside IBM for many years.
There were lots of papers written about it. It ultimately got renamed
to Axiom and was sold by NAG, the Numerical Algorithms Group in
England, for a few years.  And then it disappeared from the market and
became unavailable.

People worried about this for probably about 5 years but finally NAG
was able to release it and a major decision has been taken. Axiom is
being completely reimplemented as a literate program. And the reason
is, is that software outlives hardware, and often its own authors. The
author of Scratchpad died about 5 years ago.

So they feel the only way that this system can survive and be used by
future generations is to be written as a literate program so that the
reason behind the program is embedded there as part of the description
of the code. I think this is really important and could be really
quite significant for the future growth of computing and mathematics.

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


From MAILER-DAEMON Wed May 21 07:03:21 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wn4Ir-0001DD-LW
	for mharc-axiom-developer@gnu.org; Wed, 21 May 2014 07:03:21 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:57026)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wn4Il-0001Cy-1N
	for axiom-developer@nongnu.org; Wed, 21 May 2014 07:03:20 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wn4If-0000dn-V4
	for axiom-developer@nongnu.org; Wed, 21 May 2014 07:03:14 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:37235
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wn4If-0000dQ-QK
	for axiom-developer@nongnu.org; Wed, 21 May 2014 07:03:09 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4LB34FI024758;
	Wed, 21 May 2014 06:03:04 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4LB34fT024755;
	Wed, 21 May 2014 06:03:04 -0500
Date: Wed, 21 May 2014 06:03:04 -0500
Message-Id: <201405211103.s4LB34fT024755@axiom-developer.org>
To: clojure@googlegroups.com, axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] Heidegger, literate programming, and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Wed, 21 May 2014 11:03:20 -0000

The primary focus of a "documentation system" is communication from 
the author to the audience.

One of the struggles apparent in discussing issues of communication,
especially with programmers, is Heideggers "present-at-hand" vs
"breaking down".

Programmers write programs to instruct a machine to perform some
task. In the ideal, this involves "communication" from the mind of
the programmer to the "execution of the program". If the program works
the first time it is all a seamless entity ("present-at-hand").

When the program fails, by compiler errors, missing libraries, runtime
errors, design errors, inappropriate actions, or any of the other dragons
of programming, the process is not seamless. The details of the process
rise to our awareness ("breaking down"). The burden of failure is likely
to fall on people who use or maintain the program rather than the authors.
If the program survives, these are likely audiences.



Programmers, generalizing from my own case, rarely have a seamless
experience.  Programs that work the first time, are correct, efficient, 
and all of the other properties, are rather far outside our experience.

The effect of this constant "breaking down" is that we have learned,
rather painfully, to be aware of the machinery of the process at every
step of the way. This focus on the machinery becomes the expected way
of communicating with the machine. Scratch any programmer, interview at
any company, listen to any talk, and you find "machinery".

But communication from the author to the audience is the underlying
theme of literate programming. Knuth's point is about communication,
not about the machinery of communication. The question is, to what
audience, not how.



Discussions seem to get lost in a debate about the machinery rather
than the goal. We focus our debate on docstrings versus markup versus
wiki. We consider literate programming to be "too much machinery".

In these forums there is rarely find any example of "present-at-hand"
issues of communication.  That is, given a large program (e.g. Axiom,
Clojure), what is it that we need to communicate, to what audience,
and at what level of detail?

Axiom focuses on "The 30 year horizon" under the assumption that the
computational mathematics will be forever valid and that the audience
will be unable to contact the likely-dead authors.

Pharr and Humphreys' "Physically Base Rendering" [0] is written as a
literate program, a book that won an Academy Award, using Tex and
C++. The very first thing they mention in the preface is the
"Audience". They communicate to humans and, also, to machines.

What is the audience for Clojure? 

Common Lisp has achieved a long-term horizon by raising the language
to a standard. No standard is perfect but it does make it possible to
construct programs which have a stable base for communication. That
base makes it possible to write a book like "Lisp in Small Pieces" [1]
which communicates ideas in natural language using an embedded program
as a reduction to practice.



So the fundamental point is what to communicate to what audience,
not how to implement it. Different audiences will need different
implementations (e.g. docstrings for REPL users) but we must avoid
losing ourselves in the noise. 

Axiom, by choice, has a defined audience. Does Clojure?

Tim Daly
daly@axiom-developer.org

[0] Pharr, Matt; Humphreys, Greg
    Physically Based Rendering
    ISBN 978-0-12-375079-2
[1] Queinnec, Christian
    Lisp in Small Pieces
    ISBN 978-0521545662


From MAILER-DAEMON Wed May 21 20:08:13 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnGYP-0002t2-Ex
	for mharc-axiom-developer@gnu.org; Wed, 21 May 2014 20:08:13 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:33698)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnDsK-0001uh-Bb
	for axiom-developer@nongnu.org; Wed, 21 May 2014 17:16:42 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnDsD-0005nL-OL
	for axiom-developer@nongnu.org; Wed, 21 May 2014 17:16:36 -0400
Received: from mail-qc0-f189.google.com ([209.85.216.189]:49893)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnDsD-0005mr-Jk
	for axiom-developer@nongnu.org; Wed, 21 May 2014 17:16:29 -0400
Received: by mail-qc0-f189.google.com with SMTP id w7so624618qcr.26
	for <axiom-developer@nongnu.org>; Wed, 21 May 2014 14:16:26 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=date:from:to:cc:message-id:in-reply-to:references:subject
	:mime-version:content-type;
	bh=73vIrFiVLv/tASIp8SGX80QlPuAn6i8UTP1WE7eL4zs=;
	b=Z1r6bSZQ3A04bWuB/Yp9/Gwva0X/3CLt4V1C5t1Rr8EXe+aF2FT6fuNnyANWNMKBtk
	of14odlXamOpv81fiSAU6yiQD7wsGw+KjLEEbxE22uZpK16ULJMRNdpPzd3E05yOt63u
	VES+l2P8oZrbNbNgFg7Mr0se9TYu0mm8PABPYIzsXVXrfrv6JEHUm7UaV2aVLgeP69V1
	eeMXj0Q3Telbd852Affkv9UK3gHZssssyeXGcv+KPR83oGFYJPq71Z/ssA2EH4NIyqWP
	VYVo/UqpWxPn5Sgsiy47Ro/4gqAWSyIZ7lSngDbuYeFufbfNKOTptdwPlyQdRx0/1nZI
	w4uA==
X-Received: by 10.140.44.75 with SMTP id f69mr109538qga.11.1400706986265;
	Wed, 21 May 2014 14:16:26 -0700 (PDT)
X-Google-Doc-Id: 1117a02a9029d81d
X-Google-Web-Client: true
Date: Wed, 21 May 2014 14:16:25 -0700 (PDT)
From: Mars0i <marshall@logical.net>
To: clojure@googlegroups.com
Message-Id: <e9a7f2e6-084b-4aef-9622-d4df04341564@googlegroups.com>
In-Reply-To: <201405211103.s4LB34fT024755@axiom-developer.org>
References: <201405211103.s4LB34fT024755@axiom-developer.org>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_509_17370795.1400706985964"
X-Google-Token: EKmv9JsFinPrfzJ8kEU0
X-Google-IP: 71.45.21.204
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 209.85.216.189
X-Mailman-Approved-At: Wed, 21 May 2014 20:08:12 -0400
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Wed, 21 May 2014 21:16:42 -0000

------=_Part_509_17370795.1400706985964
Content-Type: multipart/alternative; 
	boundary="----=_Part_510_27394088.1400706985964"

------=_Part_510_27394088.1400706985964
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On Wednesday, May 21, 2014 6:03:04 AM UTC-5, da...@axiom-developer.org 
wrote:
>
> The primary focus of a "documentation system" is communication from 
> the author to the audience. 
>
> One of the struggles apparent in discussing issues of communication, 
> especially with programmers, is Heideggers "present-at-hand" vs 
> "breaking down". 
>
> Programmers write programs to instruct a machine to perform some 
> task. In the ideal, this involves "communication" from the mind of 
> the programmer to the "execution of the program". If the program works 
> the first time it is all a seamless entity ("present-at-hand"). 
>
> When the program fails, by compiler errors, missing libraries, runtime 
> errors, design errors, inappropriate actions, or any of the other dragons 
> of programming, the process is not seamless. The details of the process 
> rise to our awareness ("breaking down"). The burden of failure is likely 
> to fall on people who use or maintain the program rather than the authors. 
> If the program survives, these are likely audiences. 
>
>
>
> Programmers, generalizing from my own case, rarely have a seamless 
> experience.  Programs that work the first time, are correct, efficient, 
> and all of the other properties, are rather far outside our experience. 
>
> The effect of this constant "breaking down" is that we have learned, 
> rather painfully, to be aware of the machinery of the process at every 
> step of the way. This focus on the machinery becomes the expected way 
> of communicating with the machine. Scratch any programmer, interview at 
> any company, listen to any talk, and you find "machinery". 
>
> But communication from the author to the audience is the underlying 
> theme of literate programming. Knuth's point is about communication, 
> not about the machinery of communication. The question is, to what 
> audience, not how. 
>
>
>
> Discussions seem to get lost in a debate about the machinery rather 
> than the goal. We focus our debate on docstrings versus markup versus 
> wiki. We consider literate programming to be "too much machinery". 
>
> In these forums there is rarely find any example of "present-at-hand" 
> issues of communication.  That is, given a large program (e.g. Axiom, 
> Clojure), what is it that we need to communicate, to what audience, 
> and at what level of detail? 
>
> Axiom focuses on "The 30 year horizon" under the assumption that the 
> computational mathematics will be forever valid and that the audience 
> will be unable to contact the likely-dead authors. 
>
> Pharr and Humphreys' "Physically Base Rendering" [0] is written as a 
> literate program, a book that won an Academy Award, using Tex and 
> C++. The very first thing they mention in the preface is the 
> "Audience". They communicate to humans and, also, to machines. 
>
> What is the audience for Clojure? 
>
> Common Lisp has achieved a long-term horizon by raising the language 
> to a standard. No standard is perfect but it does make it possible to 
> construct programs which have a stable base for communication. That 
> base makes it possible to write a book like "Lisp in Small Pieces" [1] 
> which communicates ideas in natural language using an embedded program 
> as a reduction to practice. 
>
>
>
> So the fundamental point is what to communicate to what audience, 
> not how to implement it. Different audiences will need different 
> implementations (e.g. docstrings for REPL users) but we must avoid 
> losing ourselves in the noise. 
>
> Axiom, by choice, has a defined audience. Does Clojure? 
>
> Tim Daly 
> da...@axiom-developer.org <javascript:> 
>
> [0] Pharr, Matt; Humphreys, Greg 
>     Physically Based Rendering 
>     ISBN 978-0-12-375079-2 
> [1] Queinnec, Christian 
>     Lisp in Small Pieces 
>     ISBN 978-0521545662 
>

------=_Part_510_27394088.1400706985964
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<br><br>On Wednesday, May 21, 2014 6:03:04 AM UTC-5, da...@axiom-developer.org wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">The primary focus of a "documentation system" is communication from 
<br>the author to the audience.
<br>
<br>One of the struggles apparent in discussing issues of communication,
<br>especially with programmers, is Heideggers "present-at-hand" vs
<br>"breaking down".
<br>
<br>Programmers write programs to instruct a machine to perform some
<br>task. In the ideal, this involves "communication" from the mind of
<br>the programmer to the "execution of the program". If the program works
<br>the first time it is all a seamless entity ("present-at-hand").
<br>
<br>When the program fails, by compiler errors, missing libraries, runtime
<br>errors, design errors, inappropriate actions, or any of the other dragons
<br>of programming, the process is not seamless. The details of the process
<br>rise to our awareness ("breaking down"). The burden of failure is likely
<br>to fall on people who use or maintain the program rather than the authors.
<br>If the program survives, these are likely audiences.
<br>
<br>
<br>
<br>Programmers, generalizing from my own case, rarely have a seamless
<br>experience. &nbsp;Programs that work the first time, are correct, efficient, 
<br>and all of the other properties, are rather far outside our experience.
<br>
<br>The effect of this constant "breaking down" is that we have learned,
<br>rather painfully, to be aware of the machinery of the process at every
<br>step of the way. This focus on the machinery becomes the expected way
<br>of communicating with the machine. Scratch any programmer, interview at
<br>any company, listen to any talk, and you find "machinery".
<br>
<br>But communication from the author to the audience is the underlying
<br>theme of literate programming. Knuth's point is about communication,
<br>not about the machinery of communication. The question is, to what
<br>audience, not how.
<br>
<br>
<br>
<br>Discussions seem to get lost in a debate about the machinery rather
<br>than the goal. We focus our debate on docstrings versus markup versus
<br>wiki. We consider literate programming to be "too much machinery".
<br>
<br>In these forums there is rarely find any example of "present-at-hand"
<br>issues of communication. &nbsp;That is, given a large program (e.g. Axiom,
<br>Clojure), what is it that we need to communicate, to what audience,
<br>and at what level of detail?
<br>
<br>Axiom focuses on "The 30 year horizon" under the assumption that the
<br>computational mathematics will be forever valid and that the audience
<br>will be unable to contact the likely-dead authors.
<br>
<br>Pharr and Humphreys' "Physically Base Rendering" [0] is written as a
<br>literate program, a book that won an Academy Award, using Tex and
<br>C++. The very first thing they mention in the preface is the
<br>"Audience". They communicate to humans and, also, to machines.
<br>
<br>What is the audience for Clojure? 
<br>
<br>Common Lisp has achieved a long-term horizon by raising the language
<br>to a standard. No standard is perfect but it does make it possible to
<br>construct programs which have a stable base for communication. That
<br>base makes it possible to write a book like "Lisp in Small Pieces" [1]
<br>which communicates ideas in natural language using an embedded program
<br>as a reduction to practice.
<br>
<br>
<br>
<br>So the fundamental point is what to communicate to what audience,
<br>not how to implement it. Different audiences will need different
<br>implementations (e.g. docstrings for REPL users) but we must avoid
<br>losing ourselves in the noise. 
<br>
<br>Axiom, by choice, has a defined audience. Does Clojure?
<br>
<br>Tim Daly
<br><a href="javascript:" target="_blank" gdf-obfuscated-mailto="D_MoqvyWmhcJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">da...@axiom-developer.org</a>
<br>
<br>[0] Pharr, Matt; Humphreys, Greg
<br>&nbsp; &nbsp; Physically Based Rendering
<br>&nbsp; &nbsp; ISBN 978-0-12-375079-2
<br>[1] Queinnec, Christian
<br>&nbsp; &nbsp; Lisp in Small Pieces
<br>&nbsp; &nbsp; ISBN 978-0521545662
<br></blockquote>
------=_Part_510_27394088.1400706985964--

------=_Part_509_17370795.1400706985964--


From MAILER-DAEMON Wed May 21 20:08:14 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnGYQ-0002ug-IY
	for mharc-axiom-developer@gnu.org; Wed, 21 May 2014 20:08:14 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:37449)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnEEC-0006J7-2u
	for axiom-developer@nongnu.org; Wed, 21 May 2014 17:39:18 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnEE5-0003rS-Sd
	for axiom-developer@nongnu.org; Wed, 21 May 2014 17:39:12 -0400
Received: from mail-ie0-f186.google.com ([209.85.223.186]:63014)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnEE5-0003rK-Ml
	for axiom-developer@nongnu.org; Wed, 21 May 2014 17:39:05 -0400
Received: by mail-ie0-f186.google.com with SMTP id as1so651248iec.3
	for <axiom-developer@nongnu.org>; Wed, 21 May 2014 14:39:04 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=date:from:to:cc:message-id:in-reply-to:references:subject
	:mime-version:content-type;
	bh=0ozuLviH33nKrsi039trmUoObJngzN2fiGJurD4fQnQ=;
	b=Vrvx/0nKieOV2gZFkVsD67/LupEwuejKakwjab/yWQBvnBfcYncdygbf1yVWpFDsmH
	POziLEmmRTsAyJi6iDtS/ms2+17BaW6zCIN5bF4WV+Y/olUBf24M7yx0gSmduc/ONr3h
	FrNjnKRO/e52cxY+a7FgMwJv9YVQm5sM7NgbiIVprY3tvl5xZXhfLnmznmUa9sECiRiR
	J8ozAZI43+HIMsuszt+S11VMeFF+KiJDE1LKbqnJ5uX2kf+dYMDZubJZfywv7Fm6sRjc
	mY77Gt8fA3Sp5DIghWfDbREpoeQLjzgw+EUeDhVtnFnbbiTVelWUwtnY+4tQIKTmxMwK
	yauA==
X-Received: by 10.140.27.40 with SMTP id 37mr64808qgw.24.1400708344324;
	Wed, 21 May 2014 14:39:04 -0700 (PDT)
X-Google-Doc-Id: 8d8b5e334a84ea10
X-Google-Web-Client: true
Date: Wed, 21 May 2014 14:39:03 -0700 (PDT)
From: Mars0i <marshall@logical.net>
To: clojure@googlegroups.com
Message-Id: <dc238670-c967-4d25-82e4-145542e70827@googlegroups.com>
In-Reply-To: <201405211103.s4LB34fT024755@axiom-developer.org>
References: <201405211103.s4LB34fT024755@axiom-developer.org>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_2382_26199928.1400708343793"
X-Google-Token: EPe59JsFivYDHbtV6uE0
X-Google-IP: 71.45.21.204
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 209.85.223.186
X-Mailman-Approved-At: Wed, 21 May 2014 20:08:13 -0400
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Wed, 21 May 2014 21:39:18 -0000

------=_Part_2382_26199928.1400708343793
Content-Type: multipart/alternative; 
	boundary="----=_Part_2383_7393408.1400708343793"

------=_Part_2383_7393408.1400708343793
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Tim,

>From my point of view there are at least a few things that seem clear:

1. I think that Gregg Reynolds and I agree on a lot, but I would add to his 
remarks that there is almost always a human audience for source code, as 
well as the compiler/interpreter.  Sometimes, the audience is just the 
originally programmer, perhaps at a later date.  (If I missed something, 
Gregg, sorry, but I don't think you disagree, anyway.)

2. Since Clojure is a general-purpose tool, Clojure source code has no 
single kind of human audience for the code.  

In general, I do different things with comments, or with my coding style, 
depending on whether I expect that I will be the only maintainer of the 
code, or expect that others with whom I'm collaborating will need to 
interface with it, for example.  Further, I think about the skill levels 
and background of those who will read the code.  And I think about what 
they would want to do with it.  And then I make decisions that involve 
tradeoffs between competing desiderata.

3. There is a tradeoff between the desire to see a lot of code at once, 
without a lot of text cluttering it up, and understanding what the code is 
doing.  Comments hurt the former but can help the latter.  The same thing 
goes for literate programming, but--it depends on your goals and your human 
audience.

4. Two examples to convey the context-dependence of appropriate 
configuration schemes:

A. One time I wrote a small but slightly complex bit of code (in Perl, not 
Clojure).  I could see that it would be confusing, if someone just started 
reading the code at an arbitrary place.  But I also knew the ability of the 
other programmers I worked with, and I knew that if they started reading at 
one particular function, they would be able to figure out most of the 
rest.  I provided text that explained what they wouldn't be able to figure 
out.  About six months after I left the company, one of the programmers 
contacted me and asked me to explain the program; he had to make a 
modification.  I told him to look at such and such document, which mainly 
said "Start reading the code at such and such point, and understand these 
few other things."  He did, and that was all he needed.  If I wrote more 
documentation, I would only be duplicating the information that was already 
there in the source code, and that would be apparent for the kind of people 
who would read it.  In fact, if I provided *more* documentation, I doubt 
that the other programmers would have read it.  They would have just looked 
at the source.

B. Another example.

I generally don't like the idea of LP.  That is to say, I like the idea of 
people who want to be able to use it, using it, but I don't want to use it, 
usually.  And the reason that I don't want to use it is not simply that I 
don't want to bother writing it.  It's that I want the ability to use 
simple tools and I want to have relatively uncluttered source code.  (I 
could use LP and have uncluttered source much of the time, but only by 
using special tools.)

In my current main project, there is source code that implements the 
central functionality of the application, and there are rather complex 
configuration files.  I write documents to describe the central 
functionality source code, so that someone who wants to hack on it will 
know where to start and where to look.  I have to trust that they will know 
or will be willing to learn Clojure, because otherwise I'd have to explain 
too much.

However, the configuration files should be modifiable by people who won't 
understand the guts of the program, and yet, they are in Clojure, and would 
be pretty unintelligible to someone who merely understood in general what 
the program was supposed to do.  (I may create a DSL for the config files, 
but all that will do will be to get rid of a few parentheses.  The 
information in the config files won't be expressed significantly more 
succinctly.)

For the first time I'm thinking of using LP.  It would be perfect for the 
config files, and in fact, any other way of documenting the config files 
will probably be inadequate.  Interspersing explanations with the 
configuration code is precisely what's needed.

------=_Part_2383_7393408.1400708343793
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Tim,<br><br>From my point of view there are at least a few=
 things that seem clear:<br><br>1. I think that Gregg Reynolds and I agree =
on a lot, but I would add to his remarks that there is almost always a huma=
n audience for source code, as well as the compiler/interpreter.&nbsp; Some=
times, the audience is just the originally programmer, perhaps at a later d=
ate.&nbsp; (If I missed something, Gregg, sorry, but I don't think you disa=
gree, anyway.)<br><br>2. Since Clojure is a general-purpose tool, Clojure s=
ource code has no single kind of human audience for the code.&nbsp; <br><br=
>In general, I do different things with comments, or with my coding style, =
depending on whether I expect that I will be the only maintainer of the cod=
e, or expect that others with whom I'm collaborating will need to interface=
 with it, for example.&nbsp; Further, I think about the skill levels and ba=
ckground of those who will read the code.&nbsp; And I think about what they=
 would want to do with it.&nbsp; And then I make decisions that involve tra=
deoffs between competing desiderata.<br><br>3. There is a tradeoff between =
the desire to see a lot of code at once, without a lot of text cluttering i=
t up, and understanding what the code is doing.&nbsp; Comments hurt the for=
mer but can help the latter.&nbsp; The same thing goes for literate program=
ming, but--it depends on your goals and your human audience.<br><br>4. Two =
examples to convey the context-dependence of appropriate configuration sche=
mes:<br><br>A. One time I wrote a small but slightly complex bit of code (i=
n Perl, not Clojure).&nbsp; I could see that it would be confusing, if some=
one just started reading the code at an arbitrary place.&nbsp; But I also k=
new the ability of the other programmers I worked with, and I knew that if =
they started reading at one particular function, they would be able to figu=
re out most of the rest.&nbsp; I provided text that explained what they wou=
ldn't be able to figure out.&nbsp; About six months after I left the compan=
y, one of the programmers contacted me and asked me to explain the program;=
 he had to make a modification.&nbsp; I told him to look at such and such d=
ocument, which mainly said "Start reading the code at such and such point, =
and understand these few other things."&nbsp; He did, and that was all he n=
eeded.&nbsp; If I wrote more documentation, I would only be duplicating the=
 information that was already there in the source code, and that would be a=
pparent for the kind of people who would read it.&nbsp; In fact, if I provi=
ded <i>more</i> documentation, I doubt that the other programmers would hav=
e read it.&nbsp; They would have just looked at the source.<br><br>B. Anoth=
er example.<br><br>I generally don't like the idea of LP.&nbsp; That is to =
say, I like the idea of people who want to be able to use it, using it, but=
 I don't want to use it, usually.&nbsp; And the reason that I don't want to=
 use it is not simply that I don't want to bother writing it.&nbsp; It's th=
at I want the ability to use simple tools and I want to have relatively unc=
luttered source code.&nbsp; (I could use LP and have uncluttered source muc=
h of the time, but only by using special tools.)<br><br>In my current main =
project, there is source code that implements the central functionality of =
the application, and there are rather complex configuration files.&nbsp; I =
write documents to describe the central functionality source code, so that =
someone who wants to hack on it will know where to start and where to look.=
&nbsp; I have to trust that they will know or will be willing to learn Cloj=
ure, because otherwise I'd have to explain too much.<br><br>However, the co=
nfiguration files should be modifiable by people who won't understand the g=
uts of the program, and yet, they are in Clojure, and would be pretty unint=
elligible to someone who merely understood in general what the program was =
supposed to do.&nbsp; (I may create a DSL for the config files, but all tha=
t will do will be to get rid of a few parentheses.&nbsp; The information in=
 the config files won't be expressed significantly more succinctly.)<br><br=
>For the first time I'm thinking of using LP.&nbsp; It would be perfect for=
 the config files, and in fact, any other way of documenting the config fil=
es will probably be inadequate.&nbsp; Interspersing explanations with the c=
onfiguration code is precisely what's needed.<br></div>
------=_Part_2383_7393408.1400708343793--

------=_Part_2382_26199928.1400708343793--


From MAILER-DAEMON Thu May 22 02:17:26 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnMJi-0006KV-Mg
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 02:17:26 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:44460)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnMJY-0006Hl-RP
	for axiom-developer@nongnu.org; Thu, 22 May 2014 02:17:24 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnMJQ-0006f0-Nh
	for axiom-developer@nongnu.org; Thu, 22 May 2014 02:17:16 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:54075
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnMJQ-0006eZ-HW
	for axiom-developer@nongnu.org; Thu, 22 May 2014 02:17:08 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4M6GsFI029346;
	Thu, 22 May 2014 01:16:55 -0500
Received: by u1204 (Postfix, from userid 1000)
	id 15C99687CA; Thu, 22 May 2014 02:16:54 -0400 (EDT)
From: u1204 <daly@axiom-developer.org>
To: Gregg Reynolds <dev@mobileink.com>, <marshall@logical.net>
In-Reply-To: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>
	(message from Gregg Reynolds on Wed, 21 May 2014 21:22:58 -0500)
Date: Thu, 22 May 2014 02:16:53 -0400
Message-ID: <87k39e72y2.fsf@axiom-developer.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org, clojure@googlegroups.com
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 06:17:24 -0000

Gregg and Gary,

I understand where you are coming from. Indeed, Maturana [0] is on your
side of the debate. Since even the philosophers can't agree, I doubt we
will find a common ground. 

Unfortunately, I've decided to take on the task of documenting the
Clojure internals because, yaknow, *I* don't feel I understand something
until I know what the hardware does; consider this a flaw in my
personality :-) I have to say that the posted Clojure code is
"somewhat lacking" in the communication department. Perhaps it is only
intended for an "audience of one", and I'm not "the one". :-)

Contrary to popular belief, I am reading the code. As a result, I have a
strongly held opinion that there is a lot that could be done to make
it less of a struggle.




>> From my point of view there are at least a few things that seem clear:
>>
>> 1. I think that Gregg Reynolds and I agree on a lot, but I would add to
>> his remarks that there is almost always a human audience for source code,
>> as well as the compiler/interpreter.  Sometimes, the audience is just the
>> originally programmer, perhaps at a later date.  (If I missed something,
>> Gregg, sorry, but I don't think you disagree, anyway.)
>>
>
>I agree; whoever writes the code automatically forms an "audience" of one.
>I guess I would say "reader/responder".

Hmmm. Common Lisp is about 25 years old. Assume Clojure lives that long.
What are the odds that the original authors will be maintaining the
code? Will the code still be "an audience of one"? Are you sure that's
a worthwhile goal?



>> 2. Since Clojure is a general-purpose tool, Clojure source code has no
>> single kind of human audience for the code.
>>
>> In general, I do different things with comments, or with my coding style,
>> depending on whether I expect that I will be the only maintainer of the
>> code, or expect that others with whom I'm collaborating will need to
>> interface with it, for example.  Further, I think about the skill levels
>> and background of those who will read the code.  And I think about what
>> they would want to do with it.  And then I make decisions that involve
>> tradeoffs between competing desiderata.
>

My experience "in industry" with "general-purpose tool" code is that
code does look a lot different from project to project and language to
language. But as code moved out of its childhood and off the desk, it
began to grow hair and get ugly. The authors all assumed they would be
"the only maintainer". For instance,

   I once had to maintain a C program that had 14 pages of nested ifdefs
   just to choose the correct #include files. Each include file had
   ifdefs.  The code ran everywhere, Intel, ARM, 68000s, SUNs, DEC,
   etc. but nearly every line was based on experience (e.g. compensating
   for floating-point errors on various platforms, hacking around errors
   in various C compilers and their "optimizers", etc.) with ifdefs
   around each hack. I had to run the compiler intermediate stage to
   figure out what the actual code would be for my platform. And then I
   had to reverse-engineer the fix into the appropriate include files;
   uncommented I might add. I wouldn't want to ruin the style.

   Sophisticated Lisp programmers use macros A LOT. Axiom, for instance,
   compiles code from a high-level algebra language, essentially a DSL,
   into macros that index into vectors for the function to call, or the
   category to inherit which might contain the call, and the environment
   passed to each function is a huge vector. DSLs, which make the top
   level code "so clear", often are macros generating machine-code-like
   lisp doing super-efficient vector indexing. One finds macros
   expanding into macros expanding into macros. Quick, what does the
   spadcall macro do?

   And we won't even mention that despite the use of a DSL, the DSL
   code isn't "perfectly clear" either. This is especially true when
   it gets mixed with inline, non-DSL code. For instance, Axiom's
   algebra code regularly invokes low-level lisp functions.



>Exactly.  Conclusion: it's hard, maybe impossible, to generalize about what
>all code should look like.  Maybe it's essentially pluralistic.

Yes, it is hard to generalize about what all code should look like. But
it is not hard to generalize that reading natural language explanations
is faster, more accurate, and a lot easier than reverse-engineering
code. It is MUCH easier to understand Greg Humphrey's rendering code
than it is to understand the Clojure internals.

Consider a randomly chosen paragraph from Physically Based Rendering
(p356):



  To do the permutation, this function loops over the samples, randomly
  permuting the sample points in one dimension at a time. Note that this
  is a different permutation than the earlier Shuffle() routine: that
  routine does one permutation, keeping all nDim sample points in each
  sample together, while here nDim separate permutations of a single
  dimension at a time are done. (Figure 7.21)

   for (uint32_t i = 0; i < nDim; ++1) {
     for (uint32_t j = 0; j < nSamples; ++j) {
       uint32_t other = j + (rng.RandomUInt() % (nSamples - j));
       swap(samples[nDim + j + i], samples[nDim * other + i]);
     }
   }

  Footnote: While it's not necessary to permute the first dimension of
  the LHS pattern, the implementation here does so anyway since making
  the elements of the first dimension be randomly ordered means that LHS
  patterns can be used in conjunction with sampling patterns from other
  sources without danger of correlation between their sample points.



So we learned what the code does. We also learned not to "optimize the
code" by replacing it with Shuffle(). Further, we learned that we 
shouldn't "optimize the code" by removing the apparently useless
shuffle of the first dimension. And, as a bonus, we get a figure.
NONE OF THIS INFORMATION IS IN THE CODE ITSELF.

In addition, this code lives in an organizing structure. It is 
in Chapter 7: Sampling and Reconstruction
     Section 7.3: Stratified Samples 


Heck, it is only 4 lines of C++. Why bother? *I* can read C++.  I can
even reverse engineer it (probably by inventing the diagram in Figure
2.7 on a napkin). Maybe it lives in the src/SamRecon/StratSam, which is
all the organization necessary. :-)  But I can't reverse engineer the
important information in either paragraph of text.

For comparison, refer back to the multi-page Java code I posted
from the Clojure core. As a maintenance programmer, which would you
rather maintain?
  



Estimates are that programs that "live" spend 80% or more of their
"lifetime" in maintenance. 

Companies that depend on a "crufty old program" (a l33t-speak term for
any program not authored by the current maintainer) are willing to pay
the cost to have programmers read the code, take notes, and spend time
reverse-engineering the code.

In contrast, open source code tends to die the moment the original
authors stop typing. Sourceforge, github, savannah, etc. are
wall-to-wall full of code nobody will ever use. It is very common to
see someone write:

   "Well, it hasn't been updated in the last 6 months so I don't think
    it is being maintained anymore."

Being an "audience of one" when writing the code means the program
will have an "audience of one" in github; until 6 months pass and it has
an "audience of zero".

Languages come into fashion all the time. Almost all of them disappear.
Axiom and Clojure are worthwhile efforts. We really need a mindset that
extends into the future, communicating with the maintainers.

Tim Daly


For want of a comment, the fix was lost.
For want of a fix, the routine was lost.
For want of a routine, a program was lost.
For want of a program, the customer was lost.
For want of a customer, the company was lost.

[0] Zeleny, M. (ed.)
    "Autopoiesis, a Theory of the Living Organization"
    New York, Elsevier-North Holland (1978)


From MAILER-DAEMON Thu May 22 03:22:13 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnNKP-0004fv-P6
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 03:22:13 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:57056)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dev@mobileink.com>) id 1WnIev-00008f-PN
	for axiom-developer@nongnu.org; Wed, 21 May 2014 22:23:10 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dev@mobileink.com>) id 1WnIeq-0007ql-P8
	for axiom-developer@nongnu.org; Wed, 21 May 2014 22:23:05 -0400
Received: from mail-we0-f175.google.com ([74.125.82.175]:58992)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dev@mobileink.com>) id 1WnIeq-0007qJ-Fn
	for axiom-developer@nongnu.org; Wed, 21 May 2014 22:23:00 -0400
Received: by mail-we0-f175.google.com with SMTP id t61so2830760wes.34
	for <axiom-developer@nongnu.org>; Wed, 21 May 2014 19:22:58 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=0V57UL8A80TZmh1Qrf69spDsWMAoHsmOGNyxg6UeHWk=;
	b=D8X+p3wvbZCfYeksG+iZPtUpa0FICduB68vGbQVLHOcty0szVa9G4cAi3EzYy05py9
	aNOYY/jci9Sx1VfGuRz5ssZXkyNSJ549CwGC3cb8PQSdXr8OrPw1ZjM644VSolqLtxIO
	uDTnjiytLWb/yAjNEHGhUlC10GOIcf26J5NfXjxA0e3tnXLn/3lJjdHOSoWhGsYFGaCZ
	3Yywoq8JLiY2B6X7CVQLW7S7ekZ+LMFLP58JqSZnwzDXbfpFDxAcPwkpq/Cbg2w5d0yX
	wP5SyzetQy+R+XTNe4o9ROqe7BVrTgoUgQdf7wWNANV4K8ge5VNdTb+8vSatN4dshU84
	YEcQ==
X-Gm-Message-State: ALoCoQmpa4rW4HTRBxEKYgPxRppINxBn/2nP9aGZ261ZtbX/PoGUxva2tvl41OggeN2syRwDrxun
MIME-Version: 1.0
X-Received: by 10.180.106.194 with SMTP id gw2mr13682601wib.47.1400725378552; 
	Wed, 21 May 2014 19:22:58 -0700 (PDT)
Received: by 10.180.3.202 with HTTP; Wed, 21 May 2014 19:22:58 -0700 (PDT)
In-Reply-To: <dc238670-c967-4d25-82e4-145542e70827@googlegroups.com>
References: <201405211103.s4LB34fT024755@axiom-developer.org>
	<dc238670-c967-4d25-82e4-145542e70827@googlegroups.com>
Date: Wed, 21 May 2014 21:22:58 -0500
Message-ID: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>
From: Gregg Reynolds <dev@mobileink.com>
To: clojure@googlegroups.com
Content-Type: multipart/alternative; boundary=e89a8f3bab239def0a04f9f3ca01
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 74.125.82.175
X-Mailman-Approved-At: Thu, 22 May 2014 03:22:12 -0400
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 02:23:10 -0000

--e89a8f3bab239def0a04f9f3ca01
Content-Type: text/plain; charset=UTF-8

On Wed, May 21, 2014 at 4:39 PM, Mars0i <marshall@logical.net> wrote:

> Tim,
>
> From my point of view there are at least a few things that seem clear:
>
> 1. I think that Gregg Reynolds and I agree on a lot, but I would add to
> his remarks that there is almost always a human audience for source code,
> as well as the compiler/interpreter.  Sometimes, the audience is just the
> originally programmer, perhaps at a later date.  (If I missed something,
> Gregg, sorry, but I don't think you disagree, anyway.)
>

I agree; whoever writes the code automatically forms an "audience" of one.
I guess I would say "reader/responder".


>
> 2. Since Clojure is a general-purpose tool, Clojure source code has no
> single kind of human audience for the code.
>
> In general, I do different things with comments, or with my coding style,
> depending on whether I expect that I will be the only maintainer of the
> code, or expect that others with whom I'm collaborating will need to
> interface with it, for example.  Further, I think about the skill levels
> and background of those who will read the code.  And I think about what
> they would want to do with it.  And then I make decisions that involve
> tradeoffs between competing desiderata.
>

Exactly.  Conclusion: it's hard, maybe impossible, to generalize about what
all code should look like.  Maybe it's essentially pluralistic.

>
> 3. There is a tradeoff between the desire to see a lot of code at once,
> without a lot of text cluttering it up, and understanding what the code is
> doing.  Comments hurt the former but can help the latter.  The same thing
> goes for literate programming, but--it depends on your goals and your human
> audience.
>
> 4. Two examples to convey the context-dependence of appropriate
> configuration schemes:
>
> A. One time I wrote a small but slightly complex bit of code (in Perl, not
> Clojure).  I could see that it would be confusing, if someone just started
> reading the code at an arbitrary place.  But I also knew the ability of the
> other programmers I worked with, and I knew that if they started reading at
> one particular function, they would be able to figure out most of the
> rest.  I provided text that explained what they wouldn't be able to figure
> out.  About six months after I left the company, one of the programmers
> contacted me and asked me to explain the program; he had to make a
> modification.  I told him to look at such and such document, which mainly
> said "Start reading the code at such and such point, and understand these
> few other things."  He did, and that was all he needed.  If I wrote more
> documentation, I would only be duplicating the information that was already
> there in the source code, and that would be apparent for the kind of people
> who would read it.  In fact, if I provided *more* documentation, I doubt
> that the other programmers would have read it.  They would have just looked
> at the source.
>

Yep; there's always a point of diminishing returns.  I find that in
developing code (or trying to understand others' code) I often take
extensive notes and sometimes try to mentally "improve" what I deem sloppy
or hard-to-read by writing a clear description of it, or just expressing it
in different language.  But once I get comfortable with the code I don't
often return to my documentation.

...

> For the first time I'm thinking of using LP.  It would be perfect for the
> config files, and in fact, any other way of documenting the config files
> will probably be inadequate.  Interspersing explanations with the
> configuration code is precisely what's needed.
>

I agree, that's a case where monolithic LP is entirely appropriate.  Ditto
for APIs and unit tests; maybe also for simplified examples of API usage
expressly designed for training.

-Gregg

--e89a8f3bab239def0a04f9f3ca01
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, May 21, 2014 at 4:39 PM, Mars0i <span dir=3D"ltr">=
&lt;<a href=3D"mailto:marshall@logical.net" target=3D"_blank">marshall@logi=
cal.net</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=3D"g=
mail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr">Tim,<br><br>From my point o=
f view there are at least a few things that seem clear:<br><br>1. I think t=
hat Gregg Reynolds and I agree on a lot, but I would add to his remarks tha=
t there is almost always a human audience for source code, as well as the c=
ompiler/interpreter.=C2=A0 Sometimes, the audience is just the originally p=
rogrammer, perhaps at a later date.=C2=A0 (If I missed something, Gregg, so=
rry, but I don&#39;t think you disagree, anyway.)<br>
</div></blockquote><div><br></div><div>I agree; whoever writes the code aut=
omatically forms an &quot;audience&quot; of one.=C2=A0 I guess I would say =
&quot;reader/responder&quot;.<br></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
<div dir=3D"ltr"><br>2. Since Clojure is a general-purpose tool, Clojure so=
urce code has no single kind of human audience for the code.=C2=A0 <br><br>=
In general, I do different things with comments, or with my coding style, d=
epending on whether I expect that I will be the only maintainer of the code=
, or expect that others with whom I&#39;m collaborating will need to interf=
ace with it, for example.=C2=A0 Further, I think about the skill levels and=
 background of those who will read the code.=C2=A0 And I think about what t=
hey would want to do with it.=C2=A0 And then I make decisions that involve =
tradeoffs between competing desiderata.<br>
</div></blockquote><div><br></div><div>Exactly.=C2=A0 Conclusion: it&#39;s =
hard, maybe impossible, to generalize about what all code should look like.=
=C2=A0 Maybe it&#39;s essentially pluralistic. <br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
<div dir=3D"ltr"><br>3. There is a tradeoff between the desire to see a lot=
 of code at once, without a lot of text cluttering it up, and understanding=
 what the code is doing.=C2=A0 Comments hurt the former but can help the la=
tter.=C2=A0 The same thing goes for literate programming, but--it depends o=
n your goals and your human audience.<br>
<br>4. Two examples to convey the context-dependence of appropriate configu=
ration schemes:<br><br>A. One time I wrote a small but slightly complex bit=
 of code (in Perl, not Clojure).=C2=A0 I could see that it would be confusi=
ng, if someone just started reading the code at an arbitrary place.=C2=A0 B=
ut I also knew the ability of the other programmers I worked with, and I kn=
ew that if they started reading at one particular function, they would be a=
ble to figure out most of the rest.=C2=A0 I provided text that explained wh=
at they wouldn&#39;t be able to figure out.=C2=A0 About six months after I =
left the company, one of the programmers contacted me and asked me to expla=
in the program; he had to make a modification.=C2=A0 I told him to look at =
such and such document, which mainly said &quot;Start reading the code at s=
uch and such point, and understand these few other things.&quot;=C2=A0 He d=
id, and that was all he needed.=C2=A0 If I wrote more documentation, I woul=
d only be duplicating the information that was already there in the source =
code, and that would be apparent for the kind of people who would read it.=
=C2=A0 In fact, if I provided <i>more</i> documentation, I doubt that the o=
ther programmers would have read it.=C2=A0 They would have just looked at t=
he source.<br>
</div></blockquote><div><br></div><div>Yep; there&#39;s always a point of d=
iminishing returns.=C2=A0 I find that in developing code (or trying to unde=
rstand others&#39; code) I often take extensive notes and sometimes try to =
mentally &quot;improve&quot; what I deem sloppy or hard-to-read by writing =
a clear description of it, or just expressing it in different language.=C2=
=A0 But once I get comfortable with the code I don&#39;t often return to my=
 documentation. <br>
</div><br>...<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">For the fi=
rst time I&#39;m thinking of using LP.=C2=A0 It would be perfect for the co=
nfig files, and in fact, any other way of documenting the config files will=
 probably be inadequate.=C2=A0 Interspersing explanations with the configur=
ation code is precisely what&#39;s needed.<br>
</div></blockquote><div><br></div><div>I agree, that&#39;s a case where mon=
olithic LP is entirely appropriate.=C2=A0 Ditto for APIs and unit tests; ma=
ybe also for simplified examples of API usage expressly designed for traini=
ng.<br>
</div></div><br></div><div class=3D"gmail_extra">-Gregg<br></div></div>

--e89a8f3bab239def0a04f9f3ca01--


From MAILER-DAEMON Thu May 22 05:21:50 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnPCA-0006MR-9C
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 05:21:50 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:48987)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dev@mobileink.com>) id 1WnPC3-0006FL-HP
	for axiom-developer@nongnu.org; Thu, 22 May 2014 05:21:48 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dev@mobileink.com>) id 1WnPBy-0007PN-Ec
	for axiom-developer@nongnu.org; Thu, 22 May 2014 05:21:43 -0400
Received: from mail-wg0-f49.google.com ([74.125.82.49]:37311)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dev@mobileink.com>) id 1WnPBy-0007PH-4z
	for axiom-developer@nongnu.org; Thu, 22 May 2014 05:21:38 -0400
Received: by mail-wg0-f49.google.com with SMTP id m15so3140136wgh.20
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 02:21:37 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=3AV+MjqEUVXr3/xSzAx9Qtm573T8XrMGSPuyrIoQtIM=;
	b=GQYOTRBcXhqR80Tz1rZF0JxpQBZ5ZK0PnnyhZl9TRYW1jl1IUCE0yHPtkIrRFCqThV
	A4POMfeSoJaw1P/G0TweM0L6D19XintB6sysOEA/bV8GhxNA7J2NUk2boI3NHn68xAj2
	kdjAgxvCJMS511gHRuYSfuUR43fZ+ryljB1dSK4zAhysSIZlviwC1bccsgBNFH+U9c76
	tdgaxHsGTsF8m9EhjQNCmM/qsqMcERMiB9lC2YiCxZI023+zW2YFgyJx3wBGH80bPexQ
	K0klavOGUiSTAjag9JjqJmDGxpzFkDirSoCyZlJXhs20PaSCLJHFBOvBU4MM9jSAgyJ/
	G2kQ==
X-Gm-Message-State: ALoCoQmgNX8IYyDvDMduo4c7OAxI07/gEuKlWIF0K3hWUGTN6x9ViBqbsjDsCwhSM8wrW/u3u4R1
MIME-Version: 1.0
X-Received: by 10.180.90.145 with SMTP id bw17mr5255882wib.43.1400750497326;
	Thu, 22 May 2014 02:21:37 -0700 (PDT)
Received: by 10.180.3.202 with HTTP; Thu, 22 May 2014 02:21:37 -0700 (PDT)
In-Reply-To: <87k39e72y2.fsf@axiom-developer.org>
References: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>
	<87k39e72y2.fsf@axiom-developer.org>
Date: Thu, 22 May 2014 04:21:37 -0500
Message-ID: <CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>
From: Gregg Reynolds <dev@mobileink.com>
To: clojure@googlegroups.com
Content-Type: multipart/alternative; boundary=f46d043be1c4d0020c04f9f9a323
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 74.125.82.49
Cc: marshall@logical.net, axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 09:21:48 -0000

--f46d043be1c4d0020c04f9f9a323
Content-Type: text/plain; charset=UTF-8

Howdy Tim,


On Thu, May 22, 2014 at 1:16 AM, u1204 <daly@axiom-developer.org> wrote:

> Gregg and Gary,
>
> I understand where you are coming from. Indeed, Maturana [0] is on your
> side of the debate. Since even the philosophers can't agree, I doubt we
> will find a common ground.
>

Ah, but philosophers never agree.  Disagreement is part of their job
description.  Why should programmers be any different?


>
> Unfortunately, I've decided to take on the task of documenting the
> Clojure internals because, yaknow, *I* don't feel I understand something
> until I know what the hardware does; consider this a flaw in my
> personality :-)


I suffer from a similar malady, which compels me to continually rewrite
other peoples code, since, gee whiz, "foo" is not quite the perfect name
for that darn variable, "bar" would be just slightly better, and on and
on.  You can see why I prefer code to commentary.
...
>>
>> 1. I think that Gregg Reynolds and I agree on a lot, but I would add to
>> his remarks that there is almost always a human audience for source code,
>> as well as the compiler/interpreter.  Sometimes, the audience is just the
>> originally programmer, perhaps at a later date.  (If I missed something,
>> Gregg, sorry, but I don't think you disagree, anyway.)
>>
>
>I agree; whoever writes the code automatically forms an "audience" of one.
>I guess I would say "reader/responder".

Hmmm. Common Lisp is about 25 years old. Assume Clojure lives that long.
> What are the odds that the original authors will be maintaining the
> code? Will the code still be "an audience of one"? Are you sure that's
> a worthwhile goal?
>

I think you may have misunderstood me (dunno about Gary): my point is that
even one-off code that gets discarded immediately has a human reader,
namely the author.  A statement of (minimal) fact, not a goal.

...

>
>    Sophisticated Lisp programmers use macros A LOT.


That's because they are language designers, and they know it.


>    expanding into macros expanding into macros. Quick, what does the
>    spadcall macro do?
>

HCF?

>Exactly.  Conclusion: it's hard, maybe impossible, to generalize about what
> >all code should look like.  Maybe it's essentially pluralistic.
>
> Yes, it is hard to generalize about what all code should look like. But
> it is not hard to generalize that reading natural language explanations
> is faster, more accurate, and a lot easier than reverse-engineering
> code.


Whoa Nelly!  I don't agree with that at all, either in principle or by
experience.  Well, ok, you've rigged the game.  Easier than
"reverse-engineering code" - what does that mean?  I guess you mean reading
well-written natural language explanations is faster etc. than reading
badly written code - but so what?  It's not a meaningful comparison.  Would
you take a comparison between a sample of well-written code and a sample
badly written LP as evidence against LP?  I would not.  To me the question
is whether well-written natural language explanation adds anything of
substance to well-written code.


> It is MUCH easier to understand Greg Humphrey's rendering code
> than it is to understand the Clojure internals.
>

Ok, but I don't see how exhibiting a piece of transparent code next to a
piece of opaque code demonstrates anything.


>
> Consider a randomly chosen paragraph from Physically Based Rendering
> (p356):
>
>   To do the permutation, this function loops over the samples, randomly
>   permuting the sample points in one dimension at a time. Note that this
>   is a different permutation than the earlier Shuffle() routine: that
>   routine does one permutation, keeping all nDim sample points in each
>   sample together, while here nDim separate permutations of a single
>   dimension at a time are done. (Figure 7.21)
>
>    for (uint32_t i = 0; i < nDim; ++1) {
>      for (uint32_t j = 0; j < nSamples; ++j) {
>        uint32_t other = j + (rng.RandomUInt() % (nSamples - j));
>        swap(samples[nDim + j + i], samples[nDim * other + i]);
>      }
>    }
>
>   Footnote: While it's not necessary to permute the first dimension of
>   the LHS pattern, the implementation here does so anyway since making
>   the elements of the first dimension be randomly ordered means that LHS
>   patterns can be used in conjunction with sampling patterns from other
>   sources without danger of correlation between their sample points.
>
> So we learned what the code does. We also learned not to "optimize the
> code" by replacing it with Shuffle(). Further, we learned that we
> shouldn't "optimize the code" by removing the apparently useless
> shuffle of the first dimension. And, as a bonus, we get a figure.
> NONE OF THIS INFORMATION IS IN THE CODE ITSELF.
>

For "what the code does":

/* inline random, total, in-place matrix permutation - contrast Shuffle() */
...code...

The first line of commentary is totally redundant, so it is a waste of time
to read both it and the code.  As for what not to "optimize": if none of
the conclusions you draw are in the code, they're not in the commentary,
either.  Replacing the code with Shuffle would change the meaning from
total to partial permutation, so it would not be an optimization.  Ditto
for replacing it with Shuffle.  But the explanation of the difference
between this code and Shuffle is unhelpful to me - what does "[the Shuffle]
routine does one permutation, keeping all nDim sample points in each sample
together" mean?  I'd have to read that code to find out, so the commentary
has just wasted my time.   As for the permutation of the first dimension,
here the commentary is bad again - first it says it is not necessary, then
it explains that it is necessary if you want to use it for a specific
purpose.  As for the figure, I assume the book has some kind of graphic.  I
don't think I need a graphic to understand the code - it's a simple
permutation.

So for me at least, this example counts against rather than for the point
that (I assume) you want to make.  The point I will make is not that
documentation is inherently evil - far from it - but merely that
explanatory prose is not a *necesssary* condition of readable code.  And it
often makes things worse, as in this case.


>
> In addition, this code lives in an organizing structure. It is
> in Chapter 7: Sampling and Reconstruction
>      Section 7.3: Stratified Samples
>
>
> Heck, it is only 4 lines of C++. Why bother? *I* can read C++.  I can
> even reverse engineer it (probably by inventing the diagram in Figure
> 2.7 on a napkin). Maybe it lives in the src/SamRecon/StratSam, which is
> all the organization necessary. :-)  But I can't reverse engineer the
> important information in either paragraph of text.
>
> For comparison, refer back to the multi-page Java code I posted
> from the Clojure core. As a maintenance programmer, which would you
> rather maintain?
>

Really?  What's the point of comparing 4 lines of C++ and multiple pages of
Java?  I can tell you I would rather maintain the four lines of C++ without
the largely useless commentary.  I would also rather maintain a
(well-written) plain Pascal version of "Printing the primes" than the LP
version Knuth uses in his paper on LP (a web search will turn up a preprint
copy).

... snip ...

Languages come into fashion all the time. Almost all of them disappear.
> Axiom and Clojure are worthwhile efforts. We really need a mindset that
> extends into the future, communicating with the maintainers.
>

Dunno anything about Axiom, I'm afraid.  As for the future, I think it is
best served by doing our best to write clear *code* now.  You mentioned
Axiom has a 30 year timeline.  I won't be surprised if humans do relatively
little hands-on coding (or code reading) by then.  Between AI and automated
reasoning (for which the commentary part of LP is irrelevant) I expect the
number of programmer jobs to shrink drastically by then.

In any case, I wish you luck with your Clojure internals project.  If XML
doesn't give you the hives check out
https://github.com/mobileink/xsl.clj-ext - I think it could be used to good
effect to document the APIs, if not the internals, by example.

-Gregg

--f46d043be1c4d0020c04f9f9a323
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Howdy Tim,<br><div><div class=3D"gmail_extra"><br><br><div=
 class=3D"gmail_quote">On Thu, May 22, 2014 at 1:16 AM, u1204 <span dir=3D"=
ltr">&lt;<a href=3D"mailto:daly@axiom-developer.org" target=3D"_blank">daly=
@axiom-developer.org</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">Gregg and Gary,<br>
<br>
I understand where you are coming from. Indeed, Maturana [0] is on your<br>
side of the debate. Since even the philosophers can&#39;t agree, I doubt we=
<br>
will find a common ground.<br></blockquote><div><br></div><div>Ah, but phil=
osophers never agree.=C2=A0 Disagreement is part of their job description.=
=C2=A0 Why should programmers be any different?<br></div><div>=C2=A0</div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">

<br>
Unfortunately, I&#39;ve decided to take on the task of documenting the<br>
Clojure internals because, yaknow, *I* don&#39;t feel I understand somethin=
g<br>
until I know what the hardware does; consider this a flaw in my<br>
personality :-)</blockquote><div><br></div><div class=3D"">I suffer from a =
similar malady, which compels me to continually rewrite other peoples code,=
 since, gee whiz, &quot;foo&quot; is not quite the perfect name for that da=
rn variable, &quot;bar&quot; would be just slightly better, and on and on.=
=C2=A0 You can see why I prefer code to commentary.<br>
...<br>&gt;&gt;<br>
&gt;&gt; 1. I think that Gregg Reynolds and I agree on a lot, but I would a=
dd to<br>
&gt;&gt; his remarks that there is almost always a human audience for sourc=
e code,<br>
&gt;&gt; as well as the compiler/interpreter. =C2=A0Sometimes, the audience=
 is just the<br>
&gt;&gt; originally programmer, perhaps at a later date. =C2=A0(If I missed=
 something,<br>
&gt;&gt; Gregg, sorry, but I don&#39;t think you disagree, anyway.)<br>
&gt;&gt;<br>
&gt;<br>
&gt;I agree; whoever writes the code automatically forms an &quot;audience&=
quot; of one.<br>
&gt;I guess I would say &quot;reader/responder&quot;.<br>
<br>
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex">Hmmm. Common Lisp i=
s about 25 years old. Assume Clojure lives that long.<br>
What are the odds that the original authors will be maintaining the<br>
code? Will the code still be &quot;an audience of one&quot;? Are you sure t=
hat&#39;s<br>
a worthwhile goal?<br></blockquote><div><br></div><div>I think you may have=
 misunderstood me (dunno about Gary): my point is that even one-off code th=
at gets discarded immediately has a human reader, namely the author.=C2=A0 =
A statement of (minimal) fact, not a goal.<br>
</div><br>...<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=C2=A0 =C2=A0Sophisticated Lisp programmers use macros A LOT. </blockquote>=
<div><br></div><div>That&#39;s because they are language designers, and the=
y know it.<br></div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex">

=C2=A0 =C2=A0expanding into macros expanding into macros. Quick, what does =
the<br>
=C2=A0 =C2=A0spadcall macro do?<br></blockquote><div><br></div><div>HCF?<br=
></div><br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"=
">
&gt;Exactly. =C2=A0Conclusion: it&#39;s hard, maybe impossible, to generali=
ze about what<br>
&gt;all code should look like. =C2=A0Maybe it&#39;s essentially pluralistic=
.<br>
<br>
</div>Yes, it is hard to generalize about what all code should look like. B=
ut<br>
it is not hard to generalize that reading natural language explanations<br>
is faster, more accurate, and a lot easier than reverse-engineering<br>
code.</blockquote><div><br></div><div>Whoa Nelly!=C2=A0 I don&#39;t agree w=
ith that at all, either in principle or by experience.=C2=A0 Well, ok, you&=
#39;ve rigged the game.=C2=A0 Easier than &quot;reverse-engineering code&qu=
ot; - what does that mean?=C2=A0 I guess you mean reading well-written natu=
ral language explanations is faster etc. than reading badly written code - =
but so what?=C2=A0 It&#39;s not a meaningful comparison.=C2=A0 Would you ta=
ke a comparison between a sample of well-written code and a sample badly wr=
itten LP as evidence against LP?=C2=A0 I would not.=C2=A0 To me the questio=
n is whether well-written natural language explanation adds anything of sub=
stance to well-written code.<br>
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> I=
t is MUCH easier to understand Greg Humphrey&#39;s rendering code<br>
than it is to understand the Clojure internals.<br></blockquote><div><br></=
div><div>Ok, but I don&#39;t see how exhibiting a piece of transparent code=
 next to a piece of opaque code demonstrates anything.<br></div><div>=C2=A0=
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Consider a randomly chosen paragraph from Physically Based Rendering<br>
(p356):<br>
<br>
=C2=A0 To do the permutation, this function loops over the samples, randoml=
y<br>
=C2=A0 permuting the sample points in one dimension at a time. Note that th=
is<br>
=C2=A0 is a different permutation than the earlier Shuffle() routine: that<=
br>
=C2=A0 routine does one permutation, keeping all nDim sample points in each=
<br>
=C2=A0 sample together, while here nDim separate permutations of a single<b=
r>
=C2=A0 dimension at a time are done. (Figure 7.21)<br>
<br>
=C2=A0 =C2=A0for (uint32_t i =3D 0; i &lt; nDim; ++1) {<br>
=C2=A0 =C2=A0 =C2=A0for (uint32_t j =3D 0; j &lt; nSamples; ++j) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0uint32_t other =3D j + (rng.RandomUInt() % (nSam=
ples - j));<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0swap(samples[nDim + j + i], samples[nDim * other=
 + i]);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0}<br>
<br>
=C2=A0 Footnote: While it&#39;s not necessary to permute the first dimensio=
n of<br>
=C2=A0 the LHS pattern, the implementation here does so anyway since making=
<br>
=C2=A0 the elements of the first dimension be randomly ordered means that L=
HS<br>
=C2=A0 patterns can be used in conjunction with sampling patterns from othe=
r<br>
=C2=A0 sources without danger of correlation between their sample points.<b=
r>
<br>
So we learned what the code does. We also learned not to &quot;optimize the=
<br>
code&quot; by replacing it with Shuffle(). Further, we learned that we<br>
shouldn&#39;t &quot;optimize the code&quot; by removing the apparently usel=
ess<br>
shuffle of the first dimension. And, as a bonus, we get a figure.<br>
NONE OF THIS INFORMATION IS IN THE CODE ITSELF.<br></blockquote><br>For &qu=
ot;what the code does&quot;:<br></div><div class=3D"gmail_quote"><div><br><=
/div><div>/* inline random, total, in-place matrix permutation - contrast S=
huffle() */<br>
</div><div>...code...<br><br></div><div>The first line of commentary is tot=
ally redundant, so it is a waste of time to read both it and the code.=C2=
=A0 As for what not to &quot;optimize&quot;: if none of the conclusions you=
 draw are in the code, they&#39;re not in the commentary, either.=C2=A0 Rep=
lacing the code with Shuffle would change the meaning from total to partial=
 permutation, so it would not be an optimization.=C2=A0 Ditto for replacing=
 it with Shuffle.=C2=A0 But the explanation of the difference between this =
code and Shuffle is unhelpful to me - what does &quot;[the Shuffle] routine=
 does one permutation, keeping all nDim sample points in each sample togeth=
er&quot; mean?=C2=A0 I&#39;d have to read that code to find out, so the com=
mentary has just wasted my time. =C2=A0 As for the permutation of the first=
 dimension, here the commentary is bad again - first it says it is not nece=
ssary, then it explains that it is necessary if you want to use it for a sp=
ecific purpose.=C2=A0 As for the figure, I assume the book has some kind of=
 graphic.=C2=A0 I don&#39;t think I need a graphic to understand the code -=
 it&#39;s a simple permutation.<br>
<br></div><div>So for me at least, this example counts against rather than =
for the point that (I assume) you want to make.=C2=A0 The point I will make=
 is not that documentation is inherently evil - far from it - but merely th=
at explanatory prose is not a *necesssary* condition of readable code.=C2=
=A0 And it often makes things worse, as in this case.<br>
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
In addition, this code lives in an organizing structure. It is<br>
in Chapter 7: Sampling and Reconstruction<br>
=C2=A0 =C2=A0 =C2=A0Section 7.3: Stratified Samples<br>
<br>
<br>
Heck, it is only 4 lines of C++. Why bother? *I* can read C++. =C2=A0I can<=
br>
even reverse engineer it (probably by inventing the diagram in Figure<br>
2.7 on a napkin). Maybe it lives in the src/SamRecon/StratSam, which is<br>
all the organization necessary. :-) =C2=A0But I can&#39;t reverse engineer =
the<br>
important information in either paragraph of text.<br>
<br>
For comparison, refer back to the multi-page Java code I posted<br>
from the Clojure core. As a maintenance programmer, which would you<br>
rather maintain?<br></blockquote><div><br></div><div>Really?=C2=A0 What&#39=
;s the point of comparing 4 lines of C++ and multiple pages of Java?=C2=A0 =
I can tell you I would rather maintain the four lines of C++ without the la=
rgely useless commentary.=C2=A0 I would also rather maintain a (well-writte=
n) plain Pascal version of &quot;Printing the primes&quot; than the LP vers=
ion Knuth uses in his paper on LP (a web search will turn up a preprint cop=
y).<br>
</div><div>=C2=A0<br></div><div>... snip ...<br><br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">
Languages come into fashion all the time. Almost all of them disappear.<br>
Axiom and Clojure are worthwhile efforts. We really need a mindset that<br>
extends into the future, communicating with the maintainers.<br></blockquot=
e><div><br></div><div>Dunno anything about Axiom, I&#39;m afraid.=C2=A0 As =
for the future, I think it is best served by doing our best to write clear =
*code* now.=C2=A0 You mentioned Axiom has a 30 year timeline.=C2=A0 I won&#=
39;t be surprised if humans do relatively little hands-on coding (or code r=
eading) by then.=C2=A0 Between AI and automated reasoning (for which the co=
mmentary part of LP is irrelevant) I expect the number of programmer jobs t=
o shrink drastically by then.<br>
<br></div><div>In any case, I wish you luck with your Clojure internals pro=
ject.=C2=A0 If XML doesn&#39;t give you the hives check out <a href=3D"http=
s://github.com/mobileink/xsl.clj-ext">https://github.com/mobileink/xsl.clj-=
ext</a> - I think it could be used to good effect to document the APIs, if =
not the internals, by example.<br>
</div><div><br></div><div>-Gregg<br></div></div></div></div></div>

--f46d043be1c4d0020c04f9f9a323--


From MAILER-DAEMON Thu May 22 05:40:43 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnPUQ-0004Lu-JS
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 05:40:42 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:53546)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WnPUJ-0004Lh-8W
	for axiom-developer@nongnu.org; Thu, 22 May 2014 05:40:41 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WnPUD-00057l-1x
	for axiom-developer@nongnu.org; Thu, 22 May 2014 05:40:35 -0400
Received: from mo6-p00-ob.smtp.rzone.de ([2a01:238:20a:202:5300::9]:49162)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WnPUC-000578-OZ
	for axiom-developer@nongnu.org; Thu, 22 May 2014 05:40:28 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1400751625; l=434;
	s=domk; d=hemmecke.org;
	h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:
	Subject:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH;
	bh=rAmn6iFGVshx+eHkhQKdH6/AMLw=;
	b=ZzRPBRSUpCoLlk5CG8PoqAEbIiVQZROonYzddfC+VfA5OLhblcGVdXyRPVt6MsGGO0E
	0i5m23VVaMRyiwHs7e+/dXM34X8s8FhNADW6V4baHHZwStFZctQSvKoTtLCPx6NAspqhx
	wyrlaP8kF4Bj1qOsnviLzluD9ff6Wg90MFg=
X-RZG-AUTH: :Pm0Ic2CgfvKqpyys4bXs6bamDO4KmmoRsZ13hlmoEk5RYEk+icxFp+pk/v/tAqQ=
X-RZG-CLASS-ID: mo00
Received: from [193.170.38.230] (trex.risc.uni-linz.ac.at [193.170.38.230])
	by smtp.strato.de (RZmta 34.2 AUTH) with ESMTPSA id Q01777q4M9ePkTE
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client did not present a certificate)
	for <axiom-developer@nongnu.org>;
	Thu, 22 May 2014 11:40:25 +0200 (CEST)
Message-ID: <537DC608.9030300@hemmecke.org>
Date: Thu, 22 May 2014 11:40:24 +0200
From: Ralf Hemmecke <ralf@hemmecke.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>	<87k39e72y2.fsf@axiom-developer.org>
	<CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>
In-Reply-To: <CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a01:238:20a:202:5300::9
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 09:40:41 -0000

On 05/22/2014 11:21 AM, Gregg Reynolds wrote:
> I can tell you I would rather maintain the four lines of C++ without
> the largely useless commentary.

That's a simple AXIOM program, but I'm sure one can easily translate it
into any programming language.

foo(a: Integer, b: Integer): Integer ==
    if a > 0 then
        if a > b then return foo(b,a)
        return foo(b-a,a))
    return b

Question: Does the program have a bug?

Ralf



From MAILER-DAEMON Thu May 22 09:29:29 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnT3p-00048m-SN
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 09:29:29 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:55420)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <stf@unife.it>) id 1WnT3j-00048b-Jp
	for axiom-developer@nongnu.org; Thu, 22 May 2014 09:29:29 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <stf@unife.it>) id 1WnT3e-0003nh-5b
	for axiom-developer@nongnu.org; Thu, 22 May 2014 09:29:23 -0400
Received: from mail-ee0-x22e.google.com ([2a00:1450:4013:c00::22e]:62128)
	by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <stf@unife.it>)
	id 1WnT3d-0003na-Qn
	for axiom-developer@nongnu.org; Thu, 22 May 2014 09:29:18 -0400
Received: by mail-ee0-f46.google.com with SMTP id t10so2658726eei.19
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 06:29:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unife.it; s=google;
	h=from:date:reply-to:to:cc:subject:in-reply-to:message-id:references
	:user-agent:organization:mime-version:content-type;
	bh=Bfrb+atRjnFpeMlWiqktj4mI3yRw3Eb1GwgGeHAJeJI=;
	b=KqOdrlcyooDFcMkdGqR525pgTQe8Dj2YvHZGzlFSHPPVd08SIcEwlWcRlBN5XYNYNc
	t+TFb6S/zKTExoqhI2gN7TuA96KgyMObUVUbY4QXACZ4LXFsR5AEIDWyw9XNG9nvUUXf
	JYKIVhCEWO8NLLOL68Jsn53WWsj/au5qOX1Lg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:from:date:reply-to:to:cc:subject:in-reply-to
	:message-id:references:user-agent:organization:mime-version
	:content-type;
	bh=Bfrb+atRjnFpeMlWiqktj4mI3yRw3Eb1GwgGeHAJeJI=;
	b=X/MBVCvqLDwKuYI8Et6X6EiHuWzrWGZ5WvbZ1y+nXaCPBs22zvDdqbddv9muAkwCyl
	CvirZGIjzCj/YTFPbd1YzYxW+IQc165j2kKZ7+TwU81T9CoGscg0uT1ilSqy9IrtlBjK
	2hmZTeDZe24TOzZTefAbkPRRAb9GdLoVTPGmvzFbpeLLY1iUyolGcw3xRWVp9J5mS/xS
	VNfGnw7AAXb+Q25ZdMbh3IAkda5XJ7c8yscDeYr80zDEG9LH2TYALs1tBp4XxhJSgX7I
	tNRyJ4Dqfz0WmEKbiJx5VO0m3at4v7NMHqS2h+xKko+Au8ZopXlDdGiu+7nvh967Doyx
	c/2w==
X-Gm-Message-State: ALoCoQnPrZ+VT3dmnnJTEQL8DPCZ2HjFeH5sqLXEnHguq2FLTcpmryJMYxEactOcXL8itljQnf0B
X-Received: by 10.14.95.129 with SMTP id p1mr3551003eef.102.1400765356115;
	Thu, 22 May 2014 06:29:16 -0700 (PDT)
Received: from [10.10.10.23] ([151.42.231.204])
	by mx.google.com with ESMTPSA id z48sm516960eel.27.2014.05.22.06.29.14
	for <axiom-developer@nongnu.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 22 May 2014 06:29:15 -0700 (PDT)
From: "Fabio S." <stf@unife.it>
X-Google-Original-From: "Fabio S." <f.stumbo@unife.it>
Date: Thu, 22 May 2014 15:29:11 +0200 (CEST)
To: axiom-developer@nongnu.org
cc: axiom-developer@nongnu.org
In-Reply-To: <537DC608.9030300@hemmecke.org>
Message-ID: <alpine.DEB.2.10.1405221508150.3717@coccobill>
References: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>
	<87k39e72y2.fsf@axiom-developer.org>
	<CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>
	<537DC608.9030300@hemmecke.org>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
Organization: =?ISO-8859-15?Q?Universit=E0_di_Ferrara?=
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a00:1450:4013:c00::22e
Subject: Re: [Axiom-developer] Heidegger, literate programming,
 and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: axiom-developer@nongnu.org
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 13:29:29 -0000

>> I can tell you I would rather maintain the four lines of C++ without
>> the largely useless commentary.
>
> That's a simple AXIOM program, but I'm sure one can easily translate it
> into any programming language.
>
> foo(a: Integer, b: Integer): Integer ==
>    if a > 0 then
>        if a > b then return foo(b,a)
>        return foo(b-a,a))
>    return b
>
> Question: Does the program have a bug?
>
> Ralf

Yes: there is an extra parenthesis in the fourth line... :)

Which, BTW, I discovered as soon as I pasted it in a file since 
it was error-highlighted by the syntax highlighting in vim :))

A part from this, I think the example points out that perhaps we can make 
a difference between source code of axiom (as a piece of software) and 
implementation of (higher) mathematics: maybe the need for a 
complete and thorough documentation can be considered of different 
importance in the two cases.

Fabio


From MAILER-DAEMON Thu May 22 09:53:35 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnTR9-0000em-TR
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 09:53:35 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:33373)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WnTR1-0000eD-U1
	for axiom-developer@nongnu.org; Thu, 22 May 2014 09:53:33 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WnTQv-0005Tz-MV
	for axiom-developer@nongnu.org; Thu, 22 May 2014 09:53:27 -0400
Received: from mo6-p00-ob.smtp.rzone.de ([2a01:238:20a:202:5300::11]:25175)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ralf@hemmecke.org>) id 1WnTQv-0005TV-BK
	for axiom-developer@nongnu.org; Thu, 22 May 2014 09:53:21 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1400766799; l=1298;
	s=domk; d=hemmecke.org;
	h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:
	Subject:CC:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH;
	bh=cXGNd+XwIV5UDQlthtzm/l0Cxno=;
	b=p/qcYeFrZlpNX4VW3UPiWUyLAHiv/OrI4Oav8CCxtaBh8jpJxR5fG9cKByvYIVdHJu9
	b9bTzzHADdX5Fs+roeCeIdEFewxbBBC5B2lN/3+Cdo8r9OVFnKip0ODYp3lXgn2s1jJ5Q
	FRXBEv1YGGh0dugqN4f2c2RKqCyv5ClowY8=
X-RZG-AUTH: :Pm0Ic2CgfvKqpyys4bXs6bamDO4KmmoRsZ13hlmoEk5RYEk+icxFp+pk/v/tAqQ=
X-RZG-CLASS-ID: mo00
Received: from [193.170.38.230] (trex.risc.uni-linz.ac.at [193.170.38.230])
	by smtp.strato.de (RZmta 34.2 AUTH) with ESMTPSA id g0494cq4MDeBkuA
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client did not present a certificate);
	Thu, 22 May 2014 15:40:11 +0200 (CEST)
Message-ID: <537DFE3B.10101@hemmecke.org>
Date: Thu, 22 May 2014 15:40:11 +0200
From: Ralf Hemmecke <ralf@hemmecke.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>	<87k39e72y2.fsf@axiom-developer.org>	<CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>	<537DC608.9030300@hemmecke.org>
	<alpine.DEB.2.10.1405221508150.3717@coccobill>
In-Reply-To: <alpine.DEB.2.10.1405221508150.3717@coccobill>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a01:238:20a:202:5300::11
Cc: marshall@logical.net, dev@mobileink.com
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 13:53:34 -0000

On 05/22/2014 03:29 PM, Fabio S. wrote:
>>> I can tell you I would rather maintain the four lines of C++ without
>>> the largely useless commentary.
>>
>> That's a simple AXIOM program, but I'm sure one can easily translate it
>> into any programming language.
>>
>> foo(a: Integer, b: Integer): Integer ==
>>    if a > 0 then
>>        if a > b then return foo(b,a)
>>        return foo(b-a,a))
>>    return b
>>
>> Question: Does the program have a bug?
>>
>> Ralf
> 
> Yes: there is an extra parenthesis in the fourth line... :)
> 
> Which, BTW, I discovered as soon as I pasted it in a file since it was
> error-highlighted by the syntax highlighting in vim :))

Well, you caught me, so I try again. ;-)
And... the problem is be no means specific to AXIOM.

foo(a: Integer, b: Integer): Integer ==
    if a > 0 then
        if a > b then return foo(b,a)
        return foo(b-a,a)
    return b

Question: Does the program have a bug?

> A part from this, I think the example points out that perhaps we can
> make a difference between source code of axiom (as a piece of software)
> and implementation of (higher) mathematics: maybe the need for a
> complete and thorough documentation can be considered of different
> importance in the two cases.

Sorry, I don't get the difference.

> 
> Fabio




From MAILER-DAEMON Thu May 22 12:00:43 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnVQB-0004Q6-25
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 12:00:43 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:40081)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dastew@sympatico.ca>) id 1WnVQ4-0004G3-B0
	for axiom-developer@nongnu.org; Thu, 22 May 2014 12:00:41 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <dastew@sympatico.ca>) id 1WnVPz-0002Rg-3h
	for axiom-developer@nongnu.org; Thu, 22 May 2014 12:00:36 -0400
Received: from bay0-omc2-s26.bay0.hotmail.com ([65.54.190.101]:1892)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <dastew@sympatico.ca>) id 1WnVPy-0002RW-Ql
	for axiom-developer@nongnu.org; Thu, 22 May 2014 12:00:31 -0400
Received: from BAY179-W19 ([65.54.190.123]) by bay0-omc2-s26.bay0.hotmail.com
	with Microsoft SMTPSVC(6.0.3790.4675); 
	Thu, 22 May 2014 09:00:28 -0700
X-TMN: [o9NBL19+jTPPmQZ+g9/N0UxmQoTOZiM3]
X-Originating-Email: [dastew@sympatico.ca]
Message-ID: <BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
Content-Type: multipart/alternative;
	boundary="_7bcb012f-4217-42b8-b2cd-efb89ccc5371_"
From: <dastew@sympatico.ca>
To: Ralf Hemmecke <ralf@hemmecke.org>, "axiom-developer@nongnu.org"
	<axiom-developer@nongnu.org>
Date: Thu, 22 May 2014 16:00:28 +0000
Importance: Normal
In-Reply-To: <537DFE3B.10101@hemmecke.org>
References: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>
	<87k39e72y2.fsf@axiom-developer.org>
	<CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>
	<537DC608.9030300@hemmecke.org>,
	<alpine.DEB.2.10.1405221508150.3717@coccobill>,
	<537DFE3B.10101@hemmecke.org>
MIME-Version: 1.0
X-OriginalArrivalTime: 22 May 2014 16:00:28.0877 (UTC)
	FILETIME=[F3AE47D0:01CF75D6]
X-detected-operating-system: by eggs.gnu.org: Windows XP
X-Received-From: 65.54.190.101
Cc: "marshall@logical.net" <marshall@logical.net>,
	"dev@mobileink.com" <dev@mobileink.com>
Subject: Re: [Axiom-developer] Heidegger, literate programming,
 and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 16:00:41 -0000

--_7bcb012f-4217-42b8-b2cd-efb89ccc5371_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable



> Date: Thu=2C 22 May 2014 15:40:11 +0200
> From: ralf@hemmecke.org
> To: axiom-developer@nongnu.org
> CC: marshall@logical.net=3B dev@mobileink.com
> Subject: Re: [Axiom-developer] Heidegger=2C literate programming=2C	and c=
ommunication
>=20
> On 05/22/2014 03:29 PM=2C Fabio S. wrote:
> >>> I can tell you I would rather maintain the four lines of C++ without
> >>> the largely useless commentary.
> >>
> >> That's a simple AXIOM program=2C but I'm sure one can easily translate=
 it
> >> into any programming language.
> >>
> >> foo(a: Integer=2C b: Integer): Integer =3D=3D
> >>    if a > 0 then
> >>        if a > b then return foo(b=2Ca)
> >>        return foo(b-a=2Ca))
> >>    return b
> >>
> >> Question: Does the program have a bug?
> >>
> >> Ralf
> >=20
> > Yes: there is an extra parenthesis in the fourth line... :)
> >=20
> > Which=2C BTW=2C I discovered as soon as I pasted it in a file since it =
was
> > error-highlighted by the syntax highlighting in vim :))
>=20
> Well=2C you caught me=2C so I try again. =3B-)
> And... the problem is be no means specific to AXIOM.
>=20
> foo(a: Integer=2C b: Integer): Integer =3D=3D
>     if a > 0 then
>         if a > b then return foo(b=2Ca)
>         return foo(b-a=2Ca)
>     return b
>=20
> Question: Does the program have a bug?
>=20

I think that your question is related to the fact that if we don't know the=
 purpose of a function then we cannot know if there is a bug in the functio=
n.And LP would explain the purpose of the function.
 I am 100% in agreement with LP.
when I was teaching C C++ I was always repeating to my students that when y=
ou comment a line or section of code  "don't tell me the this code copies t=
he value in y to x (x=3Dy)  but tell me why that section of code is there."
 I think that one of the posters is really missing the point of proper docu=
mentation=2C when he said that the comments are useless because he can alwa=
ys read the code. The comments are not there to explain what the code does =
on that low of a level=2C but why is it there and what is its overall purpo=
se=2C and why I did it that way and not some other way.

Just my 2 cents worth.
PS I have many chunks of code that I wrote 20-30 years ago and I have no id=
ea why and what the code was written for!!!! even after reading each line o=
f the code!!!!
 		 	   		  =

--_7bcb012f-4217-42b8-b2cd-efb89ccc5371_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<style><!--
.hmmessage P
{
margin:0px=3B
padding:0px
}
body.hmmessage
{
font-size: 12pt=3B
font-family:Calibri
}
--></style></head>
<body class=3D'hmmessage'><div dir=3D'ltr'><br><br><div>&gt=3B Date: Thu=2C=
 22 May 2014 15:40:11 +0200<br>&gt=3B From: ralf@hemmecke.org<br>&gt=3B To:=
 axiom-developer@nongnu.org<br>&gt=3B CC: marshall@logical.net=3B dev@mobil=
eink.com<br>&gt=3B Subject: Re: [Axiom-developer] Heidegger=2C literate pro=
gramming=2C	and communication<br>&gt=3B <br>&gt=3B On 05/22/2014 03:29 PM=
=2C Fabio S. wrote:<br>&gt=3B &gt=3B&gt=3B&gt=3B I can tell you I would rat=
her maintain the four lines of C++ without<br>&gt=3B &gt=3B&gt=3B&gt=3B the=
 largely useless commentary.<br>&gt=3B &gt=3B&gt=3B<br>&gt=3B &gt=3B&gt=3B =
That's a simple AXIOM program=2C but I'm sure one can easily translate it<b=
r>&gt=3B &gt=3B&gt=3B into any programming language.<br>&gt=3B &gt=3B&gt=3B=
<br>&gt=3B &gt=3B&gt=3B foo(a: Integer=2C b: Integer): Integer =3D=3D<br>&g=
t=3B &gt=3B&gt=3B    if a &gt=3B 0 then<br>&gt=3B &gt=3B&gt=3B        if a =
&gt=3B b then return foo(b=2Ca)<br>&gt=3B &gt=3B&gt=3B        return foo(b-=
a=2Ca))<br>&gt=3B &gt=3B&gt=3B    return b<br>&gt=3B &gt=3B&gt=3B<br>&gt=3B=
 &gt=3B&gt=3B Question: Does the program have a bug?<br>&gt=3B &gt=3B&gt=3B=
<br>&gt=3B &gt=3B&gt=3B Ralf<br>&gt=3B &gt=3B <br>&gt=3B &gt=3B Yes: there =
is an extra parenthesis in the fourth line... :)<br>&gt=3B &gt=3B <br>&gt=
=3B &gt=3B Which=2C BTW=2C I discovered as soon as I pasted it in a file si=
nce it was<br>&gt=3B &gt=3B error-highlighted by the syntax highlighting in=
 vim :))<br>&gt=3B <br>&gt=3B Well=2C you caught me=2C so I try again. =3B-=
)<br>&gt=3B And... the problem is be no means specific to AXIOM.<br>&gt=3B =
<br>&gt=3B foo(a: Integer=2C b: Integer): Integer =3D=3D<br>&gt=3B     if a=
 &gt=3B 0 then<br>&gt=3B         if a &gt=3B b then return foo(b=2Ca)<br>&g=
t=3B         return foo(b-a=2Ca)<br>&gt=3B     return b<br>&gt=3B <br>&gt=
=3B Question: Does the program have a bug?<br>&gt=3B&nbsp=3B</div><div><br>=
</div><div><br></div><div>I think that your question is related to the fact=
 that if we don't know the purpose of a function then we cannot know if the=
re is a bug in the function.</div><div>And LP would explain the purpose of =
the function.</div><div><br></div><div>&nbsp=3BI am 100% in agreement with =
LP.</div><div><br></div><div>when I was teaching C C++ I was always repeati=
ng to my students that when you comment a line or section of code &nbsp=3B"=
don't tell me the this code copies the value in y to x (x=3Dy) &nbsp=3Bbut =
tell me why that section of code is there."</div><div><br></div><div>&nbsp=
=3BI think that one of the posters is really missing the point of proper do=
cumentation=2C when he said that the comments are useless because he can al=
ways read the code. The comments are not there to explain what the code doe=
s on that low of a level=2C but why is it there and what is its overall pur=
pose=2C and why I did it that way and not some other way.<br></div><div><br=
></div><div>Just my 2 cents worth.</div><div><br></div><div>PS I have many =
chunks of code that I wrote 20-30 years ago and I have no idea why and what=
 the code was written for!!!! even after reading each line of the code!!!!<=
/div><div><br></div> 		 	   		  </div></body>
</html>=

--_7bcb012f-4217-42b8-b2cd-efb89ccc5371_--


From MAILER-DAEMON Thu May 22 13:25:30 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnWkE-0007Nd-06
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 13:25:30 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:43501)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <stf@unife.it>) id 1WnWk6-0007NU-Td
	for axiom-developer@nongnu.org; Thu, 22 May 2014 13:25:28 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <stf@unife.it>) id 1WnWk1-0002jO-Ej
	for axiom-developer@nongnu.org; Thu, 22 May 2014 13:25:22 -0400
Received: from mail-ee0-x229.google.com ([2a00:1450:4013:c00::229]:51741)
	by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <stf@unife.it>)
	id 1WnWk1-0002j6-4K
	for axiom-developer@nongnu.org; Thu, 22 May 2014 13:25:17 -0400
Received: by mail-ee0-f41.google.com with SMTP id t10so2930007eei.28
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 10:25:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unife.it; s=google;
	h=from:date:reply-to:to:subject:in-reply-to:message-id:references
	:user-agent:organization:mime-version:content-type;
	bh=a00sr5qIVxLrj3+NXiyyEyTapd2uJDxDSMHLd991L+8=;
	b=KEVsDDzEt5RgV0CoXcYpKLyJNrr9uvFd5Vd1tmqPX5WrWPx2cDggbiL75pkNcURr1i
	yDlC/ojFzto1CyIxAwm7HeduNQ7BGy3W8ka3DIHtMXXoCtSHuG4E3AGRKe3f2ssqACOT
	MTojCbfAE4kcWyYMQBWVPY9To99iw+8azYC1c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:from:date:reply-to:to:subject:in-reply-to
	:message-id:references:user-agent:organization:mime-version
	:content-type;
	bh=a00sr5qIVxLrj3+NXiyyEyTapd2uJDxDSMHLd991L+8=;
	b=fVoDkS6NnLTh5Cka/o64gjUuUOd4lIvnjOQx8PG+aL0PtCeFtEptWD5PZblqoQJgv+
	eXZXmq5c9Uc/P/wPXJn1/uCH3sARZ1SHIw1udsENI5qPx0UxO4vhlJgGtcm6Zb9zXGyr
	I6csggDqmD6PG8ygMI70JISfGON8CpwvpXokqp07mRTWubTKU7+XJKqPuHHkZeKZziTd
	0ArTHpv+VIn1SBKGmV0A+UUnOZRkSGPM0ucC7T0M+LL4LcRJoUZQ16zSsRGsqyAPnpe0
	MiywVUOqpM0SLfcWVAfvxbIpRMxIbM4wpn2hOXwPBCOzmds4qjjiiEdsXZV82yDeEogZ
	Ki3w==
X-Gm-Message-State: ALoCoQnQZHb7t/5aMuhy82aO2IGvlbZ2e18T2DvsykGtgCphL0V/IsoX2pdMJinxvubtaKWxng8k
X-Received: by 10.14.104.200 with SMTP id i48mr236250eeg.24.1400779515897;
	Thu, 22 May 2014 10:25:15 -0700 (PDT)
Received: from [10.10.10.23] (adsl-ull-204-231.42-151.net24.it.
	[151.42.231.204])
	by mx.google.com with ESMTPSA id 44sm1877513eer.35.2014.05.22.10.25.14
	for <axiom-developer@nongnu.org>
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Thu, 22 May 2014 10:25:15 -0700 (PDT)
From: "Fabio S." <stf@unife.it>
X-Google-Original-From: "Fabio S." <f.stumbo@unife.it>
Date: Thu, 22 May 2014 19:25:13 +0200 (CEST)
To: axiom-developer@nongnu.org
In-Reply-To: <BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
Message-ID: <alpine.DEB.2.10.1405221838500.3717@coccobill>
References: <CAO40Min3w86aOt0_Zb8+VzWXpi9ez2VWsJ3mmoofmAPaEgOd0Q@mail.gmail.com>
	<87k39e72y2.fsf@axiom-developer.org>
	<CAO40MikAg4KVit7ztMcE1jAbwfWSxJBJn1vzWc-ViO1q8q3GJg@mail.gmail.com>
	<537DC608.9030300@hemmecke.org>,
	<alpine.DEB.2.10.1405221508150.3717@coccobill>, 
	<537DFE3B.10101@hemmecke.org>
	<BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
Organization: =?ISO-8859-15?Q?Universit=E0_di_Ferrara?=
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2a00:1450:4013:c00::229
Subject: Re: [Axiom-developer] Heidegger, literate programming,
 and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: axiom-developer@nongnu.org
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 17:25:28 -0000


...
>> And... the problem is be no means specific to AXIOM.
>>
>> foo(a: Integer, b: Integer): Integer ==
>>     if a > 0 then
>>         if a > b then return foo(b,a)
>>         return foo(b-a,a)
>>     return b
>>
>> Question: Does the program have a bug?
>>
>
> I think that your question is related to the fact that if we don't know 
> the purpose of a function then we cannot know if there is a bug in the 
> function.And LP would explain the purpose of the function.
...

My thought is that things are a little more complicated: you should 
explain both the purpose of the function and how it is implemented.

In this case, a little change in the "how" creates the problem: Ralf's 
function is clearly an implementation of the original (and 
inefficient) euclidean algorithm from the "Elements".
Yet it gives wrong results, since he changed deliberately domain and 
codomain; for example, if a<0 then simply foo(a,b)=b.

The point is that the proof in the Elements assumes that a,b are PI.
So to have a function without bugs either we need to change the domain to 
PIxPI or we need to add two auxiliary variables
c:=abs(a)
d:=abs(b)
and then we work with them.

This is what I meant when talking about documenting maths: it can look 
correct from a syntactic point of view and can compile correctly, yet the 
result can be wrong. If the underlying math is advanced, the debugging is 
complicated by the fact that not a lot of people have the necessary 
knowledge to track the function and find the error: if it is not well 
documented, probably nobody will do it.

> Just my 2 cents worth.

and these are just mine...

Fabio



From MAILER-DAEMON Thu May 22 13:37:16 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnWvc-0001DZ-72
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 13:37:16 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:45823)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnWvR-00013X-Q9
	for axiom-developer@nongnu.org; Thu, 22 May 2014 13:37:14 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnWvJ-0006ld-Cr
	for axiom-developer@nongnu.org; Thu, 22 May 2014 13:37:05 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:38860
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnWvJ-0006kG-6x
	for axiom-developer@nongnu.org; Thu, 22 May 2014 13:36:57 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4MHarFI031524;
	Thu, 22 May 2014 12:36:53 -0500
Received: by u1204 (Postfix, from userid 1000)
	id 1F29E686E9; Thu, 22 May 2014 13:35:57 -0400 (EDT)
From: Tim Daly <daly@axiom-developer.org>
To: Gregg Reynolds <dev@mobileink.com>
Message-Id: <20140522173600.1F29E686E9@u1204>
Date: Thu, 22 May 2014 13:35:57 -0400 (EDT)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org, clojure@googlegroups.com
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 17:37:14 -0000

Forward from Ralf Hemmecke:


On 05/22/2014 11:21 AM, Gregg Reynolds wrote:
> I can tell you I would rather maintain the four lines of C++ without
> the largely useless commentary.

That's a simple AXIOM program, but I'm sure one can easily translate it
into any programming language.

foo(a: Integer, b: Integer): Integer ==
    if a > 0 then
        if a > b then return foo(b,a)
        return foo(b-a,a))
    return b

Question: Does the program have a bug?

Ralf


From MAILER-DAEMON Thu May 22 14:47:53 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnY1x-0001lz-Dv
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 14:47:53 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:59738)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnY1o-0001l8-PN
	for axiom-developer@nongnu.org; Thu, 22 May 2014 14:47:52 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnY1h-0000Fh-9j
	for axiom-developer@nongnu.org; Thu, 22 May 2014 14:47:44 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:43343
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WnY1h-0000FS-3i
	for axiom-developer@nongnu.org; Thu, 22 May 2014 14:47:37 -0400
Received: from u1204 (dynamic-acs-72-23-235-203.zoominternet.net
	[72.23.235.203])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4MIlYFI031777;
	Thu, 22 May 2014 13:47:34 -0500
Received: by u1204 (Postfix, from userid 1000)
	id 9702A686E9; Thu, 22 May 2014 14:46:51 -0400 (EDT)
From: Tim Daly <daly@axiom-developer.org>
To: <dastew@sympatico.ca>
In-Reply-To: <BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
	(dastew@sympatico.ca)
Date: Thu, 22 May 2014 14:46:51 -0400
Message-ID: <87oaypfy78.fsf@axiom-developer.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org, clojure@googlegroups.com
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 18:47:52 -0000


>PS I have many chunks of code that I wrote 20-30 years ago and I have no
>idea why and what the code was written for!!!! even after reading each
>line of the code!!!!

This is what got me interested in literate programming. 

Axiom was written at IBM as "research code", mostly by people trying to
get a PhD. I wrote bits and pieces of the internals but didn't bother
to document anything, especially since I write "dirt simple code".

Fifteen years later I'm looking at my own code. I know what it does.
I can even tell you what bytes the compiler will lay down in memory.
I know the code is needed since the system fails if I remove it.

But I have no clue WHY I wrote it.

The person who wrote the code failed to communicate with the person
who maintains the code. I have the misfortune of being both people.

I understand the strong opposition to writing good documentation at any
level.  Especially when writing code; it just seems wasteful to "state
the obvious". 

One non-obvious side effect of doing literate programming is that the
code quality improves a LOT. As Bill Hart said:

    Another thing I've been enjoying lately is literate programming.
    Amazingly it turns out to be faster to write a literate program
    than an ordinary program because debugging takes almost no time.

I fear that we're going to have the same approach as the physicists.
"New theories get accepted when the previous generation dies out."

Fortunately statistics show that programmers retire into management
at age 35 so we won't have to wait that long. If there is any justice,
the managers will have to hire noobs to maintain code they wrote so
they get to listen to the noobs trash talk about their code. :-)

Tim Daly





From MAILER-DAEMON Thu May 22 15:19:03 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnYW7-0005HJ-8r
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 15:19:03 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:37117)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnYVz-0005Gq-39
	for axiom-developer@nongnu.org; Thu, 22 May 2014 15:19:02 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnYVr-0002tn-J1
	for axiom-developer@nongnu.org; Thu, 22 May 2014 15:18:55 -0400
Received: from mail-pa0-f61.google.com ([209.85.220.61]:57702)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnYVr-0002th-Ah
	for axiom-developer@nongnu.org; Thu, 22 May 2014 15:18:47 -0400
Received: by mail-pa0-f61.google.com with SMTP id ey11so963060pad.26
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 12:18:45 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=date:from:to:cc:message-id:in-reply-to:references:subject
	:mime-version:content-type;
	bh=M2PtFQEIwIbXQYlmB4BZEukTMbj+PTXOJiqn5EQDBMU=;
	b=XgOamQ7aQpCot8ilp9LHEaHcrs5VaNvmBQvtXTtvdq1Wuse1BAnw/a5uHYOkUBymJm
	dzgW6F0rd64nzV1g4YAiWD0aK013ywAD/csoIHYECrMxDAyhl/jYn+OktcziZYPuZxBa
	MVN2/9GL3/w9tz685RnKKYvMSO0GnpH30487HE1cpoWYjiHX0RipF599l2z6XViJfSF+
	hwMQ534oe8nu/+Fg+Nzos2YTxBnj7BA7Y7vAhNjnkIRBYqMdz2BILzJXB2bWEy6DC8sL
	jyZ+I0LgyV1gJqZvu2pp7ut3JEC1Ud900GYdvFbEV0VcWQJpFS3yQhpPWbiDGgT/9x9n
	2AFQ==
X-Received: by 10.140.101.111 with SMTP id t102mr1113973qge.5.1400786325828;
	Thu, 22 May 2014 12:18:45 -0700 (PDT)
X-Google-Doc-Id: b28d60627c3f8f21
X-Google-Web-Client: true
Date: Thu, 22 May 2014 12:18:44 -0700 (PDT)
From: Mars0i <marshall@logical.net>
To: clojure@googlegroups.com
Message-Id: <3dbbb65c-146c-449b-a48f-d00f53a6dd23@googlegroups.com>
In-Reply-To: <20140522173600.1F29E686E9@u1204>
References: <20140522173600.1F29E686E9@u1204>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_3265_22772169.1400786324875"
X-Google-Token: EJSb-ZsFXFm8XMGJvOQ0
X-Google-IP: 138.26.89.123
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 209.85.220.61
Cc: axiom-developer@nongnu.org, Gregg Reynolds <dev@mobileink.com>
Subject: Re: [Axiom-developer] Heidegger, literate programming,
	and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 19:19:02 -0000

------=_Part_3265_22772169.1400786324875
Content-Type: multipart/alternative; 
	boundary="----=_Part_3266_10006824.1400786324876"

------=_Part_3266_10006824.1400786324876
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Tim,

Your project of LP'ing the Clojure internals is not at all  inconsistent 
with my view.  That is code that would benefit from being widely 
understood, even by people who won't maintain it.  I learned a lot from 
reading the "Lions" book on an early version of Unix, even though I 
probably never even used hardware old enough to run it.  (On the other 
hand, I'm not sure that there should be documentation that explains the 
complexities of the chunking mechanism both at the definitions of `map` and 
`doseq`, for example.  That seems redundant.  Maybe LP software has 
convenient ways of dealing with that sort of issue, though.)

And I agree that won't can't know what code will live for 25 years, and 
what won't, and how many people will have to maintain the code.  So one 
approach is simply to assume that all code will live a long time and be 
maintained by many people, many of whom will be unfamiliar with the code.  
But that means that you waste a lot of time on code that gets put aside 
(for reasons other than lack of documentation).  

Yeah, there are tradeoffs.  We have to make our best judgments.

One option: Write with whatever documentation you think will help the 
code's forseen uses.  Then, if you discover later, that it needs better 
documentation, write it then.  That won't be as easy as writing it in the 
first place: In hindsight, it's less efficient, but it may be more 
efficient overall across all projects.  (i.e. one "faults in" the 
documentation: It's sometimes most efficient to allocate all of an 
executable's image and heap as soon it runs, but modern OSes instead often 
allocate memory only as needed, which, in hindsight, is less efficient, but 
overall, makes for a more efficient system.)

(I think I am the "Gary" mentioned above, although that isn't my name.  But 
I'm happy to take on that name in this discussion.)

-Gary

------=_Part_3266_10006824.1400786324876
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Tim,<br><br>Your project of LP'ing the Clojure internals i=
s not at all&nbsp; inconsistent with my view.&nbsp; That is code that would=
 benefit from being widely understood, even by people who won't maintain it=
.&nbsp; I learned a lot from reading the "Lions" book on an early version o=
f Unix, even though I probably never even used hardware old enough to run i=
t.&nbsp; (On the other hand, I'm not sure that there should be documentatio=
n that explains the complexities of the chunking mechanism both at the defi=
nitions of `map` and `doseq`, for example.&nbsp; That seems redundant.&nbsp=
; Maybe LP software has convenient ways of dealing with that sort of issue,=
 though.)<br><br>And I agree that won't can't know what code will live for =
25 years, and what won't, and how many people will have to maintain the cod=
e.&nbsp; So one approach is simply to assume that all code will live a long=
 time and be maintained by many people, many of whom will be unfamiliar wit=
h the code.&nbsp; But that means that you waste a lot of time on code that =
gets put aside (for reasons other than lack of documentation).&nbsp; <br><b=
r>Yeah, there are tradeoffs.&nbsp; We have to make our best judgments.<br><=
br>One option: Write with whatever documentation you think will help the co=
de's forseen uses.&nbsp; Then, if you discover later, that it needs better =
documentation, write it then.&nbsp; That won't be as easy as writing it in =
the first place: In hindsight, it's less efficient, but it may be more effi=
cient overall across all projects.&nbsp; (i.e. one "faults in" the document=
ation: It's sometimes most efficient to allocate all of an executable's ima=
ge and heap as soon it runs, but modern OSes instead often allocate memory =
only as needed, which, in hindsight, is less efficient, but overall, makes =
for a more efficient system.)<br><br>(I think I am the "Gary" mentioned abo=
ve, although that isn't my name.&nbsp; But I'm happy to take on that name i=
n this discussion.)<br><br>-Gary<br></div>
------=_Part_3266_10006824.1400786324876--

------=_Part_3265_22772169.1400786324875--


From MAILER-DAEMON Thu May 22 18:21:02 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WnbME-0000R8-F5
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 18:21:02 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:47730)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnbM6-0000Ns-PN
	for axiom-developer@nongnu.org; Thu, 22 May 2014 18:21:00 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnbLw-0005Fe-Nz
	for axiom-developer@nongnu.org; Thu, 22 May 2014 18:20:54 -0400
Received: from mail-ig0-f185.google.com ([209.85.213.185]:50117)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <marshall@logical.net>) id 1WnbLw-0005FE-Ho
	for axiom-developer@nongnu.org; Thu, 22 May 2014 18:20:44 -0400
Received: by mail-ig0-f185.google.com with SMTP id h18so379205igc.2
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 15:20:40 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=date:from:to:cc:message-id:in-reply-to:references:subject
	:mime-version:content-type;
	bh=2EEg4Jhz1morNFM5wVqzIRV4oNAAggQQFPBd3FXr+wA=;
	b=ATrzJqF+efiOa1u2G62tghB3dIxoB9URM+7rfn5/e1xrGcJea4vXU4itDSX5u2MwLf
	IrD8HQggg9pQTdwMLtw1naxoYBvLorxUdMcOk5i3/6tZKZOctpkYycXGvMqnh4spLnei
	ra8rIsFvaUhlmhOXw+N1by5+q7zIvk/z200jDXYkbDajymJmn1zO0d3ZGeHg4wVOR+3S
	8ZBkzpOtMjwC4F6UWV1+YxMbJmJasTMBgGWCMaReMIV9sgk8+tp/MmUqYVkp8mxULFP1
	s4U9HEqvY3qjxM/fHtnV4pady1LZbxCDHZEktVR7yG83iCq5ZXRwU9jggZUDMmiVi23g
	FuMw==
X-Received: by 10.140.102.163 with SMTP id w32mr6900qge.39.1400797240810;
	Thu, 22 May 2014 15:20:40 -0700 (PDT)
X-Google-Doc-Id: 129544660dfd61a7
X-Google-Web-Client: true
Date: Thu, 22 May 2014 15:20:39 -0700 (PDT)
From: Mars0i <marshall@logical.net>
To: clojure@googlegroups.com
Message-Id: <8ca28e5b-f04b-40a7-8bb5-21564eb40c53@googlegroups.com>
In-Reply-To: <ca25d001-cf9d-48de-bf97-8bb81e44fadf@googlegroups.com>
References: <BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
	(dastew@sympatico.ca)> <87oaypfy78.fsf@axiom-developer.org>
	<ca25d001-cf9d-48de-bf97-8bb81e44fadf@googlegroups.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_14_19611541.1400797239507"
X-Google-Token: ELfw-ZsFvAR2O59EvGY0
X-Google-IP: 138.26.89.123
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 209.85.213.185
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
 and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 22:21:01 -0000

------=_Part_14_19611541.1400797239507
Content-Type: multipart/alternative; 
	boundary="----=_Part_15_5996547.1400797239508"

------=_Part_15_5996547.1400797239508
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On Thursday, May 22, 2014 4:05:58 PM UTC-5, Gary Johnson wrote:
>
> Hi folks,
>
>   I suspect I'm the Gary that Tim thought he was referring to since I've 
> posted on several of his other LP-related threads (though not this one 
> until now). 
>

I cede the name "Gary" to Gary.
 

>   But really, at the end of the day, I'm just getting tired of listening 
> to people razzing on LP for the reasons listed above. 
>

For my part, I have never intended to criticize LP per se.  When it sounds 
as if someone is arguing that everyone should use LP all the time (or 
something similar), I sometimes object. 

------=_Part_15_5996547.1400797239508
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<div dir="ltr">On Thursday, May 22, 2014 4:05:58 PM UTC-5, Gary Johnson wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Hi folks,<br><br>&nbsp; I suspect I'm the Gary that Tim thought he was referring to since I've posted on several of his other LP-related threads (though not this one until now). </div></blockquote><div dir="ltr"><br>I cede the name "Gary" to Gary.<br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">&nbsp; But really, at the end of the day, I'm just getting tired of listening to people razzing on LP for the reasons listed above. </div></blockquote><div dir="ltr"><br>For my part, I have never intended to criticize LP per se.&nbsp; When it sounds as if someone is arguing that everyone should use LP all the time (or something similar), I sometimes object. <br></div></div>
------=_Part_15_5996547.1400797239508--

------=_Part_14_19611541.1400797239507--


From MAILER-DAEMON Thu May 22 20:14:43 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wnd8F-0005Gx-Q2
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 20:14:43 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:34759)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <gwjohnso@uvm.edu>) id 1WncjQ-00035A-9V
	for axiom-developer@nongnu.org; Thu, 22 May 2014 19:49:10 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <gwjohnso@uvm.edu>) id 1WncjK-0006BJ-42
	for axiom-developer@nongnu.org; Thu, 22 May 2014 19:49:04 -0400
Received: from mail-ig0-f188.google.com ([209.85.213.188]:54372)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <gwjohnso@uvm.edu>) id 1WncjJ-0006BF-V8
	for axiom-developer@nongnu.org; Thu, 22 May 2014 19:48:58 -0400
Received: by mail-ig0-f188.google.com with SMTP id hn18so2674igb.25
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 16:48:57 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=date:from:to:cc:message-id:in-reply-to:references:subject
	:mime-version:content-type;
	bh=zjLj+1A4yhre8DUsB/X0iDLQF3gPGCDKg3cMIY70nzI=;
	b=fB2r6hQydZ/MPdWc7+v307Bq2flWp/cqMRQnTALjcBIhwvWjOU4cSMQLIi/LT3qTO4
	LLSMgeKcqTZV6HhQv50+hP4Bxsj7eHrqq2xsB2rrMk2oORpGEAZwfMaih4ZWII88fVlZ
	O+BKehQhj1DXJdlWAdfPV1ad7LTrmrFsRBjpR9JNf5JPTW4w8rPzE0Sc1wg1LHiJSiYZ
	nTL3DwNg4yErUyJD8CXv7i79TAtejyQflC7rxuTvO04QsRjnSlg+L5WimdJauwMrxerD
	NQSuryktfDpw1izm3a+9ZLTxzDCdAt4RQjVzkhY/0ArF3uQxAKlQcz0CsA2caneUrDaI
	IVWA==
X-Received: by 10.140.93.23 with SMTP id c23mr14930qge.14.1400802537019;
	Thu, 22 May 2014 16:48:57 -0700 (PDT)
X-Google-Doc-Id: 9a33382337fb2e76
X-Google-Web-Client: true
Date: Thu, 22 May 2014 16:48:56 -0700 (PDT)
From: Gary Johnson <gwjohnso@uvm.edu>
To: clojure@googlegroups.com
Message-Id: <81ab3a7b-1294-4c21-9190-6f3aacc77bee@googlegroups.com>
In-Reply-To: <8ca28e5b-f04b-40a7-8bb5-21564eb40c53@googlegroups.com>
References: <BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
	(dastew@sympatico.ca)> <87oaypfy78.fsf@axiom-developer.org>
	<ca25d001-cf9d-48de-bf97-8bb81e44fadf@googlegroups.com>
	<8ca28e5b-f04b-40a7-8bb5-21564eb40c53@googlegroups.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_94_11553793.1400802536337"
X-Google-Token: EOiZ-psFDBIV4KZRdBc0
X-Google-IP: 71.169.145.56
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 209.85.213.188
X-Mailman-Approved-At: Thu, 22 May 2014 20:14:42 -0400
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
 and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 23:49:10 -0000

------=_Part_94_11553793.1400802536337
Content-Type: multipart/alternative; 
	boundary="----=_Part_95_5110248.1400802536337"

------=_Part_95_5110248.1400802536337
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On Thursday, May 22, 2014 6:20:39 PM UTC-4, Mars0i wrote:
>
> On Thursday, May 22, 2014 4:05:58 PM UTC-5, Gary Johnson wrote:
>>
>> Hi folks,
>>
>>   I suspect I'm the Gary that Tim thought he was referring to since I've 
>> posted on several of his other LP-related threads (though not this one 
>> until now). 
>>
>
> I cede the name "Gary" to Gary.
>

No worries. You can be Gary too if you'd like. It's a passable name, all 
things considered. ;-)
 

>  
>
>>   But really, at the end of the day, I'm just getting tired of listening 
>> to people razzing on LP for the reasons listed above. 
>>
>
> For my part, I have never intended to criticize LP per se.  When it sounds 
> as if someone is arguing that everyone should use LP all the time (or 
> something similar), I sometimes object. 
>

Hey, point taken. I'm certainly not out to force LP on anyone. I'm just 
here to soak up advice from the folks who have been using it for awhile. 
I'm happy keeping the kool-aid to myself, so to speak. :-P

------=_Part_95_5110248.1400802536337
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Thursday, May 22, 2014 6:20:39 PM UTC-4, Mars0i wrote:<=
blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bord=
er-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">On Thursday, M=
ay 22, 2014 4:05:58 PM UTC-5, Gary Johnson wrote:<blockquote class=3D"gmail=
_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">Hi folks,<br><br>&nbsp; I suspect I'm the Ga=
ry that Tim thought he was referring to since I've posted on several of his=
 other LP-related threads (though not this one until now). </div></blockquo=
te><div dir=3D"ltr"><br>I cede the name "Gary" to Gary.<br></div><div></div=
></div></blockquote><div><br>No worries. You can be Gary too if you'd like.=
 It's a passable name, all things considered. ;-)<br>&nbsp;<br></div><block=
quote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-le=
ft: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div>&nbsp;</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-=
left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">&nbsp; But really, a=
t the end of the day, I'm just getting tired of listening to people razzing=
 on LP for the reasons listed above. </div></blockquote><div dir=3D"ltr"><b=
r>For my part, I have never intended to criticize LP per se.&nbsp; When it =
sounds as if someone is arguing that everyone should use LP all the time (o=
r something similar), I sometimes object. <br></div></div></blockquote><div=
><br>Hey, point taken. I'm certainly not out to force LP on anyone. I'm jus=
t here to soak up advice from the folks who have been using it for awhile. =
I'm happy keeping the kool-aid to myself, so to speak. :-P<br></div></div>
------=_Part_95_5110248.1400802536337--

------=_Part_94_11553793.1400802536337--


From MAILER-DAEMON Thu May 22 20:14:55 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wnd8R-0005M8-UQ
	for mharc-axiom-developer@gnu.org; Thu, 22 May 2014 20:14:55 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:34141)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <gwjohnso@uvm.edu>) id 1WnaBj-0004h5-6q
	for axiom-developer@nongnu.org; Thu, 22 May 2014 17:06:13 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <gwjohnso@uvm.edu>) id 1WnaBc-0006bs-Tc
	for axiom-developer@nongnu.org; Thu, 22 May 2014 17:06:07 -0400
Received: from mail-ob0-f186.google.com ([209.85.214.186]:38061)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <gwjohnso@uvm.edu>) id 1WnaBc-0006bN-N6
	for axiom-developer@nongnu.org; Thu, 22 May 2014 17:06:00 -0400
Received: by mail-ob0-f186.google.com with SMTP id wp18so1021721obc.3
	for <axiom-developer@nongnu.org>; Thu, 22 May 2014 14:05:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=date:from:to:cc:message-id:in-reply-to:references:subject
	:mime-version:content-type;
	bh=n8t/GnbJYFNy/Ix/yxv82mde6QfHF6O+nxVki14IsCQ=;
	b=DcYiaEAz8enBTQMQAe/gO1ImLqg0Ddtu97YleFIYhsplSRviBSZ7CxBrcyfEQyBpL1
	yx3UakubVy6viiW8dy25HBuA9HHjNLysUvnl98hME0pBCIzhZzKPYegyPkiodYfrEi1B
	a5SaZfoc2sjDb8ooTskLM+lFa74xxmXOoinknvbOLNnn2GW+v1BsCCqs6m/PO28UZOql
	NSwjX5Nl4/1muy4lxUrKA/xHdw4hKQoS6pWUf2rU1s2blR8d9nWTxSCrYyBJpLYKI7aD
	QlgioSPyj6xttJQvbASF9WC3I4PxEoE+wD43jrtNzpaiW/d/sJJ6CuyLqD9tGtZURR+E
	QGSw==
X-Received: by 10.140.95.141 with SMTP id i13mr4820qge.3.1400792759564;
	Thu, 22 May 2014 14:05:59 -0700 (PDT)
X-Google-Doc-Id: 959c9b23f59ecf01
X-Google-Web-Client: true
Date: Thu, 22 May 2014 14:05:58 -0700 (PDT)
From: Gary Johnson <gwjohnso@uvm.edu>
To: clojure@googlegroups.com
Message-Id: <ca25d001-cf9d-48de-bf97-8bb81e44fadf@googlegroups.com>
In-Reply-To: <87oaypfy78.fsf@axiom-developer.org>
References: <BAY179-W190CE82E561AD57DD1D4DBA13F0@phx.gbl>
	(dastew@sympatico.ca)> <87oaypfy78.fsf@axiom-developer.org>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_4_21612087.1400792758737"
X-Google-Token: ELbN-ZsFP_TXWab9smo0
X-Google-IP: 71.169.145.56
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
	[fuzzy]
X-Received-From: 209.85.214.186
X-Mailman-Approved-At: Thu, 22 May 2014 20:14:54 -0400
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Heidegger, literate programming,
 and communication
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Thu, 22 May 2014 21:06:14 -0000

------=_Part_4_21612087.1400792758737
Content-Type: multipart/alternative; 
	boundary="----=_Part_5_7635472.1400792758737"

------=_Part_5_7635472.1400792758737
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi folks,

  I suspect I'm the Gary that Tim thought he was referring to since I've 
posted on several of his other LP-related threads (though not this one 
until now). I'm reading along and enjoying the back and forth as usual, but 
I'm sorry to say that I don't have much to add to this philosophical 
swordfight.

  As I've stated on other threads, I find LP quite useful to me, both in 
helping me remember later what my old code does (and WHY I wrote it that 
way in the first place) as well as helping me to write clearer and more 
parsimonious code in the first place (since I don't want to document a 
crazy web of unnecessary complexity if I can avoid it). All in all, my 
personal LP journey has been an interesting and reasonably productive one. 
And of course, using an expressive functional language like Clojure does 
allow me to keep my code snippets shorter and more isolated from one 
another. All good things for LP as well.

  I know that Tim likes to poke the mailing list occasionally and remind 
people that LP is the bee's knees and that they should really get on board 
with it. I also know that without fail one or more folks will quickly 
respond that LP doesn't provide enough value above docstrings, inline 
comments, autogenerated API docs, and the occasional blog post to invest 
the necessary time in developing new LP-mindful workflows. And, of course, 
someone will inevitably chime in with the rally cry "clear code doesn't 
need documentation".

  I understand that really embracing LP does require relearning how to 
program in several fundamental respects, AND it makes it quite difficult to 
use many of the developer tools many folks in the Clojure community have 
come to rely on. This makes the task appear somewhere between challenging 
and onerous to many programmers (or so I would imagine from following Tim's 
threads over the past year). However, (speaking only for myself here) I 
think the maintenance benefits often outweigh the upfront investment for 
any piece of software I intend to keep around for more than a few months. 
So for me, it's a net good. For some folks it's not. I get that. Enough 
said.

  But really, at the end of the day, I'm just getting tired of listening to 
people razzing on LP for the reasons listed above. There ARE good tools out 
there for doing this kind of programming. People just have to invest time 
and energy into learning them. I regularly cite Emacs' Org-mode as 
providing most everything you might need to comfortably create LP programs 
without even writing one line of LaTeX or XML (if you're allergic to those 
languages). Obviously, as Tim points out, it's an almost trivial assignment 
to roll your own tangle and weave scripts in whatever language you like 
(and I've tried that route too). So guys, if you don't like the ideas 
behind LP or just feel like it is too much of a hassle to use, then I 
completely understand that you don't want to use it. But could we maybe 
call a truce on this mailing list on the topic?

  Perhaps instead of constantly being pulled into philosophical arguments, 
those of us who actually do enjoy exploring LP could then use this forum to 
discuss amongst ourselves what tools or references we are finding useful in 
our journey. Clearly some folks (Gregg included) are churning out some 
pretty neat looking tools to make LP easier to do in the Clojure world. I 
for one would love to see more lively discussion around that and not feel 
like we're just bear-baiting whenever we mention the forbidden paradigm of 
Literate Programming.

  My 2c,
    ~ (the actual) Gary


------=_Part_5_7635472.1400792758737
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi folks,<br><br>&nbsp; I suspect I'm the Gary that Tim th=
ought he was referring to since I've posted on several of his other LP-rela=
ted threads (though not this one until now). I'm reading along and enjoying=
 the back and forth as usual, but I'm sorry to say that I don't have much t=
o add to this philosophical swordfight.<br><br>&nbsp; As I've stated on oth=
er threads, I find LP quite useful to me, both in helping me remember later=
 what my old code does (and WHY I wrote it that way in the first place) as =
well as helping me to write clearer and more parsimonious code in the first=
 place (since I don't want to document a crazy web of unnecessary complexit=
y if I can avoid it). All in all, my personal LP journey has been an intere=
sting and reasonably productive one. And of course, using an expressive fun=
ctional language like Clojure does allow me to keep my code snippets shorte=
r and more isolated from one another. All good things for LP as well.<br><b=
r>&nbsp; I know that Tim likes to poke the mailing list occasionally and re=
mind people that LP is the bee's knees and that they should really get on b=
oard with it. I also know that without fail one or more folks will quickly =
respond that LP doesn't provide enough value above docstrings, inline comme=
nts, autogenerated API docs, and the occasional blog post to invest the nec=
essary time in developing new LP-mindful workflows. And, of course, someone=
 will inevitably chime in with the rally cry "clear code doesn't need docum=
entation".<br><br>&nbsp; I understand that really embracing LP does require=
 relearning how to program in several fundamental respects, AND it makes it=
 quite difficult to use many of the developer tools many folks in the Cloju=
re community have come to rely on. This makes the task appear somewhere bet=
ween challenging and onerous to many programmers (or so I would imagine fro=
m following Tim's threads over the past year). However, (speaking only for =
myself here) I think the maintenance benefits often outweigh the upfront in=
vestment for any piece of software I intend to keep around for more than a =
few months. So for me, it's a net good. For some folks it's not. I get that=
. Enough said.<br><br>&nbsp; But really, at the end of the day, I'm just ge=
tting tired of listening to people razzing on LP for the reasons listed abo=
ve. There ARE good tools out there for doing this kind of programming. Peop=
le just have to invest time and energy into learning them. I regularly cite=
 Emacs' Org-mode as providing most everything you might need to comfortably=
 create LP programs without even writing one line of LaTeX or XML (if you'r=
e allergic to those languages). Obviously, as Tim points out, it's an almos=
t trivial assignment to roll your own tangle and weave scripts in whatever =
language you like (and I've tried that route too). So guys, if you don't li=
ke the ideas behind LP or just feel like it is too much of a hassle to use,=
 then I completely understand that you don't want to use it. But could we m=
aybe call a truce on this mailing list on the topic?<br><br>&nbsp; Perhaps =
instead of constantly being pulled into philosophical arguments, those of u=
s who actually do enjoy exploring LP could then use this forum to discuss a=
mongst ourselves what tools or references we are finding useful in our jour=
ney. Clearly some folks (Gregg included) are churning out some pretty neat =
looking tools to make LP easier to do in the Clojure world. I for one would=
 love to see more lively discussion around that and not feel like we're jus=
t bear-baiting whenever we mention the forbidden paradigm of Literate Progr=
amming.<br><br>&nbsp; My 2c,<br>&nbsp;&nbsp;&nbsp; ~ (the actual) Gary<br><=
br></div>
------=_Part_5_7635472.1400792758737--

------=_Part_4_21612087.1400792758737--


From MAILER-DAEMON Mon May 26 05:01:06 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WoqmI-0005El-OM
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 05:01:06 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:39440)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WoqmC-00058t-Pu
	for axiom-developer@nongnu.org; Mon, 26 May 2014 05:01:04 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Woqm8-0007mp-41
	for axiom-developer@nongnu.org; Mon, 26 May 2014 05:01:00 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:52083
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Woqm7-0007mf-NH
	for axiom-developer@nongnu.org; Mon, 26 May 2014 05:00:56 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4Q90pFI013033;
	Mon, 26 May 2014 04:00:51 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4Q90onI013030;
	Mon, 26 May 2014 04:00:50 -0500
Date: Mon, 26 May 2014 04:00:50 -0500
Message-Id: <201405260900.s4Q90onI013030@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: daly@axiom-develoer.org, Douglas Troeger <dtroeger@cs.ccny.cuny.edu>
Subject: [Axiom-developer] Computational Mathematics, proofs, and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 26 May 2014 09:01:05 -0000

One of Axiom's project goals involves proofs of the computational
mathematics.

In plan, but not yet attacked, is the question of proving Axiom.
Axiom claims to be "computational mathematics", after all.

This raises a lot of thought bubbles, but most interesting to me at
the moment is what the goal means. There seems to be several 
interpretations and my shower committee (i.e. what I mutter to myself
about in the shower) seems unfocused. The top level question is:

   What would it mean to prove Axiom correct?

The first interpretation is computational.

The second interpretation is mathematical.

The third interpretation is both computational and mathematical.

Consider these in order. From a computational point of view Axiom is a
big lisp program. It implements a domain specific language called Spad
which compiles to lisp programs. ACL2 [0] is ideal for proving
programs at this level. ACL2 is also a lisp program and could easily be
co-resident with Axiom in a lisp image. Models can be defined and
proved to have certain properties. The lisp code could be decorated
with theorems and lemmas. This would make it possible to bring much
more rigor to the implementation. It provides an opportunity to define
a model for interpreting and compiling Spad which can be used to check
the implementation.

>From a mathematical point of view, Axiom is an implementation of
abstract-algebra-like categories and domains. One could consider
decorating the Spad algebra code with axioms (e.g. the abelian
group axioms) and theorems. COQ [1] seems ideal for proving Spad
code at some level of abstraction. Of course, Spad's view of
algebra differs somewhat from the abstract algebra scaffold.
Proving an algorithm (e.g. finding primes) over all possible
domains is really a non-trivial task.

>From a computational and mathematical point of view, there is what
I call the "kittens" problem, as in, "it is kittens all the way down"
(cause, yaknow, the internet doesn't like turtles). What does it mean
to prove something in Axiom? Is doesn't seem sufficient to prove that
the interpreter/compiler provide a correct translation of Spad. Nor
does it seem sufficient to prove that a Spad domain properly preserves
the commutative property.

What I'd like to achieve (and, given that we are just starting toward
a 30 year horizon we have plenty of time), is some confidence that
Axiom programs can be used with some reasonable degree of assurance
that it does what it says on the tin. At the moment, computational
mathematics seems to "float" on nothing. 

I am deeply unhappy with the current state of the art. The current
state makes it hard for a computer scientist to see where the
interpreter/compiler needs work. The current state makes it hard for a
mathematician to see where integration needs work. That we are decades
into the collision of mathematics and computers yet have no standards
of proof is, to my mind, unacceptable.

The computer scientist side of me wants some form of non-computational
model of the interpreter/compiler. The mathematician side of me wants
some convergence of the algebra and mathematics. 

We can do better. In fact, any attempt at all would be better.
Even if nothing were formally proved I'm sure the side-effect would
be a better, more trustworthy Axiom, which is a worthwhile goal.

Nobody wants their "Ph.D recalled" due to a bug in Axiom. :-)

Excelsior!
Tim Daly

[0] Kaufmann, Matt; Moore, J Strother
    ACL2 Version 6.4
    http://www.cs.utexas.edu/~moore/acl2

[1] various
    The Coq Proof Assistant
    http://coq.inria.fr



From MAILER-DAEMON Mon May 26 10:29:21 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wovtw-0005DO-PM
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 10:29:20 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:46942)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1Wovtn-0005CQ-Du
	for axiom-developer@nongnu.org; Mon, 26 May 2014 10:29:18 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1Wovtf-00063H-Ux
	for axiom-developer@nongnu.org; Mon, 26 May 2014 10:29:11 -0400
Received: from mout.kundenserver.de ([212.227.17.24]:63035)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <ax87438@martinb.com>) id 1Wovtf-00062y-M4
	for axiom-developer@nongnu.org; Mon, 26 May 2014 10:29:03 -0400
Received: from [192.168.1.64] ([94.195.43.136])
	by mrelayeu.kundenserver.de (node=mreue101) with ESMTP (Nemesis)
	id 0MhUQs-1XAKP12G8o-00MfDX; Mon, 26 May 2014 16:29:01 +0200
Message-ID: <53834F7C.5050806@martinb.com>
Date: Mon, 26 May 2014 15:28:12 +0100
From: Martin Baker <ax87438@martinb.com>
Organization: axiom
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: axiom-developer@nongnu.org
References: <201405260900.s4Q90onI013030@axiom-developer.org>
In-Reply-To: <201405260900.s4Q90onI013030@axiom-developer.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V02:K0:Fa1EYoojDbGDAwp0XWC/7lvQqfrb0jKMHg7RI4tE9Vc
	bhPLJuCAfA6+MfubzSI0ypnCpo2nEv9ftrLleAnn/1wbP3AlaN
	fWDktOdTQuG4+MwmoqQ/ITEu7TzE7RLYBQwIQuacFqdo6xaUni
	z+Ljmxw+0ePRxbMvEMXvt4SehUSFGE1dSL0Tku7dhjw5yW4F7l
	+8B06OWpZqnH9tELyJJ9Lyzm4TXoq+aXnLVVztToE6z5lelsgf
	7FTCHOf2TjaJpL+3+0+U04YjeGNFfFWRBHEa/GzxxyiP/qbmFi
	XI9YuVNWmu7SrSjiyk0uD8JXFprz7FpnHjO8DQcrgmftsDfpFs
	IOXApHjLRFdj4XcJjqNrW8/Enr/3tZtw5wmtDIRH8
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic]
X-Received-From: 212.227.17.24
Subject: Re: [Axiom-developer] Computational Mathematics, proofs,
	and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 26 May 2014 14:29:19 -0000

Tim,

Yes, I think it would be really good if Axiom could live up to its name 
and include axioms.

It seems to me that categories in Axiom are mostly about function 
signatures (I know I'm vastly oversimplifying here) but they would be 
more like the mathematical concepts they represent if they included axioms?

Are you talking about two different types of capability here:
* Proof Assistants like 'Coq' or 'Isabelle'.
* Algebraic Specification Languages like 'CASL'.
Does ACL2 fit into this distinction?

So I'm thinking that proof assistance are based on rules and driven by 
human input and algebraic Specification Languages are based on axioms 
and provide some level of automatic checking, although I guess there is 
some overlap?

I get the impression that Axiomatic systems are problematic in that a 
single error allows you to prove anything (true=false) and, as you have 
pointed out to me, rule based systems are difficult to debug.

Even so, I think that the addition of axioms into categories would be a 
big benefit, even it it was only initially used for human readers and 
some automated checking.

The choice of what rules to call axioms may be arbitrary but there are 
all sorts of choices that have to be made when supporting an algebra, 
like notation and which algorithm to use, which don't follow 
automatically from the mathematics.

> What would it mean to prove Axiom correct?

I get the impression that, at some level a computer program is only an 
approximation to mathematics (float approximates to reals and so on). 
Issues with proving code(algorithms) - 'halting problem'. Despite these 
limits to a complete proof of the whole program, there is a lot that can 
be done at a higher level if axioms were included in the program.

So I think this sort of capability would be really good, I'm just too 
impatient to wait 30 years.

Martin




From MAILER-DAEMON Mon May 26 12:26:59 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Woxjn-0002ej-Lx
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 12:26:59 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:43272)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <hebisch@math.uni.wroc.pl>) id 1Woxjg-0002dX-TF
	for axiom-developer@nongnu.org; Mon, 26 May 2014 12:26:57 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <hebisch@math.uni.wroc.pl>) id 1Woxjc-0005aE-2F
	for axiom-developer@nongnu.org; Mon, 26 May 2014 12:26:52 -0400
Received: from hera.math.uni.wroc.pl ([156.17.86.1]:51032)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <hebisch@math.uni.wroc.pl>) id 1Woxjb-0005S7-Sm
	for axiom-developer@nongnu.org; Mon, 26 May 2014 12:26:48 -0400
Received: from hebisch by hera.math.uni.wroc.pl with local (Exim 4.80)
	(envelope-from <hebisch@math.uni.wroc.pl>) id 1WoxjO-00080S-AR
	for axiom-developer@nongnu.org; Mon, 26 May 2014 18:26:34 +0200
To: axiom-developer@nongnu.org
Date: Mon, 26 May 2014 18:26:34 +0200 (CEST)
In-Reply-To: <201405260900.s4Q90onI013030@axiom-developer.org>
X-Mailer: ELM [version 2.5 PL8]
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <E1WoxjO-00080S-AR@hera.math.uni.wroc.pl>
From: Waldek Hebisch <hebisch@math.uni.wroc.pl>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x
X-Received-From: 156.17.86.1
Subject: Re: [Axiom-developer] Computational Mathematics, proofs,
	and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 26 May 2014 16:26:57 -0000

Tim Daly wrote:
> 
> One of Axiom's project goals involves proofs of the computational
> mathematics.
> 
> In plan, but not yet attacked, is the question of proving Axiom.
> Axiom claims to be "computational mathematics", after all.
> 
> This raises a lot of thought bubbles, but most interesting to me at
> the moment is what the goal means. There seems to be several 
> interpretations and my shower committee (i.e. what I mutter to myself
> about in the shower) seems unfocused. The top level question is:
> 
>    What would it mean to prove Axiom correct?


That is pretty clear: there is algebra, there is interpreter
there is compiler.  For algebra one needs to specify what
each function is supposed to do and prove it.  There are
well-known notations for specifications and proofs, for
example Hoare triples.  Proof rules depend on language
used, but from point of view of proofs Spad is quite
conventianal imperative language, with a little syntatic
sugar for few constructs, so writing proof rules for
Spad is not hard.  Spad supports rich values (arrays, lists,
functions, types), so axiom for values will require
work.  Then one needs to prove compiler correct, for
this one needs specify meaning of output.  If the output
is Lisp, we need proof rules for Lisp, and we need to
prove that proof rules used for algebra are satisfied.
Finally we need some specification for interpreter
and we need to prove that interpreter satisfies this
specification.

The real question is how to do this.  Several years ago
my student did "by hand" a proof in Hoare logic of a simple 20
line long program.  The proof is 20 pages long.  The proof
is rather detailed, but he consided some facts as known
and some readers probably would ask questions demanding
more details.  While this is small sample it clearly
shows that doing proofs by hand is huge task and we
are unlikely to ever have needed resources.  Obvious
answer lies in automation.  But even with automation
this is still large task: the L4 operation system
kernel is clained to be proved correct with mechanically
verifed proof.  But that required about 8 lines of
proof annotations per line of executable code.
For me this is still too big to even start.  IMO
proving correctness will be reasible with better
proof assistants.  And there are signs that such
assistants may appear pretty soon (there was large
progress in last few years).

Let me repeat: it is not a question of what a proof is.
Already Turing around 1946 gave apropriate notion of proof.
The question is how.

BTW: Some people want proof to have be "certain" that
progam works.  Of course to get valid conclusion we
would have to prove lower layers.  I consider this
out of scope, but you may wish to prove that Lisp
implementation is correct in terms of machine
instructions and that logic of processor correctly
implements machine level.  We would also like to
have some assurance that gates do what they are
supposed to do.  Now, correctenss of gates is physics,
not math.  Correctness of processor is rather hard
to establish, because internal design is kept
secret.  But above what proof means is clear and
methods are known -- it is "only" problem of
huge effort needed for such work.


-- 
                              Waldek Hebisch
hebisch@math.uni.wroc.pl 


From MAILER-DAEMON Mon May 26 15:15:50 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wp0NB-0001lk-Sq
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 15:15:49 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:47438)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp0N4-0001hF-0O
	for axiom-developer@nongnu.org; Mon, 26 May 2014 15:15:48 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp0Mx-0001vZ-BO
	for axiom-developer@nongnu.org; Mon, 26 May 2014 15:15:41 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:33808
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp0Mx-0001vB-44
	for axiom-developer@nongnu.org; Mon, 26 May 2014 15:15:35 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4QJFQFI014507;
	Mon, 26 May 2014 14:15:26 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4QJFPKt014504;
	Mon, 26 May 2014 14:15:25 -0500
Date: Mon, 26 May 2014 14:15:25 -0500
Message-Id: <201405261915.s4QJFPKt014504@axiom-developer.org>
To: Waldek Hebisch <hebisch@math.uni.wroc.pl>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: [Axiom-developer] Computational Mathematics, proofs, and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Mon, 26 May 2014 19:15:48 -0000

Waldek,

>The real question is how to do this.  Several years ago
>my student did "by hand" a proof in Hoare logic of a simple 20
>line long program.  The proof is 20 pages long.  The proof
>is rather detailed, but he consided some facts as known
>and some readers probably would ask questions demanding
>more details.

Was this proof published anywhere? Do you have a URL?

Tim



From MAILER-DAEMON Mon May 26 22:08:30 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wp6oX-0007LY-RY
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 22:08:29 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:42295)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <jiazhaoconga@gmail.com>) id 1Wp6oU-0007Kw-Ts
	for axiom-developer@nongnu.org; Mon, 26 May 2014 22:08:27 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <jiazhaoconga@gmail.com>) id 1Wp6oT-0005tY-7p
	for axiom-developer@nongnu.org; Mon, 26 May 2014 22:08:26 -0400
Received: from mail-ob0-x22c.google.com ([2607:f8b0:4003:c01::22c]:58047)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <jiazhaoconga@gmail.com>) id 1Wp6oT-0005sb-3a
	for axiom-developer@nongnu.org; Mon, 26 May 2014 22:08:25 -0400
Received: by mail-ob0-f172.google.com with SMTP id wp18so8694520obc.31
	for <axiom-developer@nongnu.org>; Mon, 26 May 2014 19:08:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:date:message-id:subject:from:to:content-type;
	bh=I9ixBOr/ShCyBzLyBSOmlWqUXWGKrLpxa9DJa7dsCP8=;
	b=VBYdwu0FjUXNhTEQt6aoWM23jgij0b1wkOttcK3r91S4CWCLpJyAkaXbMC3FSYbC/q
	44eY+O8XWSj7wI3VZBZRFA7bknvlzWOXNmJ7ZRbgC04xSjD/D7Eh/Nst/R/6OOg091GM
	vkd2EmtOSwpaFDvS7obnAJCw9Nt/xOxvs5UoJk/l4kWhIRceW5tGV/RWXJm/AcvBO7OI
	E3zfUwCSRtGoPruRFYLENEK+bqlennCQV58nebM3x0jhaDgFvAonsjt6K7A12Ut2KcFT
	V24APQc9NgmfKlbUe12/cPSQ7zce4NSokYgFwIbiI4bKkF7gvKHQL33IaYvfQa7WSkVF
	HjrQ==
MIME-Version: 1.0
X-Received: by 10.182.227.197 with SMTP id sc5mr29384281obc.18.1401156504051; 
	Mon, 26 May 2014 19:08:24 -0700 (PDT)
Received: by 10.76.29.39 with HTTP; Mon, 26 May 2014 19:08:23 -0700 (PDT)
Date: Tue, 27 May 2014 10:08:23 +0800
Message-ID: <CAHYG-FWu=TcXTTJ5gmo9kM31QpCJJzFz24Kt35ueSgTmw5ZO6Q@mail.gmail.com>
From: jiazhaoconga <jiazhaoconga@gmail.com>
To: axiom-developer@nongnu.org
Content-Type: text/plain; charset=UTF-8
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-Received-From: 2607:f8b0:4003:c01::22c
Subject: Re: [Axiom-developer] Computational Mathematics, proofs,
	and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 27 May 2014 02:08:27 -0000

I have some experience with ACL2, ACL2 uses a very small subset
of common lisp, there are no side effects and no higher order
functions, although Axiom is written in a pretty small subset of CL, it
will be very difficult or require unimaginable mount of work to prove
"the Spad compiler is correct" (this Axiom implementation of Spad
language compiler agrees with Spad language specification).

As for the second interpretation, I am not familiar with Coq. I can
only mention about PVS [1], a common lisp theorem prover but
unlike ACL2 which is first-order and weak typing, PVS and Coq are
high-order and strong typing. But I am not familiar with PVS either.

[1] PVS   http://pvs.csl.sri.com/


From MAILER-DAEMON Mon May 26 23:30:30 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wp85t-0003YP-T3
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 23:30:29 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:52487)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp85l-0003Nn-Ve
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:30:28 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp85f-0006jb-SF
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:30:21 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:39577
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp85f-0006jV-NJ
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:30:15 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4R3UCFI014981;
	Mon, 26 May 2014 22:30:12 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4R3UC4n014978;
	Mon, 26 May 2014 22:30:12 -0500
Date: Mon, 26 May 2014 22:30:12 -0500
Message-Id: <201405270330.s4R3UC4n014978@axiom-developer.org>
To: jiazhaoconga <jiazhaoconga@gmail.com>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: [Axiom-developer] PVS
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 27 May 2014 03:30:28 -0000

Thanks. I had not heard of PVS but I will look into it.

I have used ACL2 in the distant past and will have to get up
to speed on it again. I've downloaded and built the latest version.

I know that ACL2 is not capable of handling a Spad compiler but one
has to start somewhere. The important point, in my mind, is the focus
on some sort of proof in the long term.  We really need to have a
higher standard for computational mathematics, and, as they say,
"If not us, who? If not now, when?".

Matt Kaufmann and J Moore have always been quite helpful in the
past. I suspect they would be interested in any work we do in
this area.

Tim Daly


From MAILER-DAEMON Mon May 26 23:39:58 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wp8F4-0007eg-RR
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 23:39:58 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:53718)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp8Ex-0007Wk-KQ
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:39:57 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp8Er-0000pk-Fs
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:39:51 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:42602
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp8Er-0000oF-AI
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:39:45 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4R3dfFI014992;
	Mon, 26 May 2014 22:39:41 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4R3dfH6014989;
	Mon, 26 May 2014 22:39:41 -0500
Date: Mon, 26 May 2014 22:39:41 -0500
Message-Id: <201405270339.s4R3dfH6014989@axiom-developer.org>
To: Waldek Hebisch <hebisch@math.uni.wroc.pl>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Computational Mathematics, proofs,
	and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 27 May 2014 03:39:57 -0000

>This was "Master Thesis", unpublished and in Polish.  This
>is work that students are supposed to do to get finish
>their study and get Master degree.  Most of the work
>presents material from literature, the proof is original.
>I can send you a .ps file if you want.

My command of English is marginal at best. I'm sure that a
thesis written in Polish would exceed my abilities. Thanks
anyway. 

If your student referenced any interesting work in English
in the bibliography I'd appreciate the reference. I think I
need to research a range of existing work.

Tim 





From MAILER-DAEMON Mon May 26 23:47:24 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1Wp8MG-0000z0-Oi
	for mharc-axiom-developer@gnu.org; Mon, 26 May 2014 23:47:24 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:54467)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp8M9-0000yX-L2
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:47:23 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp8M3-0003J6-E1
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:47:17 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:55342
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1Wp8M3-0003Iz-7Q
	for axiom-developer@nongnu.org; Mon, 26 May 2014 23:47:11 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4R3lAFI015003;
	Mon, 26 May 2014 22:47:10 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4R3lAYc015000;
	Mon, 26 May 2014 22:47:10 -0500
Date: Mon, 26 May 2014 22:47:10 -0500
Message-Id: <201405270347.s4R3lAYc015000@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: Re: [Axiom-developer] Computational Mathematics, proofs,
	and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 27 May 2014 03:47:23 -0000


  "The society of scientists, the community of scientists, has
   this advantage, that from the moment we enter it, we all know
   that fifty years from now, most of the things we learned here
   will turn out not to have been quite right."

  -- Jacob Bronowski, Silliman lectures, Yale 1967




From MAILER-DAEMON Tue May 27 13:39:16 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WpLLI-0007LR-3x
	for mharc-axiom-developer@gnu.org; Tue, 27 May 2014 13:39:16 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:58109)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WpLL8-0007Gx-45
	for axiom-developer@nongnu.org; Tue, 27 May 2014 13:39:13 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WpLL0-0002zh-HS
	for axiom-developer@nongnu.org; Tue, 27 May 2014 13:39:06 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:47872
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WpLL0-0002zb-CK
	for axiom-developer@nongnu.org; Tue, 27 May 2014 13:38:58 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4RHcqFI016377;
	Tue, 27 May 2014 12:38:52 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4RHcpuD016374;
	Tue, 27 May 2014 12:38:51 -0500
Date: Tue, 27 May 2014 12:38:51 -0500
Message-Id: <201405271738.s4RHcpuD016374@axiom-developer.org>
To: Waldek Hebisch <hebisch@math.uni.wroc.pl>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Computational Mathematics, proofs,
	and correctness
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Tue, 27 May 2014 17:39:14 -0000

Waldek,

Thanks for the references.
Oddly, many of them are from my graduate course :-)

Tim


From MAILER-DAEMON Fri May 30 01:02:00 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WqEx6-0003uh-F8
	for mharc-axiom-developer@gnu.org; Fri, 30 May 2014 01:02:00 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:57798)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WqEwz-0003uW-KY
	for axiom-developer@nongnu.org; Fri, 30 May 2014 01:01:59 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WqEwt-0000BI-Fy
	for axiom-developer@nongnu.org; Fri, 30 May 2014 01:01:53 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:40110
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WqEwt-0000B1-AQ
	for axiom-developer@nongnu.org; Fri, 30 May 2014 01:01:47 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4U51iFI027503;
	Fri, 30 May 2014 00:01:44 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4U51h85027500;
	Fri, 30 May 2014 00:01:43 -0500
Date: Fri, 30 May 2014 00:01:43 -0500
Message-Id: <201405300501.s4U51h85027500@axiom-developer.org>
To: Lawrence Bottorff <hercynianforest@gmail.com>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Cc: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Books versus "Tunneling"
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Fri, 30 May 2014 05:01:59 -0000

Lawrence,

I copied portions of your email to the mailing list along with my
reply. I hope you don't mind.

>I just watched your talk "Literate Programming in the Large" on YouTube.
>I've been investigating literate programming for a bit now, and I've come
>up with a term for non-literate programming: I call it "tunneling." Imagine
>you're a programmer doing your regular programming thing, writing code all
>the live-long day -- and not doing it in any sort of literate way. I say
>that's the same as some mole or miner digging a tunnel. Either the tunnel
>collapses right behind the mindless digger diggings -- or the software is
>actually used and the tunnel doesn't collapse right away, i.e., there's
>traffic in the tunnel. For example, Windows XP is a big, wide tunnel . . .
>that is now beginning to rapidly collapse. Soon enough there will maybe be
>a depression in the ground. "XP was down there." So yes, eventually all
>non-literate software is just so much tunneling that eventually collapses.
>You might argue that "open source" software is not such a tunnel. Maybe.
>But who reads code besides a very rare few? And like you said in your talk,
>code is notoriously difficult to fathom, especially if some "153" crops up.

Actually, you're the second quote on Axiom's documentation page. See
http://axiom-developer.org/axiom-website/documentation.html




>A well-written book, on the other hand, is at the very least a dialogue
>with yourself. Consider what I've done in the past: SQL database. I
>typically would crank around with SQL snippets until I got the database
>where I wanted it, or some output/report generated. But all the steps I had
>taken were lost! Better it would have been if I had been typing an "SQL
>blog" with the SQL code embedded in the text where I describe my process.
>"Dear diary. . ."

I don't know if a diary is the best analogy. The best book I've seen
so far is Pharr and Humphreys' "Physically Based Rendering". It contains
all the source code, properly explains the theory, and is exceptionally
well cross-referenced and indexed. The BOOK won an academy award. If 
you haven't seen it, buy it. Believe me, you'll be amazed.

I have to say, they have really "raised the bar" of what I expect a
good literate program to be. They explain the theory, show the math,
and have numerous diagrams. Axiom has a new standard of excellence.

If Axiom were documented as well as the Pharr/Humphreys book I am
certain that it would be used to teach computational mathematics at
both undergraduate and graduate levels. I can even see a sub-department
of "computational mathematics". There is, of course, the minor detail
of actually documenting the system :-)

Greg Humphreys, one of the authors, and Paul C. Agnostopoulos, the
author of zzTek, which is the tool used, have both given me the
tooling they used to create the book. I hope to use at least some of
it in Axiom. Paul formats books professionally (windfall.com).






>I so much agree with you about literate programming. I don't get much
>buy-in; many think I'm just a crackpot. Alas, but I think it's the real
>wave of the future. A book is meant to be read. Coding is just tunneling.
>Think of all the ga-zillions of lines of code that is buried in all those
>tunnels!

Yeah. There is a saying in physics. "New theories are accepted once the
previous generation dies". John Kitchin at CMU is teaching the new
generation to write literate programs. Once everyone over 30 dies we
can flush all the non-literate, abandoned piles of code in github,
sourceforge, savannah, etc. and get on with the business of
communication.

At least that's my theory and I'm sticking to it :-)





>Two questions: Have you ever seen the outline style Buckminster Fuller used
>in "Synergetics?" Each outline point makes fairly self-contained statement.
>Here's the table of contents:

No, I haven't seen that book. I'll put it on the queue. Thanks.





>And, have you seen Emacs org-mode? It has a built-in literate capability.

I sat in on Kitchin's class where he is teaching students using literate
programming. He is using org-mode. 

It was really interesting in that NOBODY was taking notes. Not a single
pen or piece of paper anywhere. No typing on their laptops. John taught
from his emacs buffer, displayed on an overhead. Everything he taught
was in the buffer. He could execute code, update tables, show graphs.
He could edit changes into the document based on student questions.

At the end of class, all students had the latest set of notes and
all of the executable code already on their laptops. He is working to
spread this kind of teaching across all of the compsci, math, chemE,
and other departments. Frankly, I think it changes the game but I'm
already a convert.



>Also, I'm using Ubuntu and I see there is an "axiom" and an "open-axiom" in
>the package manager. Which do I want? Or should I just grab it from the
>site?

Axiom is this project. Executables are available at 
http://axiom-developer.org/axiom-website/download.html

If you want to compile and/or develop Axiom system code there are
instructions of which packages to apt-get.

Tim Daly


From MAILER-DAEMON Fri May 30 13:12:50 2014
Received: from list by lists.gnu.org with archive (Exim 4.71)
	id 1WqQMM-0005iF-QD
	for mharc-axiom-developer@gnu.org; Fri, 30 May 2014 13:12:50 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:41332)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WqQMC-0005fx-Un
	for axiom-developer@nongnu.org; Fri, 30 May 2014 13:12:48 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WqQM4-0002gZ-7o
	for axiom-developer@nongnu.org; Fri, 30 May 2014 13:12:40 -0400
Received: from vs338.rosehosting.com ([209.135.140.38]:60224
	helo=axiom-developer.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <daly@axiom-developer.org>) id 1WqQM4-0002gN-2U
	for axiom-developer@nongnu.org; Fri, 30 May 2014 13:12:32 -0400
Received: from axiom-developer.org (localhost.localdomain [127.0.0.1])
	by axiom-developer.org (8.12.8/8.12.8) with ESMTP id s4UHCTFI020530;
	Fri, 30 May 2014 12:12:29 -0500
From: daly@axiom-developer.org
Received: (from daly@localhost)
	by axiom-developer.org (8.12.8/8.12.8/Submit) id s4UHCThZ020527;
	Fri, 30 May 2014 12:12:29 -0500
Date: Fri, 30 May 2014 12:12:29 -0500
Message-Id: <201405301712.s4UHCThZ020527@axiom-developer.org>
To: axiom-developer@nongnu.org
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone)
	[generic]
X-Received-From: 209.135.140.38
Subject: [Axiom-developer] Axiom and proofs
X-BeenThere: axiom-developer@nongnu.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Axiom Developers <axiom-developer.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/axiom-developer>, 
	<mailto:axiom-developer-request@nongnu.org?subject=unsubscribe>
List-Archive: <http://lists.nongnu.org/archive/html/axiom-developer>
List-Post: <mailto:axiom-developer@nongnu.org>
List-Help: <mailto:axiom-developer-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/axiom-developer>,
	<mailto:axiom-developer-request@nongnu.org?subject=subscribe>
X-List-Received-Date: Fri, 30 May 2014 17:12:48 -0000

I picked up two books that seem to be useful in the task of trying
to prove at least one algorithm in Axiom "correct", for some 
philosophical version of correct.

I'd really like to show an automated proof of Axiom's GCD algorithm.
Pointers to published work on GCD proofs would be really useful.

Yves and Pierre [0] has a whole chapter on "Infinite Objects and
Proofs" with a section on co-inductive types (streams, lazy lists,
lazy binary trees).

Chandy and Misra [1] has a section on prime number generation by sieving.

Suggestions of other reading material is most welcome.

[0] Bertot, Yves; Casteran, Pierre
    "Interactive Theorem Proving and Program Development"
    ISBN 3-540-20854-2

[1] Chandy, Mani ; Misra, Jayadev
    "Parallel Program Design"
    ISBN 0-201-05866-9


