source: project/chicken/trunk/NEWS @ 15734

Last change on this file since 15734 was 15734, checked in by iraikov, 10 years ago

trunk version set to 4.1.9

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