Re: [Readable-discuss] Readable version 1.0.2 released!
On Sat, 28 Jun 2014 21:50:53 -0400, John Cowan 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!
David A. Wheeler scripsit: > Perhaps more importantly, GNU Guile 2.0.0 was released on 2011-02-16. Not so important, because Guile 2.x is not a drop-in replacement for Guile 1.x, and many distros don't have it even yet, or have both. So Guile 1.8 support is still important. 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. 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. -- John Cowan http://www.ccil.org/~cowanco...@ccil.org In the sciences, we are now uniquely privileged to sit side by side with the giants on whose shoulders we stand. --Gerald Holton -- 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!
On Sat, 28 Jun 2014 08:15:15 +0800, Alan Manuel Gloria 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!
On Thu, Jun 26, 2014 at 10:33 AM, David A. Wheeler wrote: > On Wed, 25 Jun 2014 05:28:39 +0800, Alan Manuel Gloria > 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!
On Wed, 25 Jun 2014 05:28:39 +0800, Alan Manuel Gloria 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!
Drat. What do you suggest? On June 24, 2014 5:28:39 PM EDT, Alan Manuel Gloria wrote: >On Mon, Jun 23, 2014 at 3:41 AM, David A. Wheeler > 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
Re: [Readable-discuss] Readable version 1.0.2 released!
On Mon, Jun 23, 2014 at 3:41 AM, David A. Wheeler 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