source: project/chicken/trunk/NEWS @ 15545

Last change on this file since 15545 was 15545, checked in by Ivan Raikov, 10 years ago

updated NEWS file

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