-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
276 lines (252 loc) · 13.4 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
2017-09-10 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.10 - Minor improvements.
- Fix subtle bug in Common Lisp neoteric reader.
- Add to "Examples" a reference to math.slisp.
- Document \\ line-continuation extension.
- Removed trailing whitespace in a few source files.
2015-05-25 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.9 - Minor improvements.
- Lots of documentation improvements (update from wiki).
- Tweak so self-test works with Windows SBCL.
- Enable Common Lisp testing with either sbcl or clisp (prefer sbcl).
- Update convenience copy of asdf.lisp.
- Improve handling of pathnames with whitespace.
- Common Lisp: Fix basic-curly-read to properly enable basic-curly.
- Expose *original-readtable* in Common Lisp interface.
2014-12-07 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.8 - Minor Common Lisp improvements.
- Fix basic-curly-read to properly enable basic-curly.
- Add *original-readtable* to external interface.
- Generate lowercase test results in Common Lisp that look good
even with clisp.
2014-12-07 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.7 - Fix Common Lisp enable-* functions.
This version fixes a bug in the enable-* functions of the
Common Lisp implementation. Previously in certain situations
the enable-* functions would not be invoked at compile time.
This version ensures that it works properly even at compile timt.
This fixes the error reported by Alexander Dunn on 2014-12-06
on the readable-discuss mailing list.
2014-11-18 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.6 - improvements for Common Lisp.
* Bug fix for a subtle rarely-encountered error in the
Common Lisp implementation of the sweet-expression reader.
Previously, the reader would not work correctly on
an n-expression if it was not a symbol, indentation processing
is active, and it begins with the punctuation symbols
"$", "\", "<", "*", or ".".
For example, (* 4 5) and {4 * 5} worked fine, but *(4 5) did not.
This bug took a long time to detect, because it
didn't affect infix or traditional s-expression
notation, and this is normally how such expressions would be used.
Also, the neoteric reader worked just fine.
* In Common Lisp, maintain the readtable-case setting with
enable-sweet (it already did so for other notations).
That way you can both type and show lowercase symbolic input
(by using the Common Lisp standard's "invert" setting).
* Modify sweet-sbcl to use the readtable-case invert setting.
* Added "math.slisp", a symbol math simplifier in Common Lisp
that demonstrates the readable notations.
2014-10-18 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.5.
* Common Lisp implementation sweet-expression reader now handles
expressions that end without an EOL.
* Common Lisp implementation adds basic ability to print
readable expressions, e.g., write-readable.
2014-07-04 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.4. Fixes regression in guile 2.
Adds other portability tweaks to make it work on more systems.
* Update documents. E.g., tutorial notes '!' indent chars.
2014-06-15 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.2. Various minor improvements,
primarily in the documentation and Scheme implementation,
as listed below.
* 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.
* 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.
2013-10-14 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 1.0.0.
* Provide various minor improvements to the documentation.
In particular, we explain how Common Lisp library users
can use QuickLisp, and include more hypertext cross-links
to help users find the information they want.
Several places highlight the "Install-howto" files, to help
people easily find the installation instructions.
2013-10-05 David A. Wheeler <dwheeler, at, dwheeler.com>
* Version 0.9.4.
* Make configuration is now MUCH more automatic. As much as possible,
we do everything automatically, and warn about problems during
the configuration process.
* Improve portability, e.g., "env" need not be in /usr/bin.
* Provide 'make clisp-asdf' to configure clisp to use ASDF
for this user.
* Create Common Lisp front-end programs that automatically work,
just like the guile tools
2013-09-26 David A. Wheeler <dwheeler, at, dwheeler.com>
* Clearer installation instructions.
* Placed normal installation instructions in a single
separate file "Install-howto.md". Previously this was duplicated
badly in multiple files (README and both tutorials).
Technical details are still in INSTALL.
* Much better auto-detection of guile "site" directory (GUILE_SITE);
* it should now "just work" for both normal cases
and with "make distcheck".
* New "make from-wiki" command makes it easier to keep mirrored
markdown files up-to-date with the wiki.
* Fixed rpm .spec file error in the common lisp uninstall script.
* New configure options, such as "--without-scsh" and GUILE_SITE.
* Generate HTML from the markdown (.md) files, so that people can
read the prettier-to-view HTML files.
* Include generated HTML from markdown in tarball and installation.
* Modify rpm .spec files to fix preun error in Common Lisp library.
2013-09-10 David A. Wheeler <dwheeler, at, dwheeler.com>
* Includes the final version of SRFI-110, which defines
sweet-expressions for Scheme. The final SRFI-110 includes a
few minor improvements (e.g., improved examples).
* Add "Makefile-demo" to tarball distribution
* Presentation notes that the Common Lisp code is MIT-licensed
2013-08-25 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.9.2
- Modify grammar and implementation to support "#;"+space|tab
the same way as abbreviation+space|tab.
Now "#;", followed by space or tab, comments out the
next *sweet-expression* (not the next *neoteric-expression*).
This is per a comment by Mark H. Weaver.
- Add code+grammar rules, and supporting procedures,
to handle empty cases (for #;+space|tab handling)
- Better error detection: Forbid lines with >1 n-expr on a line
where the last expression is "."
- Better error detection: In guile implementation forbid unescaped
FF/VT when not on their own line (when outside a collecting list).
This has been forbidden in the grammar for a long time,
but now the guile implementation detects it and complains about it
- Better Common Lisp performance. Several tail recursions were
turned into loops, which speeds up some implementations.
The switch from tail recursion to "loop" in neoteric.lisp's
symbol reading, all by itself, produced a 5% performance
improvement when using clisp.
- Lots of changes to SRFI-110 to make it simpler, clearer, and
even more precise. In several places tried to create
consistent terminology, e.g., rename "empty tag" to "empty value",
and change "empty line" to "blank line" (so that an empty line
is not confused with other "empty" things). The phrase
"returns [Object v]" is no longer repeated in every rule
that produces a result, which makes it easier to read.
Many of these changes originate in comments
by Mark H. Weaver and John Cowan.
- SRFI-110 now *REQUIRES* SRFI-30 (#|...|#) and SRFI-62 (#;datum),
instead of being a SHOULD. The sample implementations
implement them anyway, but by requiring them, SRFI-110 users
can depend on them.
- Added code to work around clisp REPL bug in initial-indent mode
(the code has no effect, but also causes no harm, in
other implementations like SBCL).
- Modified sweet-clisp to patch its REPL (by default) to work
around other clisp REPL bugs, and added an option to inhibit
this behavior. Otherwise clisp will throw away a second t-expr
if there is no blank line between the first and second t-expr.
- Changed code in several places to make them easier to follow.
In particular, new macro let-splitter simplifies code.
- Modified sweet.g to eliminate spurious ANTLR warning message
- Overall simpler grammar (in draft SRFI-110 and in implementation).
This is in part a response to comments by Mark H. Weaver.
There are more production rules, but each one is simpler,
and "hspaces*" became "hs" (good because it happens often)
- Change production names in a few cases to make them clearer.
E.G., "head" -> "line_exprs", "rest" -> "rest_of_line",
"collecting_tail" -> "collecting_content".
- Rename production "ignorable" into "skippable". Common Lisp
uses "ignorable" for something else, and having 2 meanings for
one phrase - while possible - was confusing. It's easier to
just rename things, so that one term works everywhere.
- Added "sweet-sbcl" convenience script
- Include final version of SRFI-105
- "make distcheck" bugs fixed
- Add sample *.spec files for rpm-based distributions
- Add new "configure" options:
* --without-guile disable support for guile
* --without-common-lisp disable support for Common Lisp
* --without-clisp disable support for clisp
- As always, more tests. In particular, there are now a number
of tests for error conditions, to make sure they produce errors
2013-06-17 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.9.1
- Fixes Common Lisp tutorial, in particular, an
"enable-sweet" was incorrectly "enable-neoteric" making all
later text not work if you followed the tutorial exactly :-(.
- Many improvements to draft SRFI-110.html
- Presentation readable-s-expressions.odp has more Common Lisp info
and nicer formatting
- Common Lisp implementation improvements, e.g.,
better handling of EOF, examples no longer use our own ASDF,
and enable-... have better performance if already enabled.
- Add "factorial.lisp", a simple demo of how to use the
sweet-expressions in Common Lisp files.
2013-05-09 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.9.0
- Adds a Common Lisp implementation (which was transliterated
from the Scheme implementation)
- Lines with at least one "!", and otherwise only indent chars,
are ignored, per SRFI-110 discussion
- Includes a draft of SRFI-110
2013-03-30 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.7.1.
- Allows a collecting list after ".", e.g. "a b . <* c *>".
The draft SRFI-110 specifically gives this as an example,
so it'd be nice if the easily-downloaded version
actually supported it.
- Initial indents now allow "!"
- Adds a new tool, "diff-s-sweet"
- The Scheme implementation detects "*>" without matching "<*".
- Updates the draft SRFI-110.
2013-03-07 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.7.0.
- Includes support for <* ... *> collecting lists, with
both Scheme and ANTLR implementations of sweet-expressions
2012-11-25 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.6.0.
* Change to $nfx$ and $bracket-apply$ (from nfx and bracket-apply)
* Fix reference code to make f{...}(...) be left-to-right
(the {...} pattern was previously handled, incorrectly,
as right-to-left)
* SRFI-105: Separate rationale from design rationale
2012-08-25 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.5.0.
- e{} is now (e)
- {} is now ()
- {e} is now e
- {e1 e2} is now (e1 e2).
2012-08-10 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.4.0.
- Add initial "$" on a line
2012-08-02 Alan Manuel Gloria
* Fixed multi-line comment processing
* configuration no longer depends on guile-config (simplifies install)
2012-08-01 David A. Wheeler <dwheeler, at, dwheeler.com>
* Release of readable software version 0.3.0.
* Did initial autoconfiscation
* Set non-whitespace-indent char to simply "!"
* SPLIT symbol is now \\ instead of \
* Add presentation to distribution
2006-07-05 David A. Wheeler <dwheeler, at, dwheeler.com>
* Initial import