rev: tip wisp/NEWS -rw-r--r-- 13.1 KiB View raw Log this file
b9f2fb2b4333Arne Babenhauserheide fix: wisp.py missed escaping \ — thanks to leah2! (scheme IRC) a month ago
                                                                                
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
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
wisp 1.0.12 (2024-03-20):
- do not include doctest output in examples (this broke install on Apple systems, because ._-files are interpreted as mac metadata)
- better error reporting: Note in "chunk not at zero indentation" that a new chunk starts after two blank lines.
- allow setting guile with GUILE= in tests/runtests-scheme-reader.sh (so you can run tests with a custom build of Guile)
- do not test partial indent in tests/receive.w (that is a tolerated error, but not guaranteed)
- examples/evaluate-r7rs-benchmark.w: sort the slowdown, too

wisp 1.0.11 (2023-03-20):
- increase resilience of make check for multi-job make in Guix

wisp 1.0.10 (2023-02-16):
- only extend the reader for ## while reading wisp. Thanks to Maxime Devos for help to use fluids!

wisp 1.0.9 (2023-02-16):
- remove limitation of the number of prefix underscores (_). Thanks to Maxime Devos for a much cleaner algorithm!
- only set *port* encoding to UTF-8, do not change encoding for the application. Thanks to Maxime Devos!

wisp 1.0.8 (2022-12-09):
- wisp2lisp can now process stdin when called with - as filename.
  And it has help output.

wisp-mode 0.3.0 (2022-02-04):
- provide wisp-color-indentation-minor-mode that highlights the
  indentation levels, following wisp-semantics (period and colon)

wisp 1.0.7 (2021-12-20):
- fix: a lisp-style comment in the bash-cript had broken the wisp REPL

wisp 1.0.6 (2021-11-30):
- allow (and ignore!) a single space indentation for the first line of a chunk to support meta-commands
- ensure that (language wisp) is compiled in the wisp REPL

wisp 1.0.5 (2021-05-02):
- explicitly allow using wisp as language under the expat-license for easier embedding in Guile-using games like Tsukundere Shitsumon: https://gitlab.com/leoprikler/tsukundere-shitsumon/

wisp-mode 0.2.9 (2021-04-05):
- support imenu, thanks to Greg Reagle
- fixes for melpa
- bind keys to RET and TAB, not (kbd "<return>") and (kbd "<tab>") to allow completion to work.
- use define key instead of local-set-key
- cleanup ob-wisp; compatibility

wisp-mode 0.2.8 (2021-04-02):
- use electric-indent-inhibit instead of electric-indent-local-mode
- rename gpl.txt to COPYING for melpa
- use the variable defined by define-derived-mode

wisp-mode 0.2.7 (2020-12-07):
- dependency declared, always use wisp--prefix, homepage url

wisp 1.0.4 (2021-02-08):
- add one more setlocale fallback: If it cannot use unicode, wisp now proceeds with degraded operation rather than failing outright.

wisp 1.0.3 (2020-09-15):
- provide wisp script that wraps guile --language=wisp -x .w
- add Guile 3.0 to supported versions
- fix documentation: wisp allows up to 12 underscores
- new examples: heapsort, first guile-gi window, triangle, graph-algorithms (bfs), 
- improved examples: faster securepassword, fix benchmarks for Python3, enter-three-witches.scm (theater scripts in Scheme), d6, evaluate-r7rs-benchmarks (csv output), download-mesh, upload-server
- download-mesh continues in its own project as wispserve: https://hg.sr.ht/~arnebab/wispserve
- You can create wisp-projects with conf via `conf new -l wisp PROJNAME`. See https://hg.sr.ht/~arnebab/conf
- wisp moved to sourcehut: https://hg.sr.ht/~arnebab/wisp

wisp-mode 0.2.6
- remove unnecessary autoloads

ob-wisp 0.1
- initial Org-Babel support for evaluating wisp source code in Emacs Org mode

wisp-mode 0.2.5
- backtab chooses existing lower indentation values from previous lines.

wisp-mode 0.2.4
- improve tabbing behaviour

wisp 1.0.2 (2019-04-09):
- guild compile is missing the load path

wisp 1.0.1 (2019-03-23):
- fix install directory, thanks to James-Adam Renquinha Henri and Ludovic Courtès who both
  discovered a mistake in the paths: correct module path is /usr/share/guile/site/<version>/…,
  but I used /usr/share/guile/<version>/site
- simplify install logic and pre-compile installed modules.
- add beautiful make help

wisp 1.0 (2019-02-08):
- add FOSDEM 2019 slides: docs/fosdem2019.org
- As presented at FOSDEM, wisp the language is complete.
  Tooling, documentation, and porting are still work in progress.

