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

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

added note about chicken-setup stub application

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