source: project/chicken/branches/release/NEWS @ 15293

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

merged prerelease branch r15292 into release branch; synced with manual in wiki

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