source: project/chicken/trunk/NEWS @ 8649

Last change on this file since 8649 was 8649, checked in by felix winkelmann, 12 years ago

bumped version to 3.0.3, added entry in NEWS

File size: 24.1 KB
3- MSVC can now be used to build the system, when standard UNIX tools (like
4  MSYS) are available [Many thanks to Ashley]
5- unit library: added "flonum-print-precision" for changing the default of
6  16
7- unit posix: added strftime format string support to "time->string"
8- unit posix: added "string->time", which takes a strptime format string
9  (Unix only)
10- unit extras: added "left-section", "right-section", "none?", "always?",
11  and "never?"
12- unit extras: added "hash-table-merge", "hash-table-map",
13  "hash-table-for-each", and extended "make-hash-table" with minimum/maximum
14  load & initial value
15- unit extras: added "eq?-hash", "eqv?-hash", "equal?-hash", "number-hash",
16  "symbol-hash", "keyword-hash", "##sys#number-hash-hook", and
17  "hash-by-identity" as a synonym for "eq?-hash"
21- upgraded scheme-complete.el to version 0.6 [Thanks to Alex Shinn]
22- unit library: added "blob=?"
23- the library can optionally be built with an already installed libpcre
24- chicken-setup accesses a separate set of eggs, specific on the major CHICKEN
25  version (3)
26- added csi options "-p" ("-print") and "-P" ("-pretty-print")
27- support for Mac OS X universal binaries hase been added [Thanks to Zbigniew]
28- `cond-expand' is available in the set of core macros [Thanks to Alex Shinn]
29- On sparc64 architectures more than 126 procedure arguments are allowed
30  [Thanks to Peter Bex]
31- posix unit: "seconds->string" and "time->string" have now their trailing
32  #\newline character removed. THIS IS A BACKWARD-INCOMPATIBLE CHANGE.
36- the SVN checkout can now be built from a bootstrapping tarball without
37  the need for a pre-installed "chicken" executable
38- literals are compiled in a platform-independent binary encoding into
39  the executable which results in faster C compile times and moe compact
40  binaries. This also makes the "compress-literals" option and declaration
41  unnecessary
42- the "-compress-literals" compiler option and the "compress-literals"
43  declaration have been removed
44- the CHICKEN_HOME environment variable is now obsolete, use CHICKEN_PREFIX
46- added pre GC hook C-level variable
47- Cygwin is now fully supported
48- removed deprecated functions:
49  extension-info
50  print-backtrace
51  test-feature?
52  ___callback (chicken.h)
53  foreign-callback-lambda[*]
54  thread-deliver-signal!
55  critical-section
56  enable-interrupts
57  disable-interrupts
58  invalid-procedure-call-handler
59- There is no platform-dependent pathname directory separator
60  anymore, the slash ("/") and backslash ("\") characters can be
61  used interchangably
62- New procedures "regexp*", "regex-optimize" and "make-anchored-pattern"
63  (regex library unit)
64- New procedures "terminall-size", "terminal-name" and "get-host-name"
65  (posix library unit)
66- chicken-setup: can create repository catalog file from local
67  SVN checkout of egg repository
68- chicken-setup has the new option "-host-extension" to force
69  compiling extensions in "host" mode when using a cross-compiling
70  chicken
71- Better cross-development support for the build system (the
72  Makefile accepts various variables for customizing the build)
73- "file-size" and "file-stat" handle file-sizes of >4GB now
74- "find-files" collects directories as well, now [Thanks to Ivan Raikov]
75- added "dist" target to toplevel makefile
76- "andmap" and "ormap" have been deprecated
77- makefiles support relinking now
78- added "thread-wait-for-i/o!" (srfi-18 library unit)
79- the "chicken-bug" program can now be used to create bug reports
80  and send them to the CHICKEN maintainers
84- New binary compatibility version (3) - installed eggs mst be recompiled!
85- deprecated "shift!" and "unshift!"
86- regex unit:
87  Uses PCRE 7.4
88- utils unit:
89  Uses compiled regular expressions
90- unit posix:
91  Uses compiled regular expressions
92- removed build option for extra symbol slot
93- added Lisp-style symbol property lists
97- countless bugfixes and minor improvements
98- new foreign types:
99  [nonnull-]unsigned-c-string[*]
100  c-string-list[*]
101- added "unused" declaration specifier
102- new GNU Make based build process
103- libffi is not used anymore, handcoded assembler is used for x86, x86-64
104  and powerpc platforms
105- library unit:
106  blob?
107  make-blob
108  blob-size
109  string->blob
110  blob->string
111- regex unit:
112  glob?
113- utils unit:
114  directory-null?
115  port-fold
116- extras unit:
117  hash-table-remove!
118- lolevel unit:
119  mutate-procedure
120- srfi-4 unit:
121  XXXvector->blob[/shared]
122  blob->XXXvector[/shared]
123- csc options:
124  -cxx-name
125  -disable-compiler-macros
126- byte-vectors have been removed and replaced by new "blob" type,
127  added various blob<->SRFI-4 vector conversion procedures in srfi-4 unit
128- ":optional" has been renamed to "optional" (the old name is still
129  available but deprecated)
130- "switch" has been replaced by "select" ("switch" is still available but
131  deprecated)
132- "tcp-connect" and "tcp-accept" handle time-outs via parameters
133  "tcp-connect-timeout" and "tcp-accept-timeout"
134- tcp unit: support for read/write timeouts
139- Many bugfixes
140- Better support for Sun's C compiler
141- Input-performance has been improved
142- PCRE (Perl compatible regular expressions) by Philip Hazel is now
143  bundled with CHICKEN
144- Static linking of extensions is now possible (when supported by
145  the egg)
146- The interpreter warns about references to potentially unbound variables
147  in loaded code and expressions entered on the REPL
148- The expansion process is traced during compilation and interpretation
149  to give (slightly) more usable syntactic context in error messages
150- library:
151  * added `any?`, `bit-set?' and `on-exit'
152- eval:
153  * new procedure `set-parameterized-read-syntax!'
154- posix:
155  * SRFI-17 setters for `file-position`, `current-user-id',
156    `current-group-id', `process-group-id'; the respective setter-procedures
157    are still available but have been deprecated
158  * `file-stat' returns more information (including device info)
159  * added `process*'
160- extras:
161  * added `read-string!'
162- utils:
163  * `apropos' and `apropos-list' procedures
164- srfi-4:
165  * added `read-u8vector', `read-u8vector!' and `write-u8vector'
166- srfi-18: 
167  * added `time->milliseconds' and `milliseconds->time'
168- csi:
169  * `-ss SCRIPTNAME' option
170- csc:
171  * accepts options given in the environment variable `CSC_OPTIONS'
172  * new options `-static-extensions' and `-host'
173- chicken/csc:
174  * new option `-keep-shadowed-macros'
175- chicken-setup:
176  * accepts options given in the environment variable `CHICKEN_SETUP_OPTIONS'
177  * allows retrieval and installation of eggs from subversion repository
178    and the local filesystem
179  * new options `-tree FILENAME', `-svn', `-local', `-revsion' and
180    `-destdir PATHNAME'
181  * added helper procedures `required-chicken-version' and
182    `required-extension-version'
183- Lots of improvements in the CMake build
185Many thanks to Ingo Bungener, Peter Busser, John Cowan, Marc Feeley,
186Stephen Gilardi, Mario Domenech Goulart, Joshua Griffith, Sven
187Hartrumpf, Daishi Kato, mejedi, Dan Muresan, Deanna
188Phillips, Robin Lee Powell, Ivan Raikov, Danial Sadilek, Alex Shinn,
189Tony Sideaway, Minh Thu for reporting bugs, suggesting improvements
190and contributing fixes.
192Thanks again to Brandon Van Every for his extensive work on the CMake
193build process.
195Special thanks to Kon Lovett for many improvements made in the posix
201- Bugfixes
202- CHICKEN can now be built using CMake <>, in fact CMake
203  is required to built CHICKEN from sources on Windows with the Microsoft
204  tools
205- the whole build process has been cleaned up and simplified
206- the "easyffi" and "tinyclos" library units have been removed from the base
207  system and are now available as separate extensions
208- the deprecated "set-dispatch-read-syntax!" has been removed
209- Will Farr cleaned up the behaviour of number-type specific numeric operations
210  ("fx..."/"fp...") with respect to safe/unsafe mode
211- added "(finite? NUMBER)"
212- the "$" macro moved into its own separate extension
213- the values of "software-type", "software-version", "machine-type" and "machine-byte-order"
214  are now registered as features and can be tested using "cond-expand" or "#+"
215- all tools now support the "-release" option
216- chicken-setup: added "-test" option
218Special thanks to Brandon Van Every, who put considerable effort into the
219CHICKEN build system and who ported it to CMake completely from scratch.
220The installation instructions and build file are extensively documented and may
221serve as a tutorial for creating non-trivial software projects with CMake.
222Thanks, Brandon! Also thanks to Bill Hoffmann and Brad King from Kitware
223for their support.
225Many thanks to Peter Bex, Toby Butzon, Thomans Chust, John Cowan, Alejandro Forero Cuervo,
226dgym, Alex Drummond, Mario Domenech Goulart, Kon Lovett, Benedikt Rosenau and Zbigniew
227Szadkowski for reporting bugs, suggesting improvements and contributing fixes.
232- Bugfixes galore
233- compiler:
234  * added support for the generation of "export" files through the "-emit-exports" option
235  * new option `-check-imports' (csc: `-G') checks for unimported symbols and can be quite
236    helpful in finding unbound variable errors (this requires all extensions ("eggs") to be
237    adapted to this new feature, a process which isn't complete yet)
238  * new declarations `emit-exports', `constant' and `import'
239  * new option `-disable-warning' and declaration `disable-warning'
240  * new options `-release' and `-import'
241- chicken-setup:
242  * new `exports' extension property
243  * option `-check' checks for extension upgrades
244  * added `-eval' option
245  * added parameters `setup-install-flag' and `setup-verbose-flag'
246- FFI:
247  * added the handy `$' macro, which lets you do foreign calls directly without declaring
248    a placeholder procedure
249  * `define-foreign-enum' for treating C enums as symbol-sets
250  * `foreign-safe-wrapper' has been deprecated
251- Slight reorganization of TinyCLOS and match macros and support code
252- `thread-join!' has been generalized to allow a thread to have multiple results
253- Renamed `thread-deliver-signal!' to `thread-signal!' and `invalid-procedure-call-handler'
254  to `set-procedure-call-handler!'
255- The system can be configured to add an extra slot to symbol objects
256- Another configuration option enables GC of unused symbols by default
257- The extension repository is now versioned to catch binary incompatible
258  installations, this requires to either move all installed extensions to the
259  new location ("$prefix/lib/chicken/1") or reinstall them
260- Now supports SRFI-61 (extended `cond')
261- Added procedures `load-relative', `tcp-buffer-size`, `string-chomp'
262- trivial implementations of `real-part', `imag-part', `angle' and `magnitude' have
263  been added to the library to allow more portable code
264- Breakpoints and single-stepping of compiled code on the function-level, new
265  procedures `breakpoint' and `singlestep'
266- csi: new toplevel commands `,info', `,step', `,br', `,ubr', `,breakall', `,breakonly',
267  `,exn' and `,c'
268- csi: `set-describer!' allows definition of custom output for the `,d' command
269- Added `integer64' foreign type specifier
270- The environment variable "CHICKEN_PREFIX" allows (together with "CHICKEN_REPOSITORY") overriding
271  the installation path prefix in case you want to install and run multiple instances/versions
272  of CHICKEN or install on a shared network
273- csc: added `-dry-run' option
274- removed `-split...' options (and the ability to generate multiple C files from a single
275  Scheme file)
276- `crictical-section', `disable-interrupts' and `enable-interrupts' shouldn't be used from
277  now on (deprecated), use SRFI-18 mutexes instead
279Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles, Peter Busser, Thomas Chust,
280John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every, Graham Fawcett, Mario Domenech
281Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns, Daishi Kato, Kon Lovett, Dan
282Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan, Alex Shinn, Sunnan, Zbigniew
283Szadkowski and Peter Wright for their helpful contributions, suggestions and bug reports!
288- Many many bugfixes
289- compiler:
290  * new option `-profile-name FILENAME'
291- the `chicken-config' script has been removed, identical functionality can be provided
292  by `csc'
293- csc:
294  * new option `-objc' compiles generated C files in Objective-C mode
295  * accepts .m files and handles the case when only object files are given
296  * new options `-framework', `-F<dir>' and `-rpath'
297  * options `-home', `-cflags', `-ldflags', `-libs', `-cc-name' and `-ld-name'
298- chicken-setup:
299  * detects whether eggs are gzipped or not and accepts ungzipped eggs
300  * if no other actions are specified and no eggs are given on the command line, then
301    all .setup scripts in the current directory are executed
302  * added `setup-build-directory' and `setup-root-directory' parameters
303  * helper procedures `copy-file', `move-file', `remove-file' and `create-directory'
304- csi commands `,s', `,l' and `,ln' accept multiple inputs, the `trace'/`untrace'
305  macros have been replaced byy the toplevel commands `,tr' and `,utr'
306- new toplevel commands in csi can be defined with the `toplevel-command' procedure
307- `extension-info' has been renamed to `extension-information'. The old name is
308  still available, but deprecated
309- `print-backtrace' has been renamed to `print-call-chain'. The old name is still
310  available (and deprecated)
311- `transcript-on' and `transcript-off' are no longer supported
312- New macro `define-for-syntax'
313- library:
314  (get-call-chain [DEPTH])
315  (current-read-table)
316  (copy-read-table READ-TABLE)
317  (current-gc-milliseconds)
318  `print-error-message' writes now to the current output-port, not the error port
319  `number-string' does now a slightly better job converting large exact integers
320  with non-decimal base
321- extras:
322  (each PROC ...)
323  `hash-table-ref' throws (exn access) on error
324- posix:
325  (local-time->seconds TIME)
326  (utc-time->seconds TIME)
327  (local-timezone-abbreviation)
328  `directory' takes optional path and dotfiles arguments
329  `[group|system]-information' return lists instead of multiple values
330- tcp:
331  (tcp-port-numbers PORT)
332- `set-dispatch-read-syntax!' has been renamed to `set-sharp-read-syntax!' (the old
333  name is still available but deprecated)
334- evaluated code generates call-trace information (as compiled code does), which
335  results in much better back-traces.
336- new foreign types `[unsigned-]int32' and `[unsigned-]integer32'
337- added SRFI-17 setters for many accessors of the core libraries
338- tinyclos: added a couple of missing classes for core library structures
339- `let[*]-values' is now SRFI-11 compliant
340- the finalizer-table is now resized dynamically, which speeds up code that uses
341  very many finalizers [Thanks to Zbigniew Szadkowski]
342- reloading compiled code dynamically does basically work (but still leaks memory)
343- the manual contains a section on pattern matching
344- libffi is used by default, when available
345- CHICKEN has now experimental support for the "CMake" build system <>
346  Many thanks to Bill Hoffmann from Kitware and Brandon van Every for helping with this
347- added compiler/runtime support for object serialization via the `s11n' extension
348  (see <>)
350Sergey Khorev has offered to help with maintaining the Windows port of CHICKEN.
351Thanks, Sergey!
353Many thanks Jean-Francois Bignolles, Patrick Brannan, Adam Buchbinder, Hans Bulfone, Category 5,
354John Cowan, datrus, Guillaume Germaine, Mario Domenech Goulart, Daniel B. Faken, Andrey Fomichev,
355Jarod Eells, Sven Hartrumpf, David Janssens, Daishi Kato, Levi Pearson, Pupeno, Eric Raible, Benedikt
356Rosenau, Reed Sheridan, Zbigniew Szadkowski and Mark Wutka for their helpful contributions,
357suggestions and bug reports!
359Special thanks to Kon Lovett for fixing countless open issues and many useful sugestions.
364- Many bugfixes
365- The read-syntax `#+X Y' is provided as a shorthand for `(cond-expand (X Y) (else))'
366- `foreign-parse' and `foreign-parse/spec' have been removed
367- lolevel: Executable byte-vector stuff has been removed
368- SRFIs 28, 31, 62 and 69 are now officially supported
369- New compiler option `-extension' simplifies static compilation of eggs
370- csc: changed `-E' to `-P', `-E' is now an alias for `-extension'
371- Embedding:
372  * All the `entry-point' related things have been removed, as has been `define-embedded',
373    calling Scheme from C is now exclusively done with callbacks
374  * Integrated boilerplate embedding API into the `eval' unit
375  * Added `CHICKEN_continue' API function
376  * Default "stub" toplevel (`CHICKEN_default_toplevel') allows embedding without a
377    separate Scheme file
378  * Different stack-levels during invocation of CHICKEN_run or callbacks could result
379    in crashes - this is now detected (or can be checked manually)
380- Added extension-specifier `(version ...)'
381- New FFI macros `foreign-declare', `foreign-parse' and `foreign-parse/declare' replace
382  the declaration-specifiers of the same name
383- Hash-table resizing was ridiculously slow, and should now be much faster
384- `define-foreign-record' handles recursive structures
385- `require-extension' is now available by default, and so can be used with the
386  plain Scheme evaluator
387- Procedures now contain some basic debug information, unless a file was compiled
388  with `-no-lambda-info'
389- compiler: `-debug-level 2' is now the default (enables trace- and lambda-info)
390- chicken-setup:
391  * handles direct downloads from arbitrary URLs
392  * HTML documentation for eggs can now be included into the egg and will be installed
393    in the repository (using the `documentation' info-property)
394  * `chicken-setup -docindex' shows path of generated documentation index for all
395    installed eggs
396- extras:
397  * SRFI-69 is now fully supported, note that THIS WILL BREAK EXISTING CODE, since
398    the API is not compatible to the previous one
399  * `clear-hash-table!', `get' and `put!' are gone
400  * `read-file' accepts optional reader procedure and max count
401  * `read-lines' accepts filename instead of port
402- library:
403  * `signum' is now exactness-preserving
404  * `procedure-information' returns some basic debug info for a given procedure
405  * Added `(warning MESSAGE ARGUMENTS ...)'
406  * `(promise? X)'
407- posix:
408  * `(current-directory DIR)' is equivalent to `(change-directory DIR)'
409- regex:
410  * `pattern->regexp' has been renamed to `glob->regexp'
411- The `format' library unit has been removed from the base system and is noww available
412  separately
413- SRFI-17, on the other hand has been moved into the base system
414- String literals and the print-names of symbol literals are now allocated in static
415  (non-GC'd) memory
416- If static or shared build is disabled, no `...-static' executables will be generated
419Many thanks to Ashley Bone, Thomas Chust, John Cowan, Alejandro Forero Cuervo, Daniel Faken, Sven
420Hartrumpf, Daishi Kato, Sergey Khorev, Kon Lovett, Gene Pavlovsky, Reed Sheridan and Ed Watkeys for
421their helpful contributions, suggestions and bug reports!
426- Many bugfixes
427- Loads of minor improvements (better error messages, more warnings, more error
428  checks, etc.)
429- On systems supported by the "libffi" library, the 128-argument limit can
430  be exceeded (currently to an arbitrary maximum of 1000). To take advantage
431  of this, add `--with-libffi' to the configuration options when building
432  chicken
433- The `libsrfi-chicken' and `libstuffed-chicken' libraries have been folded
434  into `libchicken', so only a single library is linked with generated
435  executables, which greatly simplifies and speeds up the build process.
436  It is recommended to remove any traced of `libstuffed-chicken.*' and
437  `libsrfi-chicken.*' before installing a new release. This requires also
438  to reinstall all eggs (extension libraries).
439- The compiler is able to inline more procedure calls
440- Implicit non-multival continuations (like in `begin' or 'let') accept multiple
441  values and discard all but the first value
442- finalization should actually work now and is much more efficient (unless
443  used excessively)
444- csi:
445  `advise' has been removed
446  `-eval' implies `-batch' and `-quiet'
447  added `-require-extension'
448  short option names are now supported and may be collapsed, if unambigous
449- New runtime options:
450  -:b (enter REPL on error)
451  -:B (ring bell on every major GC)
452  -:fNNN (set pending finalizer maximum limit)
453- New compiler options:
454  -accumulate-profile
455  -inline
456  -inline-limit
457  -emit-external-prototypes-first
458- The compiler-option `-require-for-syntax' has been renamed to `-require-extension'
459  and is the same as putting a `(require-extension ...)' form directly into the code
460- Removed compiler- and interpreter option `-no-feature'
461- New declarations:
462  (lambda-lift)
463  ([not] inline)
464  (inline-limit LIMIT)
465  (emit-external-prototypes-first)
466  ([not] check-c-syntax)
467- `foreign-callback-lambda[*]' has been renamed to `foreign-safe-lambda[*]' - the
468  old names are still valid but deprecated
469- New foreign type specifier `scheme-pointer' (the same as `pointer', which is
470  deprecated now)
471- Easy FFI:
472  `___scheme_pointer' and `___byte_vector' pseudo types
473  `___pointer' and `___length' markers
474  `default_renaming' and `opaque' pseudo declarations
475  `___inout' and `___out' argument markers work also for C++ reference types
476  Recognizes `C_word' and `size_t'
477- The reader supports selective case sensitive/insensitive reading using the
478  `#cs...' and `#ci...' syntax (as supported in PLT Scheme)
479- `\uXXXX' and `\UXXXXXXXX' escape-sequences for string literals
480- `#\UXXXXXXXX' character literal syntax
481- `\v', `\a' and `\f' escape sequences and `#\delete', `#\esc', `#\alarm', `#\vtab'
482  and `#\nul' character literals
483- `chicken-setup' supports proxy connections via the `-proxy' option
484- library:
485  (set-dynamic-load-mode! MODE)
486  `(end-of-file)' has been removed (use `#!eof' instead)
487- The alternative continuation API described in Marc Feeley's paper
488  "A better API for first class continuations" is supported natively:
489  (continuation-capture PROC)
490  (continuation-graft K THUNK)
491  (continuation-return K VALUE ...)
492  (continuation? X)
493- `foreign-primitive' and `define-extension' macros
494- tinyclos:
495  (instance-of? X)
496  `define-method' specializes on all arguments and allows DSSSL keyword argument lists
497- eval:
498  (set-dispatch-read-syntax! CHAR PROC)
499- extras:
500  (hash-table-update! HT KEY PROC INIT)
501  (hash-table-exists? HT KEY)
502  (hash-table-values HT)
503  (hash-table-keys HT)
504  (alist->hash-table ALIST [TEST SIZE])
505  `hash-table->list' has been renamed to `hash-table->alist
506  `hash-table-for-each' takes the arguments in reversed order (the old order is still
507  valid but deprecated)
508  Hash-tables support now user-defined hash functions
509- posix:
510  (file-link OLD NEW)
511  (symbolic-link? FILENAME)
512  (regular-file? FILENAME)
513  errno/exist
514  `process' and `process-execute' allow passing an environment
515- regex:
516  (regexp-escape STR)
517- tcp:
518  (tcp-listener-fileno LISTENER)
519- utils:
520  (port-for-each FN THUNK)
521  (port-map FN THUNK)
522- On Windows, the batch file `win-install.bat' can be used to install the system
523  into the desired location
524- Building Chicken on Windows with the free development tools from Microsoft (VCToolkit,
525  Platform Core SDK) has been tested and is documented in the file `vctk-install.txt'
526- The `-script-meta' option has been removed
527- The srfi-25 and srfi-37 library units and the test-infrastructure facility have been
528  removed from the core system and is now separately available as an extensions (eggs)
529- The syntax-case macro and module system has been removed and also available as an
530  extension. This implies that all compiler- and interpreter options related to hygienic
531  macros and syntax-case are gone as well.
532- All strictness compiler- and interpreter options (and the `strict-reader' parameter)
533  have been removed
534- the `examples' directory and its contents have been removed from the distribution
537Many thanks to William Annis, Mark Baily, Peter Bex, Dominique Boucher, Patrick Brannan,
538Thomas Chust, Alejandro Forero Cuervo, Graham Fawcett, Damian Gryski, Sven Hartrumpf,
539Hans Huebner, Christian Jaeger, Dale Jordan, Daishi Kato, Sergey Khorev, Krysztof Kowalczyk,
540Goran Krampe, John Lenz, Kon Lovett, Scott G. Miller, Julian Morrison, Nicolas Pelletier,
541Carlos Pita, Benedikt Rosenau, Andreas Rottmann, Reed Sheridan, Alex Shinn, Andrey Sidorenko,
542Michele Simionato, Volker Stolz, Sunnan, Zbigniew Szadkowski, Andre van Tonder, Henrik
543Tramberend and Mark Wutka for their helpful contributions, suggestions and bug reports!
Note: See TracBrowser for help on using the repository browser.