wisp 0.9.9.1 (2019-01-27):
- add missing emacs support files
- wisp-mode.el: highlighting and basic editing for wisp files
- ob-wisp.el: basic org-mode babel support

wisp 0.9.9 (2019-01-22):
- use ## for literal arrays in wisp to avoid stumbling over newline issues
- add ob-wisp.el for org-babel which can at least execute wisp code on my machine
- speed up starttime of examples from 1-5 seconds to <100ms by importing the module instead of running the file as script
- started slides for FOSDEM 2019 in doc
- require bash in examples, because sh misses exec -a on some systems
- support up to 12 _ for indentation
- examples: add downloadmesh to experiment with swarming downloads
- examples: add hamming new cli tool for  hamming 11,7 decoding and encoding
- examples/benchmark: allow setting the Guile version with the GUILE environment variable
- examples/doctests: escape / in function names
- examples/securepassword: include collapsed corpus and function to recreate the corpus from the collapsed string
- examples/securepassword: add a bigram corpus to weight passwords
- examples/network: implement and test the pitch-black attack
- examples/securepassword: increase default strength to 12
- examples/securepassword: add checksum validation for letterblocks which use the delimiters as checksums
- examples/doctests: use literal array syntax
- examples: update fizzbuzz.w hello-world-server.w macros.w running_mean_std.w tinyenc.w
- examples: update and cleanup fibonacci
- examples: literal vector example for doctests.w
- examples: update comment-server.w to the reader

wisp 0.9.8 (2017-11-10):
- fix installing wisp in local datarootdir
- make install provides wisp2lisp as program:
  convert any wisp program to lisp.

wisp 0.9.7 (2017-10-17):
- FIX: install language/wisp.scm instead of wisp-scheme.scm

wisp 0.9.6 (2017-10-08):
- Add a warning with undefined indentation levels: they can
  produce surprising behaviour when changing existing code.

wisp 0.9.5 (2017-09-25):
- Fix bug with using not yet defined lower indentation levels.
  See tests/partial-indent.{w,scm}
- move wisp-scheme.scm to language/wisp.scm
  this allows creating a wisp-project by simply copying language/

wisp 0.9.4 (2017-09-19):
- provide realpath on OSX to get the tests to run
- change installation to guile/site/(guile version)/language/wisp
- evaluation for the r7rs benchmarks

wisp 0.9.3 (2017-09-18):
- fix autotools for platforms with wissing or old Guile aclocal.

wisp 0.9.2 (2017-08-20):
- README: note the releases and split usage into setup+usage
- also add examples argparse, y-combinator, unbiased-std, ild, duel,
  commandline-handling, cartesian-sets, advent-2016-day-7
- added datatype benchmarks in examples/benchmark.w
- ensemble estimation: setup deviations from the covariance matrix
  by cholesky decomposition
- enter three witches: i love you (dynamic dialog generation)
- enter three witches: multiple scenes, whitespace in names, colors
  and .. as escape for .

wisp 0.9.1 (2016-07-12):
- add enter three witches: minimum overhead for a theater script
- examples/with.w: syntax for a with keyword
  which works like with in Python
- wisp-mode: add indentation cycling patch
- Use GUILE_PKG instead of PKG_CHECK_MODULES
  thanks to Jan Wedekind
- "make install" adds the wisp language to Guile
  thanks to Jan Wedekind
- add examples/securepassword.w
- add slides for FOSDEM 2016 talk
- examples/d20world.w: implement basic plotting on a map.
- more of the examples use the guile reader by default
  thanks to Kevin W. van Rooijen
- examples/d6.w: add critical rolls
- use GUILE_PROGS to check for guile instead of using homegrown stuff
- fix multiline string bug when the string includes \"
  tracked down by Michael Lamb
