Re: [Readable-discuss] Readable version 1.0.2 released!

2014-06-29 Thread David A. Wheeler
On Sat, 28 Jun 2014 21:50:53 -0400, John Cowan co...@mercury.ccil.org wrote:

 Another point is that not supporting `else` is non-conformant all the
 way back to R2RS. Not supporting it makes Guile 1.6 a Not-Quite-Scheme.

Which just shows the need for standards and standards test suites.
To be fair, guile fixed this years ago.

 A third point is that a one-line hack for Guile 1.6 fixes the problem:
 
   (define else #t)
 
 Just make sure this line isn't present for any real Scheme.

I doubt that'll work.  else is also used in (cond-expand ...) and (case ...).
I don't have a guile 1.6 handy, but I do have guile 1.8.  In 1.8, this works:
  (case #\a (else (display hi)))
yet this fails:
  (define else #t)
  (case #\a (else (display hi)))
and I suspect the same would be true for guile 1.6.

Thanks for the idea though!!

--- David A. Wheeler

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss


Re: [Readable-discuss] Readable version 1.0.2 released!

2014-06-28 Thread David A. Wheeler
On Sat, 28 Jun 2014 08:15:15 +0800, Alan Manuel Gloria almkg...@gmail.com 
wrote:
 Since I'm pretty much the only one who wants Guile 1.6 support, and
 I'm pretty satisfied with the perfectly working old version, feel free
 to drop Guile 1.6 support.  I just wanted to make clear the reason for
 why #t was used in the first place ^^.

Okay.  If you (or anyone else) thinks we need to re-add guile 1.6 support,
we could do it using autoconf and text substitution.  That way the source code
would be clean modern code, and then transformed for execution only when needed.
I'd be happy to add it, after all, you're co-author of the spec and your work 
has been
instrumental in making the readable stuff happen.  But you're satisfied, and I 
don't
know of anyone else using such an old version of guile.

GNU Guile 1.8.0 was released on 2006-02-12 
(https://www.gnu.org/software/guile/old-news.html),
over 8 years ago.  Perhaps more importantly, GNU Guile 2.0.0 was released on 
2011-02-16.
That's enough time for most people to have updated beyond 1.6, and over time
I expect that even fewer and fewer people will care about guile version 1.6.

--- David A. Wheeler

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss


Re: [Readable-discuss] Readable version 1.0.2 released!

2014-06-27 Thread Alan Manuel Gloria
On Thu, Jun 26, 2014 at 10:33 AM, David A. Wheeler
dwhee...@dwheeler.com wrote:
 On Wed, 25 Jun 2014 05:28:39 +0800, Alan Manuel Gloria almkg...@gmail.com 
 wrote:
 (cond ... else) doesn't work in Guile 1.6 (it's why I coded them as
 (cond .. #t) in the first place).

 Drat. As noted in the ChangeLog, (cond... #t) causes warnings in chicken 
 Scheme.

 Hmm.  We already do some text processing of kernel.scm in the final build.
 Perhaps we could detect if (cond ... else) is rejected in configure, and if 
 it is,
 then substitute the relevant (else ... into (#t 

 Does replacing all (else  with (#t  in kernel.scm work in guile 1.6?
 That would also affect some cond-expand and case statements, as well as cond 
 statements.
 If we have to only substitute some  not others, we could insert some comments
 to enable or inhibit text substitution.  That might be the simplest solution.
 That way most people just see standard modern Scheme while users of the
 old guile version 1.6 get working code.

*shrug* I am personally not bothered with (else ..).  I already do
have the working old code that works on 1.6, and I don't really
foresee any significant increase in the core functionality (viz.
INDENTED SCHEME) any time soon, and my code mostly works anyway, since
I copied the old version into my program (I run it as the program's
compile step from .sscm to .scm).

Since I'm pretty much the only one who wants Guile 1.6 support, and
I'm pretty satisfied with the perfectly working old version, feel free
to drop Guile 1.6 support.  I just wanted to make clear the reason for
why #t was used in the first place ^^.


 --- David A. Wheeler

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss


Re: [Readable-discuss] Readable version 1.0.2 released!

2014-06-25 Thread David A. Wheeler
On Wed, 25 Jun 2014 05:28:39 +0800, Alan Manuel Gloria almkg...@gmail.com 
wrote:
 (cond ... else) doesn't work in Guile 1.6 (it's why I coded them as
 (cond .. #t) in the first place).

Drat. As noted in the ChangeLog, (cond... #t) causes warnings in chicken Scheme.

Hmm.  We already do some text processing of kernel.scm in the final build.
Perhaps we could detect if (cond ... else) is rejected in configure, and if it 
is,
then substitute the relevant (else ... into (#t 

Does replacing all (else  with (#t  in kernel.scm work in guile 1.6?
That would also affect some cond-expand and case statements, as well as cond 
statements.
If we have to only substitute some  not others, we could insert some comments
to enable or inhibit text substitution.  That might be the simplest solution.
That way most people just see standard modern Scheme while users of the
old guile version 1.6 get working code.

--- David A. Wheeler

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss


Re: [Readable-discuss] Readable version 1.0.2 released!

2014-06-24 Thread Alan Manuel Gloria
On Mon, Jun 23, 2014 at 3:41 AM, David A. Wheeler dwhee...@dwheeler.com wrote:
 Version 1.0.2 of the readable package is now available!!

 It's a collection of small tweaks and improvements, primarily in the 
 documentation and Scheme implementation.  Having many small improvements is a 
 *good* thing.  In particular, there are no incompatible interface/language 
 changes; I view avoiding incompatible language changes as critically 
 important.

 Below is the ChangeLog entry for this version, which describes the 
 highlights.  If you want more detail, git log -p will tell all.

 --- David A. Wheeler


 ChangeLog for version 1.0.2:
 * Various minor Scheme bug fixes, e.g., improve EOF handling during
   symbol reading, fix detection of unsupported #.
 * Many portability improvements, especially for Chicken Scheme and
   rscheme.  E.G., remove all #: in source,
   change throw to raise, rename internal body to read-body.
   Modify sweet-run so it works unchanged on Mac OS Darwin.
 * Many changes to eliminate warnings in various Schemes, e.g.,
   change (cond .. #t) to (cond .. else); either is legal Scheme,
   but chicken Scheme emits warnings on the former.

(cond ... else) doesn't work in Guile 1.6 (it's why I coded them as
(cond .. #t) in the first place).

 * Add the following as delimiters: #\' and #\` and #\.
   These are not required to be delimiters in Scheme, but
   they can be, and doing so means that we can detect syntax errors
   of very dodgy constructs.  This means that x'y will be
   considered an error, not a 3-char symbol.  We can already express
   that as |x'y|, and (x 'y) or x('y) work for making a list.
 * Optimize read-digits.
 * Improve Scheme error reporting when giving Unexpected text
   after n-expression by reporting the next (peeked) character.
 * Add #!keyword-prefix and #!keyword-suffix support so can handle
   syntax like STUFF: and :STUFF.
 * Modify Scheme sweet-run so that it returns the program exit code.
 * Add type annotations in chicken format, and ensure it does not
   interfere with other Schemes like guile.


 --
 HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
 Find What Matters Most in Your Big Data with HPCC Systems
 Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
 Leverages Graph Analysis for Fast Processing  Easy Data Exploration
 http://p.sf.net/sfu/hpccsystems
 ___
 Readable-discuss mailing list
 Readable-discuss@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/readable-discuss

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss


Re: [Readable-discuss] Readable version 1.0.2 released!

2014-06-24 Thread David A. Wheeler
Drat.  What do you suggest?



On June 24, 2014 5:28:39 PM EDT, Alan Manuel Gloria almkg...@gmail.com wrote:
On Mon, Jun 23, 2014 at 3:41 AM, David A. Wheeler
dwhee...@dwheeler.com wrote:
 Version 1.0.2 of the readable package is now available!!

 It's a collection of small tweaks and improvements, primarily in the
documentation and Scheme implementation.  Having many small
improvements is a *good* thing.  In particular, there are no
incompatible interface/language changes; I view avoiding incompatible
language changes as critically important.

 Below is the ChangeLog entry for this version, which describes the
highlights.  If you want more detail, git log -p will tell all.

 --- David A. Wheeler


 ChangeLog for version 1.0.2:
 * Various minor Scheme bug fixes, e.g., improve EOF handling
during
   symbol reading, fix detection of unsupported #.
 * Many portability improvements, especially for Chicken
Scheme and
   rscheme.  E.G., remove all #: in source,
   change throw to raise, rename internal body to
read-body.
   Modify sweet-run so it works unchanged on Mac OS Darwin.
 * Many changes to eliminate warnings in various Schemes,
e.g.,
   change (cond .. #t) to (cond .. else); either is legal
Scheme,
   but chicken Scheme emits warnings on the former.

(cond ... else) doesn't work in Guile 1.6 (it's why I coded them as
(cond .. #t) in the first place).

 * Add the following as delimiters: #\' and #\` and #\.
   These are not required to be delimiters in Scheme, but
   they can be, and doing so means that we can detect syntax
errors
   of very dodgy constructs.  This means that x'y will be
   considered an error, not a 3-char symbol.  We can already
express
   that as |x'y|, and (x 'y) or x('y) work for making a list.
 * Optimize read-digits.
 * Improve Scheme error reporting when giving Unexpected text
   after n-expression by reporting the next (peeked)
character.
 * Add #!keyword-prefix and #!keyword-suffix support so can
handle
   syntax like STUFF: and :STUFF.
 * Modify Scheme sweet-run so that it returns the program exit
code.
 * Add type annotations in chicken format, and ensure it does
not
   interfere with other Schemes like guile.



--
 HPCC Systems Open Source Big Data Platform from LexisNexis Risk
Solutions
 Find What Matters Most in Your Big Data with HPCC Systems
 Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
 Leverages Graph Analysis for Fast Processing  Easy Data Exploration
 http://p.sf.net/sfu/hpccsystems
 ___
 Readable-discuss mailing list
 Readable-discuss@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/readable-discuss

--- David A.Wheeler--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss