source: project/chicken/branches/prerelease/NEWS @ 15122

Last change on this file since 15122 was 15122, checked in by felix winkelmann, 11 years ago

typo fixes

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