- new example: say.w (companion to
  http://draketo.de/english/wisp/shakespeare )
- add running mean and async
- add ensemble estimation
- always use /usr/bin/env bash as hashbang for shell scripts.
- fix factorial code
- improve handling of "` , :" (incomplete, see bug e44)
- unescape up to 6 leading underscores (fix bug 31)

wisp 0.9.0 (2015-09-24):
- actually distribute wisp.scm
- wisp now starts from wisp.scm. To bootstrap a release from Python, 
  remove wisp.scm and run `make wisp.scm`
  starting with 0.9.0, installing wisp no longer depends on Python.

wisp 0.8.7 (2015-09-24):
- new example say.w, companion to 
- bootstrap now explicitly requires bash
- include wisp.scm in the tarball to allow for pure-guile bootstrapping.
- spec: handle locale errors more gracefully
- improve readme

wisp 0.8.6 (2015-09-12):
- wisp-scheme.w allows ending a chunk with a trailing period.  This
  syntax is reserved for future use in SRFI-119, so you should not
  rely on this in production code.  It is mainly intended as REPL
  feature to avoid visual clutter while running single lines, like
  quick calculations.
- new examples: cholesky decomposition, symmetric matrix, closure,
  hoist-in-loop (cps transformation transcoded to wisp).
- updated examples: evolve.w
- clearer bootstrap output

wisp 0.8.5 (2015-07-28):
- wisp-scheme.w now parses : . to nothing. The colon adds parens, the
  dot removes them. This provides compatibility to the older parser.
- wisp is now SRFI-119: http://srfi.schemers.org/srfi-119/srfi-119.html

wisp 0.8.4 (2015-06-23):
- no longer wrap wisp blocks into begin. Fixes missing macro
  definitions when executed as file.
- any top-level form ends a wisp block. Required to avoid wrapping in
  begin. In the REPL code is now executed when entering the first line
  of the next top-level form.
- new examples: newbase60 and cli.
- known issue: To execute a procedure with shell-indirection, you have
  to define a module.
- wisp-mode: disable electric-indent-mode which reindented lines
  wrongly when pressing enter.

wisp 0.8.3 (2015-04-10):
- add partial source-properties support: show line numbers in backtraces.
- d20world: start of experiement to plot the results.

wisp 0.8.2 (2015-03-18):
- resolve REPL delayed output bug.
- forbid dot at the end of a line and as only symbol in a line to reserve them for future use.
- generalized the shell-call to guile: It gets the parentdir from $0.
- note curly braces, neoteric expressions and dual-wisp-sweet syntax.
- added tests: sxml, self-referencial function, curly-infix.
- new example: beautiful factorial.
- new example: ensemble estimation with ensemble square root filter. Uses python driven by an output-pipe as a plotting tool.
- SRFI 119 in draft.

wisp 0.8.1 (2014-11-19):
- srfi: polish implementation notes.
- add the requirements to the syntax-examples.
- wisp-scheme.w works completely again.

wisp 0.8.0 (2014-11-03):
- the testsuite is defined in terms of the code-tree, not in terms of
  the readable file. Implemented in testrunner.w
- wisp-scheme passes the wisp testsuite
- wisp uses curly-infix by default (srfi-105)
- this is the first full featured release of wisp-scheme: wisp which
  defers all complex parsing to the scheme reader (and match).

wisp 0.6.6 (2014-10-16):
- fix boostrap.

wisp 0.6.5 (2014-10-16):
- use wisp-scheme in the REPL.
- safe dot representation for reading a literal dot (.) for creating improper lists.

wisp 0.6.4 (2014-09-02):
- an actually working wisp implementation for scheme (only) which uses the guile reader. This should be actually correct for scheme. And match-magic ☺
- polishing.

wisp 0.6.1 (2014-08-05):
- simpler unicode handling
- honor --quiet in bootstrapping

wisp 0.6.0 (2014-07-14): 
- Better performance
- Support for SRFI-105
- Working syntax highlighting in export via wisp-mode.el
- Wisp can now execute wisp-files directly via `guile -L . --language=wisp file.w`.
- Icosahedric Advection-Diffusion example: examples/d20world.w
- Draft for an SRFI
- Presentatien: Why Wisp?
- Working autoreconf -i; ./configure; make distcheck
- Real Testsuite (./runtests.sh . .)

wisp 0.5.3 (2014-01-08): Started to use autotools to get make distcheck.

wisp 0.5.2 (2014-01-07): Support general paren-prefixes for macros.

wisp-mode 0.1.5 (2014-01-04): Resolved a name-clash for the emacs wisp-mode together with Steve Purcell und Kris Jenkins: the javascript wisp-mode was renamed to wispjs-mode and wisp.el is called wisp-mode 0.1.5. It provides syntax highlighting for Emacs and minimal indentation support via tab. You can install it with `M-x package-install wisp-mode`

wisp 0.5 (2013-09-13): Wisp now has a REPL! Thanks go to GNU Guile and especially Mark Weaver, who guided me through the process (along with nalaginrut who answered my first clueless questions…).
    To test the REPL, get the current code snapshot, unpack it, run ./bootstrap.sh, start guile with $ guile -L . (requires guile 2.x) and enter ,language wisp.
    Example usage:

        display "Hello World!\n"

    then hit enter thrice.
    Voilà, you have wisp at the REPL!
    Caveeat: the wisp-parser is still experimental and contains known bugs. Use it for testing, but please do not rely on it for important stuff, yet.

wisp 0.4 (2013-09-10): wisp-guile.w can now parse itself! Bootstrapping: The magical feeling of seeing a language (dialect) grow up to live by itself: python3 wisp.py wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > 3 && diff 2 3. Starting today, wisp is implemented in wisp.